Una VDRBox con ArchLinux

Da VDR-Italia.

Una VDRBox con ArchLinuxmodifica

L'autore del manuale, tutti quelli che hanno collaborato, l'amministratore del sito non si assumono nessuna responsabilità su eventuali danni causati direttamente o indirettamente da esso. La messa in opera di quanto descritto nel presente manuale è a proprio rischio.

Il presente manuale spiega come installare VDR su una distribuzione ArchLinux usando una scheda DVB-S Premium.


Indice

Introduzione

Una VDRBox con ArchLinux (12/05/2007)

VDRBox, di cosa si tratta? Registrare, visualizzare, chattare, masterizzare, ecc. Sono tutte cose che con VDR si possono fare utilizzando un semplice telecomando, basta scegliere la distribuzione giusta e una buona percentuale del lavoro è già fatto. Un'altra particolarità di una VDRBox è la velocità, non possiamo permetterci di attendere un minuto e mezzo per vedere un programma via satellite. Con ArchLinux, nell'installazione che ho fatto io corrispondente a quella del manuale, attendo 20 secondi.

Per l'installazione utilizziamo ArchLinux v0.8 e VDR v1.4.6-1. La versione corrente di VDR è la 1.4.7, ma ho preferito la precedente perché in questo modo posso spiegare anche come applicare eventuali patch. Comunque, se installate versioni successive non dovrebbero esserci problemi, l'installazione non cambia.

Installazione del sistema operativo

L'installazione del sistema operativo risulta una delle operazioni più noiose e stressanti, ma dovete considerare che da questo dipende la buona riuscita del lavoro, per cui cercate di fare tutto con cura e dove ci siano dei dubbi, vedete di risolverli chiedendo a gente più esperta.

Il boot da CD

Andate nel sito ufficiale di ArchLinux e scaricate il CD di installazione. Non prendete quello completo, ma quello FTP (vedi voce FTP Install), che scarica tutto da internet e alla fine vi ritroverete un sistema già aggiornato.

Inserite il CD nel lettore, avviate il PC e al prompt dove dice:

boot:

premete il tasto <INVIO>.

Finito il caricamento del sistema, premete un'ultima volta <INVIO> e poi caricate la tastiera italiana digitando:

#> loadkeys it

e avviamo il programma di installazione:

#> /arch/setup

Come sorgente per l'installazione, selezionate FTP, così avremo i pacchetti tutti aggiornati alla fine del lavoro, poi premete OK.

Configurazione della rete

Avviato il programma di installazione, andiamo subito a configurare la rete, cosa indispensabile siccome abbiamo scelto FTP come sorgente dei pacchetti.

  • Entrate nel menu Configure Network, leggete le istruzioni che vi possono servire se il modulo per la vostra scheda di rete non è stato caricato, e premete ancora Invio.
  • Selezionate la scheda di rete da configurare (quella collegata a Internet), nel mio caso eth0.
  • Confermate che volete collegarvi usando un client DHCP

Dopo questi passi dovreste avere la rete configurata ed essere tornati nel menu principale.

Configurazione del disco fisso

  • Entrate nel menu Prepare Hard Drive
  • Selezionate Auto Prepare, che è la scelta più semplice, anche se cancella tutto il disco fisso.
  • Impostate a 80Mb la grandezza della partizione di '/boot'
  • Impostate la grandezza della partizione di swap come la quantità di memoria che avete nel sistema
  • Impostate la grandezza della partizione '/' (di root, di solito 7/8 GB!!!). Tutto lo spazio rimanente sarà destinato alla partizione '/home'
  • Selezionate il tipo di filesystem che volete usare. Io preferisco reiserfs, un pò lento al boot, ma poi molto veloce.
  • Confermate il filesystem che avete scelto, che verrà usato per '/home' e '/' (root)
  • Confermate la CANCELLAZIONE COMPLETA dei vostri dati sul disco fisso (vi siete ricordati di fare un backup del contenuto del disco prima di procedere?)
  • Aspettate che il disco venga partizionato e poi confermate con OK
  • Selezionate il menu Return to menu per tornare al menu principale

Selezione dei pacchetti

Adesso dobbiamo selezionare quali pacchetti installare, per avere un sistema base da utilizzare nella VDRBox.

  • Entrate in Select Packages
  • Selezionate un mirror dei pacchetti. Io consiglio di selezionare quello del Garr che è in Italia ed è pure veloce.
  • Selezionate solo il gruppo '[*] base', gli altri non ci interessano, visto che faremo tutto da shell
  • Accettate tutti i pacchetti selezionati di default
  • Selezionate tutti i pacchetti di default. Alcuni non vi serviranno, ma onde evitare rischi inutili, meglio lasciare tutto così come è.

Nota: attenzione, se non riuscite a collegarvi ai server forse avete un problema di DNS. Dovete controllare il file /etc/resolv.conf seguendo le istruzioni che trovate più avanti nella sezione "Configurazione del sistema".

Installazione dei pacchetti

Finalmente possiamo iniziare ad installare qualcosa. Il tempo dipende dalla vostra connessione ad internet, io vi consiglio una discreta ADSL, con un 56K la vedo abbastanza dura, comunque.. se vi va di provare non ve lo vieto.

  • Selezionate il menu Install Packages
  • Attendete lo scaricamento di Pacman
  • Confermate di conservare i files scaricati (si possono cancellare successivamente con il comando 'pacman -S --clean', cosa che noi faremo più avanti!)

Adesso prendetevi un bel pò di tempo, lasciate che il PC scarichi e installi i pacchetti.

Configurazione del sistema

La configurazione del sistema si potrebbe ritenere complessa, ma nella maggior parte dei casi basta avere un infarinatura di Linux per sapere rispondere bene a qualche semplice domanda.

Come detto sopra, vengono poste delle domande, e tranne nella prima (risposta YES), solitamente le successive (avvio da USB, Firewire, PCMCIA, NFS, sistemi RAID, LVM2,volumi criptati, file personalizzato DSDT) si può rispondere NO. Come editor predefinito potete scegliere tra VIM e NANO. Non sto a spiegarvi come funzionano, ma il più semplice da utilizzare è sicuramente NANO, per cui io scelgo questo. Adesso abbiamo l'occasione di provare l'editor scelto, visto che dobbiamo per forza modificare alcuni files per adattarli alle nostre esigenze.

resolv.conf

In questo file mettiamo il nostro server DNS, una riga tipo questa ma ovviamente l'indirizzo IP deve essere quello fornito dal vostro provider.

nameserver 192.168.1.1

Altrimenti vi consiglio vivamente di usare i DNS pubblici offerti da OpenDNS:

nameserver 208.67.222.222 
nameserver 208.67.220.2220

Premete F2, digitate la lettere 'Y' per accettare i cambiate e poi date <INVIO> per salvare e tornare al programma d'installazione.

rc.conf

Questo è il file che usiamo maggiormente per configurare il sistema come potrete vedere in seguito. Qui sotto metto delle linee da sostituire nel caso già esistano, o da aggiungere se non ci sono:

LOCALE="it_IT@euro"
TIMEZONE="Europe/Rome"
KEYMAP="it"
HOSTNAME="vdrbox"

Nel caso vogliate usare DHCP per ottenere automaticamente un indirizzo IP nella rete locale, modificate la riga in questione in questo modo:

eth0="dhcp"

altrimenti, un sistema più veloce ma anche un pò più complesso è di inserire i parametri manualmente, ma in questo caso il client non deve perdere tempo ad aspettare la risposta del server DHCP ed il boot risulta più veloce:

eth0="eth0 192.168.1.3 netmask 255.255.255.0 broadcast 192.168.1.255"
gateway="default gw 192.168.1.1"
ROUTES=(gateway)

Da notare nell'ultima riga che è stato impostato il simbolo ! (punto esclamativo). Il punto esclamativo dice di non eseguire l'operazione (infatti si tratta di una negazione). Ovviamente qui è un esempio, nel vostro caso dovrete mettere le vostre impostazioni di rete, visto che non sono tutte uguali.

DAEMONS è l'opzione dove vengono elencati i demoni che devono partire al boot, nell'ordine specificato nella lista. Nel mio caso ho disabilitato quelli preceduti da un punto esclamativo (!), che indica di non caricare il modulo, come specificato nelle istruzioni contenute nel file. Anteponendo una chiocciola (@) al demone questo viene caricato in background.

DAEMONS=(syslog-ng network !netfs !crond)

A questo punto salvate premendo F2, digitate la lettere 'Y' per accettare i cambiate e poi date <INVIO> per tornare al programma d'installazione. e tornate al programma d'installazione.

Altri files

Controllate che gli altri files siano a posto, nel mio caso non ho dovuto toccarli, visto che il programma di installazione ha fatto un buon lavoro nel rilevamento dell'hardware.

Password di root

Qui viene chiesta la password di 'root' (ovvero l'utente amministratore di tutto il sistema). Come nella maggior parte dei casi dovete digitarla due volte per essere sicuri che sia stata scritta in modo corretto.

Vale sempre il solito discorso, consiglio di non scegliere un nome/parola esistente e che sia una serie di caratteri alfanumerici maiuscoli e minuscoli.

  • Premete Return to main Menu per tornare al menu precedente

Installazione del Kernel

Il kernel è il cuore del sistema, e l'installazione offre una sola scelta e questo ci evita molte possibili indecisioni.

Alla domanda se si vuole fare la preconfigurazione con hwdetect rispondete YES e all'apertura del file che si presenterà davanti vi conviene salvarlo così com'è, evitando inutili complicazioni.

Installazione del BootLoader

Il bootloader è quel programmino che viene caricato all'avvio del PC e che si usa solitamente per il multiboot (avvio di più sistemi operativi come ad esempio Windows e Linux). Io consiglio di usare GRUB che è nettamente superiore oltre che attualmente più supportato.

  • Controllate che il file sia giusto, anche se ne sono quasi sicuro.
  • Installate GRUB nell'MBR del disco e non in una partizione, nel mio caso '/dev/sda'
  • Per ridurre ulteriormente il tempo d'avvio di VDR si può impostare la voce "timeout"="0" nel file /boot/grub/menu.lst (come descritto nella sezione successiva Modifica di menu.lst)

Fine installazione

Finalmente il sistema è installato, ed è stato molto più semplice di quello che pensavate, dite la verità. Uscite dal programma, e cancellate i pacchetti scaricati

#> pacman -Sc

e riavviate il sistema (ricordatevi di togliere il CD-ROM per far partire il sistema direttamente dal disco fisso), così possiamo toccare con mano se è andato tutto come previsto.

#> reboot

Post-installazione

Nel mio caso è andato tutto bene ed il sistema si è riavviato senza errori. Adesso abbiamo dei piccoli lavoretti da fare prima di procedere all'installazione di VDR.

Controllo della rete

Entriamo come utente 'root' e facciamo un piccolo controllo per vedere se la rete funziona. Dovremmo vedere il tempo che ci serve per contattare il server di Google:

#> ping -c 4 www.google.it

Possiamo vedere il nostro indirizzo IP con il comando:

#> ifconfig

Aggiornamento dei repository

Adesso è il momento di aggiornare il sistema e i repository di Pacman. Probabilmente il sistema è già aggiornato visto che abbiamo usato FTP come scelta di installazione.

#> pacman -Syu

Nota: se ci sono problemi con l'aggiornamento dei repository dare un'occhiata a questa pagina del wiki ufficiale di Arch!!!

Probabilmente ci servirà qualche dipendenza particolare per i vari plugins, per cui attiviamo anche il repository Community.

Apriamo il file di configurazione dei repository con il comando:

#> nano /etc/pacman.conf

A questo punto togliamo il commento da queste linee (in poche parole si leva il '#') come nell'esempio.

[community]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/community

Premete F2, digitate la lettere 'S' per accettare i cambiate e poi date <INVIO> per salvare.

Lingua italiana

Molti programmi hanno la scelta automatica della lingua, usando la funzione locales (gettext). Predisponiamo il sistema per questa scelta e impostiamo l'italiano.

Aprite il file '/etc/locale.gen' con il comando:

#> nano /etc/locale.gen

e poi decommentate questa riga, levando il cancelletto (#):

it_IT@euro      ISO-8859-15

Premete F2, digitate la lettere 'S' per accettare i cambiate e poi date <INVIO> per salvare.

Ora avviate questa utility:

#> locale-gen

Programmi supplementari

Per programmi supplementari intendo quelli che sono sempre indispensabili, ma che non fanno parte ne dell'installazione del sistema operativo, ne di VDR.

Installazione di OpenSSH

Descrizione

SSH è un protocollo sicuro per usare la shell via rete. In poche parole usate un PC via rete come se foste lì davanti a voi. A noi serve per configurare la VDRBox da un altro PC (utilizzando una console nel caso di client Linux oppure il programma Putty nel caso di client Windows), visto che appena sarà terminata la lasceremo senza monitor e tastiera vicino alla televisione!

Installazione

#> pacman -S openssh

Configurazione

poi apriamo il file /etc/rc.conf con il comando:

#> nano /etc/rc.conf

e aggiungiamo 'sshd' alla lista dei demoni da avviare. Consiglio di metterlo come ultimo, nella sequenza di avviamento, come nell'esempio:

DAEMONS=(syslog-ng network sshd)

Premete F2, digitate la lettere 'S' per accettare i cambiate e poi date <INVIO> per salvare.

E' possibile avviare il server anche senza riavviare il PC, in questo modo:

#> /etc/rc.d/sshd start

Per accedere al PC da un altro computer, dobbiamo infine dire al PC di accettare connessioni dalla rete, che di default non sono permesse. Per fare questo dobbiamo aggiungere una riga al file /etc/hosts.allow:

#> nano /etc/hosts.allow

E poi aggiungiamo la riga in oggetto in questo modo:

sshd:   ALL

Premete F2, digitate la lettere 'S' per accettare i cambiate e poi date <INVIO> per salvare.

Nota: al posto di ALL potete mettere anche un indirizzo IP, una rete, o un gruppo di indirizzi come nell'esempio sotto:

sshd: 192.168.1.5
sshd: 192.168.1.*
sshd: 192.168.1.0/255.255.255.0
sshd: 192.168.1.0/24

Installazione di Midnight Commander

#> pacman -S mc

Installazione di LIRC

Descrizione

Una VDRBox senza telecomando non è una cosa dignitosa, oltre che scomoda. Io uso un ricevitore seriale ed un telecomando Meliconi, di quelli universali.

Installazione

Installiamo LIRC usando Pacman:

#> pacman -S lirc setserial

irrecord

Questo programma crea il file /etc/lircd.conf per il vostro telecomando, che in parole povere contiene i codici tasti. Se avete già il file, evitate di seguire questa parte. Prima di proseguire, controllate anche in questo sito se è presente il file per il vostro telecomando: Elenco telecomandi

#> setserial /dev/ttyS0 uart none
#> modprobe lirc_serial

Carichiamo il demone che gestisce il telecomando:

#> /etc/rc.d/lircd start

e finalmente avviamo 'irrecord':

#> irrecord -d /dev/lirc0 /etc/lircd.conf

Se usate un telecomando come il mio (Meliconi 2+1), con codice 304 potete usare il seguente file di configurazione:

begin remote

  name  lircd.conf
  bits           12
  flags SPACE_ENC|CONST_LENGTH
  eps            30
  aeps          100

  header       2422   571
  one          1219   573
  zero          622   573
  gap          44863
  toggle_bit      0


      begin codes
          1                        0x010
          2                        0x810
          3                        0x410
          4                        0xC10
          5                        0x210
          6                        0xA10
          7                        0x610
          8                        0xE10
          9                        0x110
          0                        0x910
          CLOSE                    0xA90
          MENU                     0x3F0
          OK                       0x690
          MENU_SU                  0x2F0
          MENU_GIU                 0xAF0
          MENU_SX                  0x2D0
          MENU_DX                  0xCD0
          MUTE                     0x290
          AV                       0xA50
          CAN+                     0x090
          CAN-                     0x890
          VOL+                     0x490
          VOL-                     0xC90
          1-                       0xB90
          2-                       0xB10
          PUNTO                    0x1F0
          PUNTO_SH                 0x1F0
          ASTERISCO                0x138
          ASTERISCO_SH             0x138
          INDIETRO                 0x990
          STOP                     0x190
          PAUSA                    0xD90
          AVANTI                   0x590
          PLAY                     0x370
          PLAY_SH                  0x370
          S1                       0xFD0
          S2                       0x1D0
          S3                       0x538
          S4                       0x5D0
          S1_SH                    0x4D0
          S2_SH                    0x8D0
          S3_SH                    0xA50
          S4_SH                    0x5D0
          F1                       0x610
          F2                       0xE10
          F3                       0xD10
          F4                       0x790
          F1_SH                    0x610
          F2_SH                    0xE10
          F3_SH                    0xD10
          F4_SH                    0x790
          MENU_SH                  0x070
          OK_SH                    0xA70
          ROSSO                    0x338
          VERDE                    0xB38
          GIALLO                   0x738
          BLU                      0xF38
      end codes

end remote

Configurazione

Impostiamo la porta seriale, che nel mio caso è 'ttyS0' (COM1) e carichiamo il modulo di LIRC per i ricevitori seriali di tipo UART.

#> setserial /dev/ttyS0 uart none
#> modprobe lirc_serial

Modifichiamo il file /etc/rc.d/lircd aggiungendo le due linee tra gli asterischi. La prima e l'ultima servono per mostrare dove posizionare i comandi.

#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions
. /etc/conf.d/lircd

PID=$(pidof -o %PPID /usr/sbin/lircd)
case "$1" in
  start)
    stat_busy "Starting LIRC Daemon"
    # ********************************
    setserial /dev/ttyS0 uart none
    modprobe lirc_serial
    # ********************************
    [ -n "$LIRC_DRIVER" ] && LIRC_EXTRAOPTS="-H $LIRC_DRIVER $LIRC_EXTRAOPTS"
    [ -z "$PID" ] && /usr/sbin/lircd -d $LIRC_DEVICE $LIRC_EXTRAOPTS $LIRC_CONFIGFILE
    if [ $? -gt 0 ]; then
      stat_fail
    else
      add_daemon lircd
      stat_done
    fi
    ;;
  stop)
    stat_busy "Stopping LIRC Daemon"
    [ ! -z "$PID" ] && kill $PID &> /dev/null
    if [ $? -gt 0 ]; then
      stat_fail
    else
      rm_daemon lircd
      stat_done
    fi
    ;;
  restart)
    $0 stop
    sleep 1
    $0 start
    ;;
  *)
    echo "usage: $0 {start|stop|restart}"
esac
exit 0

Infine aggiungiamo 'lircd' alla lista dei demoni da caricare in /etc/rc.conf.

Per testare se la configurazione è stata fatta bene, avviamo il demone di LIRC e poi il programma 'irw' che ci visualizza sul monitor il nome dei tasti che premiamo sul telecomando:

#> /etc/rc.d/lircd start
#> irw

Per interrompere 'irw' basta premere i contemporaneamente i tasti 'CTRL-C'.

Installazione di Video Disk Recorder

Video Disk Recorder, d'ora in poi VDR, esiste in due release, la stabile 1.4 e quella instabile che è la 1.5. Attualmente non vedo nessun motivo per installare la instabile, e non ne vedrò fino a quando non ci saranno dei plugins validi che richiedono proprio quella versione per compilare. Attualmente il problema è inverso e per andare con la instabile molti plugins si devono patchare, cosa scomoda e con grandi rischi di instabilità.

Ho scelto di fare tutto da sorgenti perché questo procedimento ci da più controllo sulla configurazione, oltre alla possibilità di applicare eventuali patch non contemplate nelle versioni precompilate.

Firmware e moduli

La prima cosa da fare è mettere il firmware della scheda DVB al posto giusto e poi caricare i moduli del kernel. La fonte ufficiale per i firmware è questa : Firmware

#> mkdir /lib/firmware
#> cd /lib/firmware

#> wget -c http://www.linuxtv.org/downloads/firmware/dvb-ttpci-01.fw-2622
#> ln -s dvb-ttpci-01.fw-2622 dvb-ttpci-01.fw

#> modprobe -r dvb-ttpci
#> modprobe dvb-ttpci

Compilazione e installazione del programma

Scarichiamo i sorgenti dal sito FTP di VDR e li mettiamo nella directory '/vdr' e li scompattiamo. Infine creiamo un link simbolico per usare sempre la stessa directory negli script di VDR, anche quando si aggiorna la versione.

#> mkdir /vdr
#> cd /vdr

#> wget -c ftp://ftp.cadsoft.de/vdr/vdr-1.4.6.tar.bz2 -P /vdr
#> tar -jxvf vdr-1.4.6.tar.bz2
#> ln -s vdr-1.4.6 current

Scarichiamo la patch di aggiornamento alla versione 1.4.6-1 e la applichiamo. Ricordo che le patch di VDR sono sequenziali, vanno applicate tutte in sequenza e l'una non include le precedenti. Per esempio, se esce la patch 1.4.6-2, prima si deve installare VDR, poi applicare la 1.4.6-1 ed infine la 1.4.6-2.

#> cd /vdr/current
#> wget ftp://ftp.cadsoft.de/vdr/Developer/vdr-1.4.6-1.diff -P /vdr/current
#> patch -p1 < vdr-1.4.6-1.diff

Nota: se il comando patch non viene trovato dobbiamo installarlo con 'pacman -S patch'.

Creiamo un link simbolico per le opzioni di compilazione:

#> ln -s Make.config.template Make.config

e aggiungiamo alla fine di questo file le righe per dirgli di non usare la tastiera e di usare LIRC per il controllo con il telecomando:

NO_KBD=1
RCU_DEVICE=/dev/ttyS0
REMOTE=LIRC

Installiamo due dipendenze e cancelliamo i plugins forniti come esempio, che non servono a niente:

#> pacman -S libjpeg libcap
#> rm -R /vdr/current/PLUGINS/src/*

Ora possiamo iniziare a compilare VDR:

#> make clean
#> make

Nota: se il comando make non viene trovato dobbiamo installare gli strumenti di compilazione con 'pacman -S make binutils gcc'.

Se la compilazione è andata a buon fine, VDR è installato e adesso inizia la parte più complessa, la configurazione.

Configurazione

La configurazione di VDR è abbastanza complessa anche se avere una scheda Premium ci aiuta moltissimo. Vediamo di aiutarci in questo arduo compito, visto che con un pò di fortuna, fantasia e una buona lettura probabilmente riusciremo a combinare qualcosa.

Per iniziare copiamo lo script 'svdrpsend.pl' nella directory /usr/bin visto che alcuni script vanno a cercarlo nel path:

#> cp /vdr/current/svdrpsend.pl /usr/bin

Lanciando VDR, ci dice che manca la directory /video, per cui vediamo di crearla al volo e farlo contento per una volta:

#> mkdir /home/video
#> ln -s /home/video /video

Creiamo la directory che serve per contenere i files di configurazione e copiamo al suo interno quelli presenti nei sorgenti di VDR:

#> mkdir /etc/vdr
#> mkdir /etc/vdr/plugins
#> cp /vdr/current/*conf /etc/vdr/

Adesso vediamo se il tutto funziona:

#> cd /vdr/current
#> ./vdr -c /etc/vdr

Se avete seguito le istruzioni non ci dovrebbero essere problemi, e dovrebbe apparirvi la richiesta di configurazione dei tasti del telecomando per la creazione del file remote.conf. Procedete con la configurazione, se sbagliate e al riavvio non vi chiede più di rifare la configurazione, cancellate il file /etc/vdr/remote.conf.

Finito di configurare i tasti, e se siete sintonizzati su Astra 19,2° East, dovreste vedere un canale tedesco (di solito si tratta di "RTL Television"). Se avete un Disecq (cioè uno switch per passare da un satellite all'altro), dovete entrare in Menu/Setup/LNB e attivare l'opzione Disecq.

Già che ci siete entrando in Menu/Setup/OSD potete selezionare la lingua italiana. Per confermare le scelte premete il tasto Ok sul telecomando.

Script di avvio

Lo script di avvio ha un compito molto importante, deve avviare VDR e se a causa di un bug muore, deve riavviarlo. Per iniziare vediamo di usare lo script runvdr fornito con i sorgenti di VDR, modificandolo solo un pochino e vediamo di lasciarlo dove si trova, in /vdr/current/.

VDRPRG="./vdr"
VDRCMD="$VDRPRG -w 60 -c /etc/vdr "

KILL="/usr/bin/killall -q -TERM"

# Detect whether the DVB driver is already loaded
# and return 0 if it *is* loaded, 1 if not:
function DriverLoaded()
{
  if [ "`lsmod | grep dvb | wc -l`" -eq "0" ] ; then
    return 1
  else
    return 0
  fi
}

# Load all DVB driver modules needed for your hardware:
function LoadDriver()
{
  modprobe dvb-ttpci
}

# Unload all DVB driver modules loaded in LoadDriver():
function UnloadDriver()
{
  modprobe -r dvb-ttpci
}

# Load driver if it hasn't been loaded already:
if ! DriverLoaded; then
   LoadDriver
   fi

while (true) do
  eval "$VDRCMD"

  if test $? -eq 0 -o $? -eq 2; then exit; fi

  echo "`date` reloading DVB driver"
  $KILL $VDRPRG
  sleep 10
  UnloadDriver
  LoadDriver

  echo "`date` restarting VDR"

done

Ovviamente nell'esempio ho messo 'dvb-ttpci', il modulo che serve alla mia scheda DVB, mentre voi dovrete mettere quello della vostra.

Adesso manca solo il programma che avvia VDR al boot del sistema, lanciando lo script 'runvdr'. Questo script lo chiamiamo 'vdr' e lo mettiamo nella directory /etc/rc.d/.

#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

PID1=$(pidof -o %PPID runvdr)
PID2=$(pidof -o %PPID vdr)

case "$1" in
  start)
    stat_busy "Starting VDR Script"
    cd /vdr/current
    ./runvdr &

    if [ $? -gt 0 ]; then
      stat_fail
    else
      add_daemon vdr
      stat_done
    fi
    ;;
  stop)
    stat_busy "Stopping VDR Script"
    [ ! -z "$PID1" ] && kill $PID1 &> /dev/null
    [ ! -z "$PID2" ] && kill $PID2 &> /dev/null
    if [ $? -gt 0 ]; then
      stat_fail
    else
      rm_daemon vdr
      stat_done
    fi
    ;;
  restart)
    $0 stop
    sleep 15
    $0 start
    ;;
  *)
    echo "usage: $0 {start|stop|restart}"
esac
exit 0

Ricordatevi di renderlo eseguibile, con questo comando:

#> chmod +x /etc/rc.d/vdr

A questo punto non vi rimane altro da fare che aggiungere lo script VDR alla lista dei demoni da avviare al boot del sistema in /etc/rc.conf, come in questo esempio:

DAEMONS=(lircd syslog-ng vdr network sshd)

Per testare se il tutto funziona ci sono due possibilità, la prima è riavviare il sistema:

#> reboot

e la seconda, molto più semplice è lanciare lo script di boot manualmente:

#> /etc/rc.d/vdr start

VDR v1.5.5

Questa versione richiede altre dipendenze:

#> pacman -S freetype2 fontconfig

In più richiede pure dei fonts da usare in VDR, che va a cercarli nella directory /usr/share/fonts. Se non li trova da questo errore:

segmentation fault

Vanno benissimo dei TTF, che li metterete in /usr/share/fonts/TTF.

NVRAM WakeUP - Autoaccensione del PC

Con l'aumento del costo dell'energia elettrica l'idea di lasciare un PC acceso 24 ore su 24 è una cosa quasi impensabile, sempre che non si è abbastanza ricchi da potersi permettere di buttare i soldi. Però a tenerlo spento c'è anche il problema che quando siamo assenti non abbiamo la possibilità di registrare degli eventi, cosa per cui è nato VDR. Tra questi due problemi si tratta di trovare un compromesso, e questo si chiama NVRAM-WakeUP. In poche parole, il PC ad una data ora si accende da solo, registra e poi si spegne, risolvendo tutti i problemi sopra elencati.

Il kernel

Per prima cosa dobbiamo attivare dei device nel kernel (/dev/rtc /dev/mem /dev/nvram), che probabilmente in molte distribuzioni saranno già presenti come moduli. Facciamo un controllo per vedere se sono presenti, in questo modo:

#> ls /dev/rtc /dev/mem /dev/nvram

Nel mio caso per esempio manca il device 'nvram' che carico così:

#> modprobe nvram

Nel caso mancassero pure i moduli, ci tocca ricompilare il kernel, cosa complessa ma nemmeno tanto per un utente non proprio alle prime armi. La cosa che ci interessa è abilitare queste opzioni nel menu:

Device Drivers  --->
  Character devices  --->
    <*> /dev/nvram support
    <*> Enhanced Real Time Clock Support 

ed infine ricompilate il tutto. Se avete dei problemi potere seguire questa guida sulla compilazione del kernel: Guida alla compilazione del kernel. Riavviate il sistema e ripetete l'operazione di controllo per vedere se i device esistono. Se avete a che fare con un modulo, dobbiamo dire al sistema di caricarlo, mettendo il nome del modulo in /etc/rc.conf nella variabile MODULES in questo modo.

MODULES=(nvram)

Se sono presenti altri moduli, basta separarli con uno spazio.

Installazione delle utility

Per iniziare dobbiamo trovare qualcosa per gestire la lettura/scrittura del BIOS. La soluzione migliore è usare qualcosa che è stato fatto apposta per questo, NVRAM-WakeUP. Lo possiamo trovare a questo URL. Scarichiamo i sorgenti e scompattiamo:

#> cd /tmp
#> wget -c http://dfn.dl.sourceforge.net/sourceforge/nvram-wakeup/nvram-wakeup-0.97.tar.bz2 -P /tmp
#> tar -jxvf nvram-wakeup-0.97.tar.bz2
#> cd nvram-wakeup-0.97

Modificate il file 'Makefile' e cambiate la sesta riga per dirgli in questo modo dove installare i programmi:

prefix = /usr

compiliamo e installiamo:

#> make
#> make install

Nella compilazione di questi sorgenti non ho mai avuto errori, vi auguro di trovarvi nella mia stessa situazione.

Configurazione

Durante la configurazione teoricamente il programma va solo a leggere il BIOS e non lo scrive.

Rilevamento dati della scheda madre

Per prima cosa controlliamo che la scheda madre sia supportata dal programma:

#> nvram-wakeup

e... tanto per cambiare scopro che la mia non è supportata, come potete vedere:

nvram-wakeup: Your mainboard is currently not supported.
nvram-wakeup: Please try determining the addresses and sending the following
nvram-wakeup: information back to the maintainers:
nvram-wakeup:  - The addresses you found out (read README.mb)
nvram-wakeup:  - Mainboard vendor:   ASUSTeK Computer Inc.
nvram-wakeup:  - Mainboard type:     P4P800
nvram-wakeup:  - Mainboard revision: Rev 1.xx
nvram-wakeup:  - BIOS vendor:        American Megatrends Inc.
nvram-wakeup:  - BIOS version:       1019.005
nvram-wakeup:  - BIOS release:       10/14/2004

Non c'è da preoccuparsi comunque, esiste un altra possibilità, rilevare 'quasi' manualmente le posizioni di memoria dove il BIOS salva l'orario di accensione.

Per rilevare le posizioni di memoria nel BIOS si deve usare il programma 'guess-helper' presente sempre nel pacchetto che abbiamo compilato prima, e se abbiamo dato il 'make install' dovrebbe essere installato nel nostro sistema.

Per vedere che chipset monta la scheda madre, usate il comando 'lspci'.

Lanciato il programma dobbiamo seguire attentamente le sue istruzioni, che saranno di questo tipo:

  1. Lanciare il programma e leggere le istruzioni
  2. Riavviare
  3. Modificare il contenuto del BIOS in base alle istruzioni ricevute
  4. Tornare al punto 1

Questa sequenza si dovrà fare un pò di volte, e nel mio caso è stata così, per fare un esempio:

-- Sequenza 1 Sequenza 2 Sequenza 3 Sequenza 4
Giorno 31 11 01 01
Ora 23 12 00 00
Minuti 59 13 00 00
Secondi 59 14 00 00
Abilitato yes yes yes no

Alla fine nella directory /root/guess-directisa/ mi sono trovato dei files che corrispondono all'immagine di uno spazio di memoria del BIOS per ogni sequenza. Comunque l'unico file che ci interessa è quello chiamato 'nvram-wakeup.conf' che in pratica nel mio caso contiene questo, nel vostro ovviamente le posizioni di memoria saranno sicuramente diverse.

################################################
##  Mainboard autodetection information:
##
##    - Mainboard vendor:   "ASUSTeK Computer Inc."
##    - Mainboard type:     "P4P800"
##    - Mainboard revision: "Rev 1.xx"
##    - BIOS vendor:        "American Megatrends Inc."
##    - BIOS version:       "1019.005"
##    - BIOS release:       "10/14/2004"

addr_stat        = 0x9B
shift_stat       = 4
addr_day         = 0x9C
addr_hour        = 0x9D
addr_min         = 0x9E
addr_sec         = 0x9F
addr_chk_h       = 0x30   # guessed
addr_chk_l       = 0x31

upper_method = INTEL

Se non troviamo il file proviamo a lanciare un ultima volta il programma 'guess-helper' e il problema si dovrebbe risolvere.

Copiamo il file nella directory /etc.

Spegnimento del sistema

Se non esiste la directory /etc/vdr/scripts la dovete create. Questa directory conterrà gli script che ci servono per la gestione del sistema con VDR:

#> mkdir /etc/vdr/scripts

Per lo spegnimento del sistema non basta un semplice 'shutdown -h now' ma prima di fare questo serve scrivere nel BIOS l'orario di accensione. Per fare questo utilizziamo questo script che chiameremo 'nvram.sh' da mettere in /etc/vdr/scripts:

Dobbiamo anche renderlo eseguibile:

#> chmod +x /etc/vdr/scripts/nvram.sh

Questo script crea dei files in / che non devono essere cancellati o modificati per nessun motivo.

Avvio di VDR

Nello script di avvio di VDR, dovremo adesso specificare quale script usare per spegnere la macchina quando si preme il tasto 'POWER' del telecomando. Questo programma è lo script 'nvram.sh', per cui aggiungiamo queste opzioni alla riga che avvia VDR:

--shutdown='/etc/vdr/scripts/nvram.sh stop'
--record='/etc/vdr/scripts/nvram.sh'

La prima opzione (shutdown) dice a VDR cosa usare per spegnere la macchina, mentre la seconda (record) dice che programma eseguire quando si avvia e si ferma una registrazione. Nel nostro caso, quest'ultima a registrazione ultimata, memorizza nel BIOS l'orario della prossima registrazione e spegne la VDRBOX. Ancora prima di avviare VDR, in 'runvdr dobbiamo eseguire lo script nvram.sh per fargli controllare se il PC è stato avviato manualmente o in automatico, in questo modo:

/etc/vdr/scripts/nvram.sh start

Per essere più chiaro faccio un esempio della riga esatta, come dovrebbe apparire dopo le modifiche una parte dello script 'runvdr'

VDRCMD="$VDRPRG -w 60 -c /etc/vdr \
    --shutdown='/etc/vdr/scripts/nvram.sh stop' \
    --record='/etc/vdr/scripts/nvram.sh' \
"

/etc/vdr/scripts/nvram.sh start

Modifica di menu.lst

Adesso siamo agli sgoccioli, non rimane altro che impostare il file /boot/grub/menu.lst ed il lavoro dovrebbe essere finito. Alcuni BIOS richiedono il 'reboot' per memorizzare l'orario di accensione, per cui noi riavviamo e facciamo spegnere la macchina da Grub. Questo è quello della mia VDRBOX, potete adattarvelo senza grossi problemi, visto che in teoria dovrebbe differire solo il device dei dischi.

# Script /boot/grub/menu.lst

timeout   0
color light-blue/black light-cyan/blue

default saved

title VDRBOX
root   (hd0,0)
kernel /vmlinuz26 root=/dev/sda3 ro
initrd /kernel26.img
savedefault 0

title VDRBOX PowerOff
savedefault 0
halt

A questo punto non vi rimane che testare il tutto sperando che funzioni!!!

Conclusione

Non dovete per nessun motivo utilizzare i comandi 'reboot' o 'shutdown' direttamente. Per spegnere la VDRBox usate il telecomando o al massimo questo comando:

#> /etc/vdr/scripts/nvram.sh stop

Eventuali problemi

Alcune schede non supportano il WakeUp, anche se sono una minima parte. In questo caso ci sono delle schede che oltre ad altre utili funzioni, fanno anche questo, ma costano abbastanza.

Installazione dei plugins

I plugins sono dei programmi che si collegano a VDR e servono per aggiungere nuove funzioni. Grazie a questa opportunità, molti programmatori si sono sbizzarriti a crearne di tutti i tipi, noi vedremo come installare i più comuni, spiegando le dipendenze, configurazioni e tutto quello che ci gira attorno.

Aggiungere un plugin allo script di avvio

Aggiungere un plugin allo script di avvio è una cosa semplicissima, infatti ero quasi tentato di non spiegarlo nemmeno. Comunque alla fine ho deciso di mettere un piccolo esempio su come ho fatto con un plugin, e dove ho modificato lo script mostrato prima durante l'installazione di VDR.

VDRCMD="$VDRPRG -w 60 -c /etc/vdr \
    -P'skinenigmang' \
"

Mi raccomando i backslash ('\') alla fine delle righe, servono a continuare la riga andando a capo. Questa riga con i backslash al sistema appare come se fosse scritta in questo modo:

VDRCMD="$VDRPRG -w 60 -c /etc/vdr -P'skinenigmang'"

dopo la modifica per testare senza riavviare il sistema basta questo comando che riavvia VDR e basta:

#> /etc/rc.d/vdr restart

Plugin SkinEnigmaNG

L'interfaccia di VDR come appare in versione naturale è molto povera di particolari, degna del peggiore videoregistratore cinese esistente sul mercato. Fortunatamente ci sono diversi modi per modificarlo esteticamente, ed uno di questi è l'uso di questo plugin che io ritengo il più bello.

Dipendenze

Per prima cosa installiamo le dipendenze

pacman -S imagemagick

Installazione

Andiamo a scaricare il pacchetto dei sorgenti sul sito ufficiale mettendoli in '/vdr/current/PLUGINS/src/' e poi scompattiamo.

#> cd /vdr/current/PLUGINS/src/
#> wget -c http://andreas.vdr-developer.org/enigmang/download/vdr-skinenigmang-0.0.4.tgz
#> tar -zxvf vdr-skinenigmang-0.0.4.tgz

Adesso dobbiamo renderlo visibile a VDR per la compilazione. Per default VDR ignora le directory dei plugins che contengono la versione, percui dobbiamo creare un link simbolico con il nome del plugins senza quest'ultima.

#> ln -s skinenigmang-0.0.4 skinenigmang

Questo plugin è in grado di interfacciarsi con altri, per cui dobbiamo dirgli quali altri usiamo e altre cose. Per fare questo entriamo nella directory del plugin e modifichiamo il file Makefile

#> cd skinenigmang
#> nano -w ./Makefile

Nelle prime 23 righe possiamo attivare e disattivare delle opzioni, togliendo il simbolo dei commenti. Io ho modificato queste come nell'esempio:

HAVE_IMAGEMAGICK = 1
#SKINENIGMA_USE_PLUGIN_MAILBOX = 1

Difatti come dipendenza abbiamo installato ImageMagick e non uso il plugin Mailbox.

A questo punto possiamo provare a compilare

#> cd /vdr/current
#> make plugins

Configurazione

Adesso copiamo i vari temi disponibili per questo plugin nella directory delle configurazioni

#> cp /vdr/current/PLUGINS/src/skinenigmang/themes/* /etc/vdr/themes/

Volendo, nelle info possiamo visualizzare anche il logo del canale dove ci troviamo, cosa inutile ma molto carina, per cui lo facciamo. Dallo stesso sito del plugin, scarichiamo i loghi, li decomprimiamo e mettiamo nella loro dir specifica. Purtroppo non ci sono i loghi per tutti i canali, però per tanti si.

#> wget http://andreas.vdr-developer.org/enigmang/download/skinenigmang-logos-xpm-hi-20070214.tgz -P /tmp

#> mkdir /etc/vdr/plugins
#> tar -zxvf /tmp/skinenigmang-logos-xpm-hi-20070214.tgz -C /etc/vdr/plugins
#> rm /tmp/skinenigmang-logos-xpm-hi-20070214.tgz

Fatto questo potete aggiungere il plugin allo script di avvio seguendo l'esempio che ho messo all'inizio del capitolo.

OSD

Per selezionare il tema seguite questi semplici passi:

  • Entrate in Menu/Opzioni/OSD
  • In 'Stile Interfaccia' selezionate 'EnigmaNG'
  • I 'Tema Colori' selezionate quello che volete
  • Impostate queste opzioni:
    • Sinistra = 85
    • In alto = 40
    • Larghezza OSD = 600
    • Altezza OSD = 450
  • Premete il tasto 'Ok' sul telecomando per confermare
  • Uscite dai menu

Info

Se siete interessati, altri loghi potete trovarli a questo link.

A questo punto dovrebbe essere tutto funzionante, provate a cambiare canale, aprire i menu, ecc, adesso VDR è un altra cosa e degno del suo nome.

Plugin MP3/Mplayer

Questo plugin è uno di quelli più diffusi, visto che ci permette di vedere filmati, ascoltare mp3 e flussi audio.

Dipendenze

Per iniziare installiamo le dipendenze che troviamo nei repository

#> pacman -Sy libxxf86dga libxv libmad libungif cdparanoia libdv codecs sdl lame libtheora
#> pacman -S ttf-bitstream-vera xvidcore libgl smbclient aalib dbus-glib jack-audio-connection-kit
#> pacman -S libid3tag libvorbis libsndfile divx4linux ffmpeg eject

Per una quastione di stabilità, oltre ad un funzionamento corretto, nella VDRBox non possiamo usare le ultime versioni di mplayer, ma ci dobbiamo appoggiare a delle vecchie e patchate per lo scopo. Adesso, scarichiamo questo PKG e procediamo in questo modo

#> wget -c ftp://spaghettilinux.org/spaghettilinux/projects/vdr/mplayer-1.0pre7try2-1.pkg.tar.gz -P /tmp
#> pacman -A /tmp/mplayer-1.0pre7try2-1.pkg.tar.gz

Installazione

Andiamo sul sito ufficiale e scarichiamo il plugin controllando di prendere l' ultima versione, la scompattiamo e creiamo il link simbolico per abilitarlo alla compilazione.

#> cd /vdr/current/PLUGINS/src/
#> wget -c http://www.muempf.de/down/vdr-mp3-0.9.15.tar.gz -P /vdr/current/PLUGINS/src/
#> tar -zxvf vdr-mp3-0.9.15.tar.gz

#> ln -s mp3-0.9.15 mp3

Editate il file Makefile nei sorgenti del plugin, dobbiamo impostare dei parametri di compilazione. Fino alla riga 38 possiamo definire delle opzioni, tipo se usare o no delle librerie, se disabilitare la compilazione del lettore video o di quello audio, ecc. Un esempio di queste opzioni è questo:

#WITHOUT_MP3=1
#WITHOUT_MPLAYER=1
#WITHOUT_LIBSNDFILE=1
#WITHOUT_LIBVORBISFILE=1
#WITH_OSS_OUTPUT=1
#DBG=1

Adesso proviamo a compilare

#> cd /vdr/current
#> make plugins

Configurazione

Adesso vediamo di configurare il plugin cercando di spremerlo al massimo.

Per prima cosa dobbiamo creare una directory dove poi metteremo i filmati, mp3, ecc, chiamata '/video/multimedia' e delle directory interne per separare i vari generi (un po di ordine non fa mai male), ottenendo uno schema tipo questo:

|- /video |
          |- /video/multimedia
          |- /video/multimedia/musica
          |- /video/multimedia/video
          |- /video/multimedia/radio

usando questi comandi

#> mkdir -p /video/multimedia/{musica,video,radio}

Adesso creiamo nella directory '/etc/vdr/plugins' il file 'mp3sources.conf' e ci scriviamo

/video/multimedia/musica;Musica VDRBox;0;*.mp3/*.ogg/*.wav/*.mp3/*.ogg/*.wav/*.m3u/*.m3u/*.pls/*.pls
/video/multimedia/radio;Radio Online;0;*.net
/mnt/dvd;Lettore DVD;1;*.mp3/*.ogg/*.wav/*.mp3/*.ogg/*.wav/*.m3u/*.m3u/*.pls/*.pls

che serve per dire al plugin dove trovare i files audio.

Per i files video facciamo la stessa cosa, ma chiamando il file 'mplayersources.conf'

/video/multimedia/video;Video VDRBox;0
/mnt/dvd;Lettore DVD;1

A questo punto ci serve uno script che troviamo a questo indirizzo per vedere i files video con la nostra scheda DVB, percui lo scarichiamo, decompattiamo ed installiamo in '/usr/bin/'

#> wget http://batleth.sapienti-sat.org/projects/VDR/versions/mplayer.sh-0.8.7.tar.gz -P /tmp
#> tar -zxvf /tmp/mplayer.sh-0.8.7.tar.gz -C /usr/bin

e modificate il file '/usr/bin/mplayer.sh.conf' in questo modo:

MPLAYER="/usr/bin/mplayer"
#NTSC="true"
DVDLANG="it"
DVD="/dev/dvd"
#LIRCRC="/video/.lircrc"

Controllate anche TV_ASPECT se avete una televisione 16/9.

Infine copiamo lo script 'mount.sh' in '/usr/bin' che ci serve per montare in automatico il dvd, le chiavette, ecc.

#> cp /vdr/current/PLUGINS/src/mp3/examples/mount.sh.example /usr/bin/mount.sh
#> chmod +x /usr/bin/mount.sh

Per ascoltare stream di radio via internet, basta che create un file in '/video/multimedia/radio'chiamato per esempio 'Radio_WebStereo.net' con dentro una sola riga con l' URL esatta, come nell'esempio sotto:

http://high.radiowebstereo.org:7030/

Fatto questo potete aggiungere il plugin allo script di avvio seguendo l'esempio che ho messo all'inizio del capitolo. In questo caso i plugins da mettere sono due se non ne avete deselezionati nelle opzioni di compilazione, 'mp3' e 'mplayer'.

OSD

Prima di provare il plugin entrate nel menu 'Menu/Opzioni/Plugins/mplayer' e impostate l'opzione 'Control Mode' a 'Slave'.

Info

Quando si aggiornano i repository, il sistema ci avvisa e chiede di installare una versione più recente di mplayer, e questo compromette il funzionamento della VDRBox. Per evitare questo, dobbiamo fargli ignorare la presenza di aggiornamenti per questo pacchetto, aggiungendo se non lo avete già fatto, questa riga al file '/etc/pacman.conf'

IgnorePkg   = mplayer

Plugin LoadEPG

Questo è un ottimo plugin tutto italiano che ci permette di scaricare la guida elettronica dei programmi (EPG) direttamente dal satellite per i successivi 7 giorni. Molto utile per impostare le registrazioni al volo, senza dovere inserire ogni volta l'orario, ma selezionando solo il programma.

Installazione

Scarichiamo il plugin dal sito ufficiale, lo decomprimiamo e creiamo un link simbolico per fare in modo che VDR lo compili

#> cd /vdr/current/PLUGINS/src/
#> wget http://kikko77.altervista.org/sections/Download/[11]_loadepg/vdr-loadepg-0.1.11.tgz

#> tar -zxvf vdr-loadepg-0.1.11.tgz
#> ln -s loadepg-0.1.11 loadepg

adesso compiliamo

#> cd /vdr/current
#> make plugins

Configurazione

Copiamo i files di configurazione nella directory delle configurazioni

#> cp /vdr/current/PLUGINS/src/loadepg/loadepg.conf /etc/vdr/plugins/
#> cp /vdr/current/PLUGINS/src/loadepg/loadepg.equiv /etc/vdr/plugins/

A questo punto non ci rimane che aggiungere il plugin allo script di avvio e riavviare VDR.

Download da file esterno (tipo 1)

Dalla versione 0.1.10, è supportato pure il download da un file esterno e noi useremo questa possibilità per avere quello per TSI1 e TSI2, le reti della svizzera italiana

Scarichiamo un programma che ci servirà per scaricare da internet l' epg di questi canali e convertirlo nel formato per VDR. Lo potete trovare a questo URL e lo salviamo in '/etc/vdr/scripts'.

Lo scompattiamo

#> tar -jxvf getepgtsi.tar.bz2

Modifichiamo '/etc/vdr/plugins/loadepg.conf' aggiungendo alla fine del file questa riga

SCRIPT=Televisione Svizzera:/etc/vdr/scripts/getepgtsi.pl:/tmp/tsi.data

Se avete fatto, riavviate VDR e dovreste avere questa opzione nel menu di loadepg.

Download da file esterno (tipo 2)

Questo secondo sistema è un po più complesso, ma allo stesso tempo più testato dalla comunità.

Per prima cosa installiamo le dipendenze richieste dallo script in perl

#> pacman -Sy perl-www-mechanize perl-timedate

Adesso scarichiamo lo script

#> cd /etc/vdr/scripts

#> cvs -d:pserver:anonymous@epgdownloader.cvs.sourceforge.net:/cvsroot/epgdownloader login
#> cvs -z3 -d:pserver:anonymous@epgdownloader.cvs.sourceforge.net:/cvsroot/epgdownloader co -P epgdownloader

Adesso scarichiamo la patch 'epgdownloader-tsi' da Risorse per VDR, la scompattiamo dentro alla directory dello script e la applichiamo

#> tar -jxvf epgdownloader-tsi.tar.bz2 -C /etc/vdr/scripts/epgdownloader/

#> cd /stc/vdr/scripts/epgdownloader
#> patch -p1 < epgdownloader-tsi.diff

Fatto questo, non ci rimane altro che dire al plugin quale programma avviare e dove viene salvato l' epg, aggiungendo questa linea al file /etc/vdr/plugins/loadepg.conf

SCRIPT=Televisione Svizzera Italiana:/etc/vdr/scripts/epgdownloader/run.sh:/tmp/epg.data

Riavviate VDR e dovreste avere questa opzione nel menu di loadepg.

Plugin Music

Questo plugin è un evoluzione di mp3/mplayer, che ci permette di riprodurre files audio. Vi chiedete perchè lo metto, se vi ho già fatto installare un altro plugin che fa questo? Perchè questo è molto più usabile e gradevole esteticamente, percui, modificate le opzioni di compilazione di mp3/mplayer, disabilitate il plugin mp3 decommentando questa riga nel 'Makefile' del plugin mp3/mplayer

WITHOUT_MP3=1

Levate la riga che carica il plugin 'mp3' da 'runvdr' e ricompilatelo. Poi procedete con questa sezione.

Dipendenze

Installiamo le dipendenze, che sono come quelle di mp3/mplayer alla fine, visto che questo plugin deriva da esso

#> pacman -Sy libxxf86dga libxv libmad libungif cdparanoia libdv codecs sdl lame libtheora
#> pacman -S ttf-bitstream-vera xvidcore libgl smbclient aalib dbus-glib jack-audio-connection-kit
#> pacman -S libid3tag libvorbis libsndfile divx4linux ffmpeg

ed in più anche questa

#> pacman -S fftw

Installazione

Scarichiamo il plugin dal sito ufficiale, lo decomprimiamo e creiamo il link simbolico per permettere la compilazione.

#> cd /vdr/current/PLUGINS/src/
#> wget -c http://www.glaserei-franz.de/VDR/Moronimo2/downloads/vdr-music-0.1.0_wip.tar.gz
#> tar -zxvf vdr-music-0.1.0_wip.tar.gz

#> ln -s music-0.1.0_wip music

adesso compiliamo

#> cd /vdr/current
#> make plugins

Configurazione

Copiamo i files di configurazione nella directory '/etc/vdr/plugins/'

#> cp -r /vdr/current/PLUGINS/src/music/music /etc/vdr/plugins/

Infine dobbiamo dire al plugin dove trova i files audio, creando il file 'musicsources.conf' in '/etc/vdr/plugins/music/' e copiandoci questo:

/video/multimedia/musica;Musica VDRBox;0;*.mp3/*.ogg/*.wav/*.mp3/*.ogg/*.wav/*.m3u/*.m3u/*.pls/*.pls
/video/multimedia/radio;Radio Online;0;*.net
/mnt/dvd;Lettore DVD;1;*.mp3/*.ogg/*.wav/*.mp3/*.ogg/*.wav/*.m3u/*.m3u/*.pls/*.pls

Non ci rimane altro che aggiungere il plugins alla lista nel file di avvio 'runvdr'.

Info

Confermo che funzionano pure le radio online.

Questo plugin l'ho testato troppo poco per dire che è stabile e funzionate, oltre a non conoscere tutte le funzionalità offerte. La versione 0.1.0_wip non compila con vdr-1.5.2 ,compilato invece con la versione 0.2.0

Plugin VDRRip

Questo plugin ci permette di convertire le registrazioni di VDR in divx o xvid, risparmiando molto spazio sui supporti.

Dipendenze

Installiamo queste dipendenze per mplayer

#> pacman -Sy libxxf86dga libxv libmad libungif cdparanoia libdv
#> pacman -S  codecs sdl lame libtheora jack-audio-connection-kit
#> pacman -S ttf-bitstream-vera xvidcore libgl smbclient aalib dbus-glib 
#> pacman -S libid3tag libvorbis libsndfile divx4linux ffmpeg

#> pacman -S libogg ogmtools libmatroska libebml mkvtoolnix 

Per una questione di stabilità, oltre ad un funzionamento corretto, nella VDRBox non possiamo usare le ultime versioni di mplayer, ma ci dobbiamo appoggiare a delle vecchie e patchate per lo scopo. Adesso, scarichiamo questo PKG e procediamo in questo modo

#> wget -c ftp://spaghettilinux.org/spaghettilinux/projects/vdr/mplayer-1.0pre7try2-1.pkg.tar.gz -P /tmp
#> pacman -A /tmp/mplayer-1.0pre7try2-1.pkg.tar.gz

Fatto questo con le dipendenze dovremmo essere a posto.

Installazione

Andiamo nel sito ufficiale (http://www.a-land.de/) e scarichiamo i sorgenti. Prendiamo pure la patch disponibile (http://www.a-land.de/vdrrip-0.3.0-1.3.7.diff) che poi applicheremo ai sorgenti. Scompattiamo nella directory dei plugins e creiamo il solito link simbolico

#> cd /vdr/current/PLUGINS/src/
#> wget -c http://www.a-land.de/vdr-vdrrip-0.3.0.tgz

#> tar -zxvf vdr-vdrrip-0.3.0.tgz
#> ln -s vdrrip-0.3.0 vdrrip

Scarichiamo e applichiamo la patch

#> cd /vdr/current/PLUGINS/src/vdrrip
#> wget -c ftp://spaghettilinux.org/spaghettilinux/projects/vdr/vdrrip.diff
#> patch -p1 < vdrrip.diff

Fatto questo compiliamo direttamente nella directory del plugin

#> make all

Configurazione

Dobbiamo copiare gli scripts contenuti nella directory './scripts' in '/usr/bin' dove poi il plugin li andrà a cercare.

cp ./scripts/* /usr/bin/

Adesso aggiungiamo il plugin al file 'runvdr' in questo modo

VDRCMD="$VDRPRG -w 60 -c /etc/vdr \
  -P'vdrrip --MPlayer=/usr/bin/mplayer --MEncoder=/usr/bin/mencoder' \
“

E poi riavviamo VDR

#> /etc/rc.d/vdr restart

queuehandler.sh

Il plugin fa solo da interfaccia, poi passa i parametri ad uno script chiamato 'queuehandler.sh' che si occupa della conversione. Ma tenere lo script sempre avviato è un inutile spreco di risorse, percui vediamo come avviarlo solo quando serve.

Per prima cosa aprite il file /usr/bin/queuehandler.sh.conf e modificate le opzioni come nell' esempio:

mencoder="/usr/bin/mencoder"
mplayer="/usr/bin/mplayer"

installiamo una dipendenza che ci serve per avviare lo script in modo distaccato da VDR

#> pacman -S at

e mettiamo il demone 'atd' in 'rc.conf' per farlo avviare in automatico

DAEMONS=(lirc vdr atd)

Adesso veniamo agli script che ci serviranno allo scopo.

per prima cosa creiamo il file '/etc/vdr/commands.conf' e mettiamo all' interno il comando da eseguire. In questo script possiamo mettere tutti i comando che desideriamo avviare in seguito tramite VDR, entrando in un menu particolare.

#> echo "VDRRRIP - Avvia/Ferma 'queuehandler.sh': /etc/vdr/scripts/commands/vdrrip-01.sh" > /etc/vdr/commands.conf

Adesso dobbiamo creare lo script '/etc/vdr/scripts/commands/vdrrip-01.sh' che lanceremo con questa riga

#!/bin/sh

# **********************************************************
# *  Passa lo script a ATD
# **********************************************************
# *  L' autore declina ogni responsabilita' per eventuali
# *  danni provocati dallo script o da altro che lo riguardi
# **********************************************************

# VARIABILI DA IMPOSTARE
# ---------------------------

VDRRIP_QUEUEHANDLER="/usr/bin/queuehandler.sh"
SCRIPT_VDRRIP_02="/etc/vdr/scripts/commands/vdrrip-02"

# INIZIO SCRIPT
# ---------------------------

# Controlla se esiste già  una sessione del programma
if [ `ps aux | grep  ${VDRRIP_QUEUEHANDLER} | grep -v grep | wc -l` -gt "0" ] ; then
  echo "Termino il programma '${VDRRIP_QUEUEHANDLER}'..."
  killall -9 queuehandler.sh

  # Attende fino a quando il programma non sarà completamente chiuso
  while [ `ps aux | grep ${VDRRIP_QUEUEHANDLER} | grep -v grep | wc -l` -gt "0" ]
  do
    sleep 1
  done

  echo
  echo "Il programma è stato chiuso."
else
  # Chiama lo script con AT per avviare queuehandler.sh
  /usr/bin/at now -f "${SCRIPT_VDRRIP_02}"
fi

Adesso manca l' ultimo script, '/etc/vdr/scripts/commands/vdrrip-02', richiamato dallo script precedente, che contiene lo script da fare eseguire al demone ATD. Essendo una sola riga, possiamo scriverlo anche in questo modo

#> echo "/bin/sh /etc/vdr/scripts/commands/vdrrip-03.sh" >> /etc/vdr/scripts/commands/vdrrip-02

Infine per concludere la serie di script, creiamo finalmente quello che avvia 'queuehandler.sh', e lo chiamiamo '/etc/vdr/scripts/commands/vdrrip-03.sh'.

#!/bin/sh

# ******************************************************
# * Avvia lo script 'queuehandler.sh'
# **********************************************************
# *  L' autore declina ogni responsabilita' per eventuali
# *  danni provocati dallo script o da altro che lo riguardi
# **********************************************************

# VARIABILI DA IMPOSTARE
# ---------------------------

VDRRIP_DIR="/video/multimedia/video/vdrrip"
VDRRIP_QUEUE="/etc/vdr/plugins/queue.vdrrip"
VDRRIP_QUEUEHANDLER="/usr/bin/queuehandler.sh"


# INIZIO SCRIPT
# ---------------------------

# controlla se esiste la directory di vdrrip
if test ! -d "$VDRRIP_DIR"
then
    # Non esiste, la crea
    echo "Creazione della directory '$VDRRIP_DIR'"
    mkdir "$VDRRIP_DIR"
fi

eval $VDRRIP_QUEUEHANDLER $VDRRIP_QUEUE $VDRRIP_DIR

Con gli script abbiamo terminato.

OSD

Adesso non ci rimane che andare ad avviare questo script.

Avviate VDR, entrate nel menu Menu/Commands e li trovate lo script da avviare. Funziona come un interrutore, una volta si avvia ed una volta si ferma. La conversione viene salvata nella directory '/video/multimedia/video/vdrrip'.

Plugin ReelChannelScan

Questo plugin è derivato da ChannelScan, il plugin fatto dal'italiano Kikko77. Serve a fare la scansione dei transponders per trovare nuovi canali ed avevre un chanels.conf sempre aggiornato.

Installazione

Scarichiamo l'ultima versione del plugin, decomprimiamo e creiamo il solito link simbolico

#> cd /vdr/current/PLUGINS/src/
#> wget http://www.reelbox.org/software/source/vdr-plugins/vdr-reelchannelscan-0.4.1.tgz

#> tar -zxvf vdr-reelchannelscan-0.4.1.tgz
#> ln -s reelchannelscan-0.4.1 reelchannelscan

Dobbiamo applicare una patch a VDR, la copiamo nella sua directory, applichiamo e lo ricompiliamo

#> cd /vdr/current
#> cp ./PLUGINS/src/reelchannelscan/patches/vdr-1.4.3-4channelscan.diff .

#> patch -p1 < vdr-1.4.3-4channelscan.diff

#> make clean && make

adesso compiliamo pure i plugins, compreso reelchannelscan

#> make clean-plugins && make plugins

Configurazione

Copia la lista dei transponders nella directory delle configurazioni

#> cp -r transponders /etc/vdr/plugins/

Adesso possiamo aggiungerlo allo script di avvio e riavviare VDR.

Info

Se volete aggiungere la possibilità di usare diverse liste canali (channels.conf), potete utilizzare la patch 'vdr--k.diff' sempre contenuta nel plugin che aggiunge l'opzione '-k' a VDR.

#> cd /vdr/current
#> cp ./PLUGINS/src/reelchannelscan/patches/vdr--k.diff .

#> patch -p1 < vdr--k.diff

#> make clean && make
#> make clean-plugins && make plugins

Plugin DVD

Questo plugin ci permette di vedere i DVD video utilizzando la VDRBox.

Dipendenze

Installiamo le dipendenze

#> pacman -S a52dec libdvdcss libdvdnav libdvdread cvs

Installazione

Per installare questo plugin il procedimento è un po diverso dal solito, dobbiamo scaricare la versione CVS, in poche parole quella in sviluppo, anche se purtroppo non viene più toccata dal 2005. Scarichiamo i sorgenti e alla richiesta della password, premete <INVIO>.

#> cd /vdr/current/PLUGINS/src

#> cvs -d:pserver:anonymous@dvdplugin.cvs.sourceforge.net:/cvsroot/dvdplugin login
#> cvs -z3 -d:pserver:anonymous@dvdplugin.cvs.sourceforge.net:/cvsroot/dvdplugin co -P dvd

Editate il file 'Makefile' del plugin e sostituite questa riga

INCLUDES += -I$(VDRDIR)/include -I$(NAVDIR)

con questa

INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include $(shell dvdnav-config --cflags)

e lo compiliamo al volo

#> cd /vdr/current/PLUGINS/src/dvd
#> make clean && make all

Configurazione

Aggiungete il plugin allo script di avvio in questo modo

-P'dvd' \

OSD

Se non avete un impianto Dolby, dovete disabilitare il supporto in VDR, altrimenti non funziona l'audio dei DVD. Per fare questo entrate nel menu 'Menu/Opzioni/Scheda DVB' e mettete 'no' in 'Dolby Digital'.

Plugin Image

Dipendenze

Partiamo con l' installazione delle dipendenze

#> pacman -S libexif ffmpeg netpbm

Installazione

Il sito ufficiale di questo plugin lo trovate a questo indirizzo: VDR-Image

Scarichiamo l' ultima versione del programma, nel mio caso la 0.2.7, decomprimiamo e creiamo il link simbolico come sempre

#> cd /vdr/current/PLUGINS/src/

#> wget http://download.berlios.de/vdr-image/vdr-image-0.2.7.tar.gz
#> tar -zxvf vdr-image-0.2.7.tar.gz

#> ln -s image-0.2.7 image

#> cd /vdr/current/
#> make plugins

Configurazione

Copiamo i files di configurazione nella directory '/etc/vdr/plugins/'

#> cp -r /vdr/current/PLUGINS/src/image/examples/*.conf /etc/vdr/plugins/

E modifichiamo il file '/etc/vdr/plugins/imagesources' adattandolo alle nostre directory

/mnt/DVD;CDROM;1;*.jpg *.jpeg *.png *.tif* *.bmp
/video/multimedia/foto;VDRBox;0;*.pnm *.jpg *.jpeg *.png *.tif* *.bmp

Creiamo la directory dove metteremo le nostre foto

# mkdir /video/multimedia/foto

Per terminare, copiamo i files contenuti nel plugin nella directory '/usr/bin'

#> cp /vdr/current/PLUGINS/src//image/scripts/*.sh /usr/bin/

Adesso non ci rimane altro che aggiungere il plugin alla lista nel file di avvio 'runvdr'.

Plugin Text2skin

Dipendenze

Partiamo con l' installazione delle dipendenze

#> pacman -S imagemagick

Installazione

Scarichiamo l' ultima versione del programma, decomprimiamo e creiamo il link simbolico come sempre

#> ln -s text2skin-1.1-cvs_ext-0.10 text2skin

#> cd /vdr/current/
#> make plugins

Configurazione

Gli skin andremo a metterli nella directory '/etc/vdr/plugins/text2skin'. Adesso non ci rimane altro che aggiungere il plugin alla lista nel file di avvio 'runvdr'.



Manuale scritto da Gianni Zacchia, 2007

Strumenti personali