Installare VDR da sorgenti

Da VDR-Italia.

Installare VDR da sorgentimodifica

Indice

Installazione di Video Disk Recorder (Versione 1.6.x)

Questo è, all'incirca, una versione modificata del file INSTALL che è incluso con VDR.

Compilazione ed esecuzione del programma

VDR richiede i files header dei driver Linux-DVB per potersi compilare. Nel kernel 2.6 questi sono già parte integrante della distribuzione ufficiale del kernel Linux, quindi dovrebbero trovarsi automaticamente in /usr/include/linux/dvb. Se i tuoi files header del driver DVB sono in una posizione diversa, puoi rinominare il file Make.config.template in Make.config e sistemare la definizione di DVBDIR in quel file.

Vai a http://linuxtv.org per cercare più informazioni sui driver Linux-DVB.

VDR richiede una versione dei driver Linux-DVB datata 2003-08-23 o superiore per funzionare correttamente.

Dovrai anche installare le librerie libjpeg e libcap, così come i loro pacchetti di sviluppo per ottenere i files header necessari alla compilazione di VDR. Se il modulo capability non è compilato nel tuo kernel, può essere necessario dare un modprobe capability prima di eseguire VDR.

Dopo l'estrazione del pacchetto, spostati nella directory VDR e digita make. Questo dovrebbe produrre un file eseguibile chiamato vdr, che può essere eseguito dopo che il driver DVB è stato installato.


IMPORTANTE
Vedi Configurazione files più avanti per informazioni su come impostare i files di configurazione nella posizione appropriata!

Per default il programma vdr può essere controllato dalla tastiera del pc. Se vuoi disabilitare il controllo tramite tastiera, puoi aggiungere

NO_KBD=1

nel lancio di make, oppure usare l'opzione --no-kbd all'avvio.

Se hai un controllo remoto ad infrarossi puoi definire la macro REMOTE ad uno dei seguenti valori nel lancio di make per fare il rispettivo controllo il valore di default:

REMOTE=RCU Controllo tramite il ricevitore "Remote Control Unit" (vedi [1])
REMOTE=LIRC Controllo tramite "Linux Infrared Remote Control" (vedi [2])

Alternativamente puoi usare le opzioni --rcu oppure --lirc all'avvio. Queste opzioni accettano un percorso opzionale alla periferica di controllo remoto, i valori di default dei quali possono essere impostati tramite le macro RCU_DEVICE e LIRC_DEVICE, rispettivamente.

Se la tua directory video sarà su una partizione VFAT, aggiungi il parametro

VFAT=1

al momento della compilazione con il comando make. Alternativamente, puoi lanciare VDR con la linea di comando --vfat.

In sintesi:

MAKE RUNTIME
NO_KBD=1 --no-kbd
REMOTE=RCU --rcu
REMOTE=LIRC --lirc
VFAT=1 --vfat

Quando è in esecuzione, il programma vdr scrive informazioni di stato nel file log di sistema (/var/log/messages). Puoi vedere questi messaggi (tail -f /var/log/mesages) per controllare se ci sono problemi.

Il programma può essere controllato tramite una connessione di rete mediante la porta SVDRP (Simple Video Disk Recorder Protocol). Per default, essa si trova in ascolto sulla porta 2001 (usare l'opzione --port=PORT per cambiarla). Per dettagli sulla sintassi di SVDRP vedere il file sorgente svdrp.c.

ATTENZIONE
L'APERTURA DELLA PORTA SVDRP IN QUESTO PROGRAMMA PUO' COSTITUIRE UN POTENZIALE RISCHIO DI SICUREZZA! SE ESEGUI VDR IN UN AMBIENTE NON CONTROLLATO, PUOI DISABILITARE SVDRP USANDO L'OPZIONE --port=0

Il file svdrphosts.conf può essere usato per definire quali client sono autorizzati ad accedere alla porta SVDRP. Per default solo localhost (127.0.0.1) è autorizzato ad accedere. Se vuoi dare l'accesso ad altri client alla tua porta SVDRP devi aggiungere i loro indirizzi IP al file svdrphosts.conf.

Se il programma sarà eseguito come demone, usare l'opzione --daemon. Questo lo staccherà completamente dal terminale e continuerà come un processo in background.

Quando si avvia il programma mediante un valore in /etc/inittab, usare l'opzione --terminal per impostare il controllo del terminale, come in

vdr:123:respawn:/usr/local/bin/vdr --terminal=/dev/tty8 -w 60

Leggi la pagina man vdr(8) per informazioni complete sulle opzioni della linea comandi.

Lingua (locale)

Quando si mostra l'elenco delle registrazioni, VDR elenca i valori a seconda delle impostazioni della lingua (locale) attuale. Questo fa in modo che i caratteri speciali (come i 2 puntini nell'alfabeto tedesco chiamati umlauts) appaiano nelle corrette posizioni. Per beneficiare di questo devi impostare la variabile d'ambiente locale, per esempio

  export LANG=de_DE

per la lingua tedesca. Se non vuoi che questo generi dei messaggi d'errore in tedesco nel file di log, è sufficiente impostare

  export LC_COLLATE=de_DE

che influenza solo il modo in cui le stringhe sono elencate lasciando i messaggi d'errore in inglese.

Quindi, per l'italiano si dovrà impostare:

LOCALE
export LANG=it_IT
export LC_COLLATE=it_IT

Soluzione per provider che non codificano correttamente i loro dati EPG

In base alle specifiche ETSI EN 300 468 l'insieme dei caratteri predefiniti per i dati SI è ISO6937. Sfortunatamente alcune emittenti utilizzano realmente ISO-8859-9 o altre codifiche, ma falliscono quando devono annunciarlo. Gli utenti che vogliono impostare l'insieme di caratteri predefiniti a qualcosa di diverso possono farlo modificando la variabile d'ambiente VDR_CHARSET_OVERRIDE a qualcosa simile a ISO-8859-9.

Riavvio automatico in caso di blocco

Se esegui VDR usando lo script shell runvdr verrà usato il controllo timer interno per riavviare il programma in caso qualcosa generi il blocco del programma. Se cambi le opzioni della linea comandi per lanciare il programma VDR, fai in modo di NON usare l'opzione -d! Altrimenti VDR si avvierà in modalità demone ed il lancio del programma iniziale ritornerà immediatamente! runvdr ha bisogno di essere avviato come utente root. Usare l'opzione -u per eseguire l'attuale programma vdr con un nome utente diverso. Notare che lo script runvdr deve essere adattato ai tuoi particolari requisiti prima che tu possa realmente usarlo. Vedi i commenti all'interno dello script per maggiori informazioni.

Impostazione orario di sistema

Se vuoi che VDR imposti l'ora di sistema a seconda dei dati ricevuti dal transponder, devi avviare VDR come utente root. Per ragioni di sicurezza dovresti allora usare l'opzione -u per definire il nome utente con meno privilegi sotto il quale VDR dovrebbe venire eseguito realmente. Esso manterrà solo la capacità di impostare l'ora di sistema, ed impostare i suo nome utente per quel compito. Devi anche abilitare l'opzione di VDR EPG/Imposta orario di sistema nel menu Opzioni, e selezionare un transponder dal quale vuoi ricevere l'ora nell'opzione Utilizza orario da transponder. Fai in modo di selezionare un transponder con un orologio certo, visto che alcuni transponder sono spesso spenti.

Spegnimento automatico

Se definisci il comando di spegnimento tramite l'opzione -d della linea comandi, VDR lancerà il comando dato se attualmente non c'è nessuna registrazione oppure riproduzione attiva, l'utente deve essere inattivo per almeno i minuti impostati nell'opzione Periodo min. inattività (min), vedi i parametri Opzioni nel file [[3]].

Il comando dato nell'opzione -s sarà lanciata con 5 parametri. Il primo è l'ora (in UTC) del prossimo evento timer (come un numero tipo time_t), e il secondo è il numero di secondi dall'ora corrente fino al prossimo evento timer. Il tuo programma può scegliere quale usare per programmare quale tipo di periferica hardware faccia in modo che il computer sia riavviato in tempo prima del prossimo evento timer. Il tuo programma deve almeno inizializzare la procedura corrente di spegnimento del computer. Dopo questo il tuo programma dovrebbe ritornare a VDR. VDR non uscirà automaticamente dopo il lancio del programma di spegnimento, ma piuttosto continuerà normalmente fino a ricevere un comando SIGTERM allora il computer sarà realmente spento. Quindi in caso lo spegnimento fallisca, VDR rimarrà acceso ed in esecuzione e richiamerà ancora il programma di spegnimento dopo altri 5 minuti.

Se al momento non ci sono timer attivi, entrambi i parametri saranno 0. In quel caso il programma non imposterà l'hardware per il riavvio automatico ed eseguirà solo lo spegnimento del sistema. Un programma che usa la seconda procedura per impostare l'hardware per il riavvio deve perciò verificare anche se il primo parametro è 0.

Il terzo parametro contiene il numero del canale che sarà registrato dal prossimo evento timer (oppure 0 se non ci sono timer), ed il quarto parametro contiene il nome del file della registrazione come definito nel timer (oppure una stringa vuota se non ci sono timer). Questi possono essere usati dal programma di spegnimento per mostrare quell'informazione su alcune periferiche di visualizzazione, etc.

Il quinto parametro indica il motivo per il quale lo spegnimento è stato richiesto. 0 significa che si tratta di uno spegnimento automatico dovuto a qualche scadenza, mentre 1 significa che si tratta di uno spegnimento richiesto dall'utente (risultante dalla pressione del tasto Power). Il programma di spegnimento può usare questa informazione per decidere o no se eseguire realmente lo spegnimento del sistema.

Se un timer è attualmente in registrazione, oppure una registrazione si avvierà entro i prossimi 30 minuti (default per il parametro delle opzioni Scadenza min. evento (min)), e l'utente insiste a dare lo spegnimento adesso, il primo ed il secondo parametro corrispondono ad un tempo che è Scadenza min. evento (min) in minuti per il futuro.

Prima che il programma di spegnimento sia lanciato, l'utente sarà informato che il sistema è in fase di spegnimento. Se viene premuto qualunque tasto del controllo remoto mentre la comunicazione è visibile, lo spegnimento sarà cancellato (e riprovato ancora dopo altri minuti di Periodo min. inattività (min)). L'avviso di spegnimento sarà visualizzato per 5 minuti, che dovrebbero essere sufficienti all'utente per intervenire.

Un esempio dello script shell da usare con l'opzione -s potrebbe essere simile a questo:

#!/bin/sh
setRTCwakeup $(($1 - 300))
sudo halt

Dove setRTCwakeup dovrebbe essere qualche programma che usa il primo parametro (che corrisponde al tempo assoluto del prossimo evento timer) da impostare nel Real Time Clock in modo che risvegli il computer 5 minuti (per esempio 300 secondi) prima di quell'evento. Il comando sudo halt spegne successivamente il computer. Dovrai sostituire entrambi i comandi con qualunque cosa si applichi al tuo particolare ambiente hardware e software.

Se l'opzione -s è presente, la macchina può essere spenta premendo il tasto Power del controllo remoto.

Esecuzione di comandi prima e dopo una registrazione

Puoi usare l'opzione -r per definire un programma o script che venga lanciato prima o dopo l'esecuzione di una registrazione, e dopo che un processo di modifica sia completato.

Il programma si lancerà con 2 parametri. Il primo parametro è uno tra:

Parametro Descrizione
before lanciato prima che una registrazione inizi
after lanciato dopo che una registrazione sia finita
edited lanciato dopo che una registrazione sia stata modificata

ed il secondo parametro contiene il nome completo della directory di registrazione (che può ancora non esistere al momento nel caso del parametro before). Nel caso del parametro edited sarà il nome della versione modificata.

Dentro questo programma puoi fare qualunque cosa ti piacerebbe fare prima e/o dopo una registrazione oppure dopo un processo di modifica. Comunque, il programma deve concludersi non appena possibile, perché altrimenti bloccherà ulteriormente l'esecuzione di VDR. Presta particolare attenzione ad essere sicuro che il programma si concluda prima del tempo di scadenza che hai impostato con l'opzione -w! Se l'operazione che vuoi eseguire prenderà troppo tempo, dovrai eseguirla come attività di sfondo.

Un esempio dello script da usare con l'opzione -r potrebbe essere simile a questo:

#!/bin/sh
case "$1" in
     before)
            echo "Prima registrazione $2"
            ;;
     after)
            echo "Dopo registrazione $2"
            ;;
     edited)
            echo "Registrazione modificata $2"
            ;;
     *)
            echo "ERRORE: stato sconosciuto: $1"
            ;;
     esac

Opzioni linea comandi

Usare vdr --help per un elenco delle opzioni della linea comandi disponibile.

Riproduzione audio Dolby Digital

Se hai una scheda full featured (chiamate anche Premium come SS1, Nexus, etc) con l'uscita SPDIF puoi riprodurre l'audio Dolby Digital direttamente attraverso la scheda DVB. Puoi anche usare un programma esterno che legga i dati DD da stdin e li elabori in un modo adatto alla tua scheda audio. Questo programma può essere passato a VDR con l'opzione -a, come in:

vdr -a ac3play

La directory dati video

Tutte le registrazioni vengono salvate all'interno delle directory che si trovano in /video. Per favore fai in modo che questa directory esista, e che l'utente che esegue il programma vdr abbia i privilegi di accesso in lettura e scrittura a quella directory. Se preferisci una posizione diversa per i tuoi files video, puoi usare l'opzione -v per cambiarla. Per favore stai attento che il nome della directory che usi con l'opzione -v sia un nome di percorso chiaro e assoluto (niente '..' oppure barre multiple).

Notare che il file system non ha bisogno di essere a prova di 64-bit, dal momento che il programma vdr taglierà i file video in segmenti di circa 2GB ciascuno. Dovresti usare un disco con parecchi gigabytes di spazio libero. Un GB può salvare approssimativamente mezz'ora di dati video.

Se hai più di un disco e vuoi combinarli per formare un'unica unità logica, puoi impostare parecchie directory video come punto di mount per questi dischi. Tutte queste directory devono avere lo stesso nome base e devono finire con una parte numerica, che incomincia da 0 per la directory principale e ha valori incrementali per il resto delle directory. Per esempio:

   /video0
   /video1
   /video2

sarebbe una impostazione con 3 directory. Puoi usare più di una cifra numerica, e le directory non devono essere sotto / (root point):

   /mnt/MyVideos/vdr.00
   /mnt/MyVideos/vdr.01
   /mnt/MyVideos/vdr.02
   ...
   /mnt/MyVideos/vdr.11

imposterebbe fino a 12 dischi (wow, che macchina stupenda sarebbe!).

Per usare una tale impostazione multi directory, devi aggiungere l'opzione -v con il nome della directory base quando è in esecuzione vdr:

   vdr -v /video0

Notare che non dovresti copiare file non-VDR nelle directory /videoX, dal momento che questo potrebbe causare un sacco di accessi al disco non necessari quando VDR pulisce quelle directory e lì ci sono un ampio numero di files e/o sotto directory.

Se la tua directory video è montata con una condivisione Samba, e rilevi dei problemi con la riproduzione in modalità avanzamento veloce, puoi commentare la linea:

#define USE_FADVISE

nel file tools.c, che dovrebbe portare a migliori risultati.

File di configurazione

Ci sono parecchi file di configurazione con le informazioni sui canali, tasti del controllo remoto, timer, etc. Per default si presuppone che questi file devano essere posizioni nella directory video, ma può essere usata una directory diversa con l'opzione -c. I plugins presuppongono che i loro files di configurazione si trovino in una sotto directory chiamata plugins all'interno di questa directory.

Per i principianti basta solo copiare tutti i files *.conf dalla directory di VDR nella tua directory video.

I file di configurazione possono essere modificati con qualsiasi editor di testo, o saranno scritti dal programma vdr quando vengano effettuati cambiamenti all'interno dei menu OSD. Dai un'occhiata al pagina man vdr(5) per informazioni sui formati dei file.

I file inseriti all'interno di questo pacchetto contengono le scelte dell'autore, quindi fai in modo di adattare questi file ai tuoi gusti personali. Fai anche in modo che i canali definiti in channels.conf siano corretti prima di tentare una qualsiasi registrazione. I parametri dei canali possono variare e non tutti i canali elencati nel file channels.conf base sono stati verificati dall'autore.

Come punto di partenza puoi copiare il file channels.conf contenuto nell'archivio VDR all'interno della tua directory video (oppure all'interno della tua directory di configurazione, rispettivamente, in caso tu l'abbia cambiato con l'opzione -c).

Impostazione DiSEqC

Se stai usando una scheda DVB-S con un sistema satellitare che ha bisogno di usare il DiSEqC per vedere i canali, devi andare nel menu Opzioni/LNB ed impostare il parametro Utilizza DiSEqC a . Devi anche impostare il file diseqc.conf per accedere correttamente al tuo apparecchio DiSEqC (vedi man vdr(5) per maggiori dettagli).

Eseguire VDR con schede DVB-C (cavo) oppure DVB-T (terrestre)

VDR riconosce automaticamente se la scheda DVB in uso è una scheda cavo oppure terrestre. L'unica cosa che deve essere differente quando si usa una scheda digitale a cavo o terrestre per la ricezione è il file channels.conf. L'archivio di distribuzione contiene un file channels.conf.cable e channels.conf.terr di base, rispettivamente, con i quali gli utenti di tali schede possono rinominarli o copiarli come channels.conf in modo di ricevere i canali digitali via cavo o terrestri. Il formato di questi file è spesso lo stesso dei canali satellitari, comunque, alcuni campi hanno un significato diverso oppure esteso (vedi man vdr(5) per maggiori dettagli).

Puoi anche usare un misto di schede DVB-S, DVB-C e DVB-T nello stesso sistema. Tutto quello che devi fare è inserire tutte le definizioni dei canali in un unico e grande file channels.conf. VDR automaticamente saprà quali canali possono essere ricevuti con quale scheda(e) dal valore del parametro source.

Apprendimento tasti controllo remoto

Non esiste un file remote.conf di base, quindi dovrai eseguire una sessione di apprendimento che permetta al programma di imparare i codici del tuo controllo remoto. All'inizio il sistema tenterà di determinare la velocità e la modalità di trasferimento base della tua unità di controllo remoto, e poi ti chiederà di premere un tasto dopo l'altro così VDR può imparare i vari codici chiave. Dovrai almeno fornire un tasto Su e Giù, così puoi cambiare i canali. Il resto della definizione dei tasti è opzionale, ma più tasti tu definisci, più sarai in grado di navigare attraverso i menu e controllare le registrazioni/riproduzioni. Il programma usa solo un piccolo numero di tasti che hanno significato multiplo nelle varie modalità (vedi Manuale utente di VDR per una descrizione dettagliata).

L'assegnazione dei tasti PC raccomandati sono:

Funzione Tasti della tastiera
Su, Giù, Sinistra, Destra Tasti cursore nel tastierino numerico
Menu Tasto Home nel tastierino numerico
Ok Invio
Indietro Tasto Fine nel tastierino numerico
Rosso, Verde, Giallo, Blu F1..F4
0..9 0..9 nella parte superiore della tastiera
Power P
Volume+/- +, -
Muto m

Se preferisci differenti assegnazioni dei tasti, o se i valori di default non funzionano per la tua tastiera, semplicemente cancella il file remote.conf e riavvia vdr per tornare nella modalità di apprendimento.

Generazione documentazione del codice sorgente

Puoi dare il comando make srcdoc per generare la documentazione del codice sorgente usando l'utility Doxygen. Per fare questo hai bisogno del pacchetto Doxygen che si trova in http://www.doxygen.org e del pacchetto Graphviz disponibile in http://www.research.att.com/sw/tools/graphviz. Dopo l'installazione di questi 2 pacchetti puoi dare il comando make srcdoc ed usare il tuo browser HTML per leggere il file srcdoc/html/index.html.


Gringo 02:48, 20 feb 2008 (CET)

Strumenti personali