Installare e configurare una scheda decoder MPG DXR3/H+ su Ubuntu

Da VDR-Italia.

Ubuntu - Installare e configurare una scheda decoder MPG2 DXR3/H+modifica

La scheda decoder MPEG2 Creative (TM) DXR3 prodotta anche dalla RealMagic (TM) col nome Hollywood + può essere usata in accoppiata a VDR grazie ad un apposito plugin ( vdr-dxr3 ) per sopperire alla mancanza di decoder hardware delle schede DVB budget (SkyStar2, Nova, ecc ...), in questo modo oltre a riusare una scheda "obsoleta" (la DXR3/H+ non è più prodotta da diversi anni anche se se ne trovano ancora in giro di usate) è possibile sfruttare anche un PC poco performante come VDRBOX con scheda budget, il gravoso lavoro di decodifica del flusso DVB (MPEG2) viene infatti svolto in hardware dalla scheda DXR3/H+ anziché via software dalla CPU principale.

C'è da ricordarsi che tra i primi passi verso la sostenibilità c'è il riuso, uno dei punti forti di Linux è spesso rappresentato dalla possibilità di essere configurabile per hardware datato, evitando che quest'ultimo finisca prima del tempo in discarica.

Ma ora chiudiamo la parentesi filosofica per dedicarci alla configurazione della scheda prendendo come esempio la distribuzione Ubuntu 7.04 Feisty.

Indice

Che scheda ho?

Una delle informazioni che dobbiamo sapere per configurare la scheda è il tipo di decoder MPEG2 che monta, infatti ne esistono di 2 tipi:

  • La Creative (TM) DXR3 monta il bt865
  • La RealMagic (TM) H+ monta il adv717x

per scoprire qual'è l'esatto tipo è possibile usare il comando lspci:

$> lspci | grep Multimedia

nel mio caso il comando restituisce questo output:

300:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] AC'97 Sound Controller (rev a0)
00:0a.0 Multimedia controller: Sigma Designs, Inc. REALmagic Hollywood Plus DVD Decoder (rev 02)
00:0b.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
00:0b.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)

da questo scopro che ho una serie di dispositivi multimediali sul bus PCI:

  1. una scheda audio
  2. la scheda MPEG2/DVD decoder, si capisce bene che si tratta di una REALmagic Hollywood Plus, quindi dotata di adv717x
  3. la parte video di una scheda di acquisizione analogica / TV analogica
  4. la parte audio di una scheda di acquisizione analogica / TV analogica

I sorgenti dei moduli per Ubuntu...

Purtroppo i sorgenti dei moduli per i dispositivi basati sul chip em8300 (sia la DXR3 che la H+) sono distribuiti per Ubuntu nella versione 0.16.0-1, che hanno dei problemi di compatibilità col kernel 2.6.20, tali problemi vengono risolti dalla versione dei moduli 0.16.1 (come si può vedere dal sito ufficiale, http://dxr3.sourceforge.net/ ).

Scaricando e tentando di compilare i sorgenti distribuiti con Ubuntu module-assistant fallisce, si può fare la scelta di non installare un kernel vecchio ma piuttosto di utilizzare i moduli per la DXR3/H+ più recenti, compilandoli ed installandoli autonomamente.

Prima di procedere...

Prima di procedere con la compilazione è bene procurarsi i moduli del kernel ed il necessario per la compilazione:

si scaricano gli headers del kernel in uso:

$> sudo apt-get install linux-headers-`uname -r`

si fa un link /usr/src/linux che punta agli headers corrispondenti al kernel corrente:

$> cd /usr/src
$> sudo ln -s linux-headers-`uname -r` linux

si installa build-essential:

$> sudo apt-get install build-essential

se per caso si sono installati i pacchetti Ubuntu per em8300 è bene eliminarli:

$> sudo dpkg --purge em8300 em8300-bin em8300-headers em8300-source

Scaricamento e compilazione dei sorgenti

Si possono prelevare i sorgenti direttamente da SourceForge, il download è disponibile dalla pagina http://sourceforge.net/project/showfiles.php?group_id=5165. Gli esempi seguenti saranno fatti prendendo come riferimento la release em8300-0.16.3 ed il kernel 2.6.20-15:

Dopo aver copiato il file scaricato em8300-0.16.3.tar.gz in /usr/src si decomprime l'archivio:

$> cd /usr/src
$> sudo tar zxvf em8300-0.16.3.tar.gz

si entra nella directory creata dall'archivio:

$> cd em8300-0.16.3/

si lancia il configure:

$> sudo ./configure 

se dal configure appaiono dei warnings inerenti gtk è probabile che sul vostro sistema non siano installate le librerie di sviluppo per gtk (vengono utilizzate da alcuni programmi di setup grafico), è possibile ovviare a questo inconveniente installando le librerie:

$>  sudo apt-get install libgtk-dev libgtk2.0-dev

rilanciando configure i warnings dovrebbero sparire. I warnings si possono ignorare ma senza le librerie gtk non è possibile compilare alcuni tools grafici per il setup della DXR3/H+ e per la calibrazione dell'uscita in loopback per visualizzare l'output della scheda su monitor VGA.

Si compilano ed installano i tools:

$> sudo make
$> sudo make install

compilazione ed installazione dei moduli:

$> cd modules/
$> sudo make
$> sudo make install
$> sudo depmod -a

Files per il funzionamento dei moduli ed i devices

udev.rules

Presupponendo di trovarci ancora nella posizione del filesystem /usr/src/em8300-0.16.3/modules copiamo il file di configurazione per udev:

$> sudo cp modules/em8300-udev.rules /etc/udev/rules.d/49-em8300.rules

il file appena copiato è indispensabile per fare si che i devices /dev/em8300x vengano creati automaticamente con l'owner root e con il gruppo video.

Il firmware em8300.bin

Il microprocessore em8300 ha bisogno di un firmware da caricare tutte le volte che viene inizializzato, è possibile scaricarlo da qui:

il file solitamente può essere copiato a piacere sul filesystem ma il posto consigliato è questo:

  • /lib/firmware/

quindi per inserirlo nel posto giusto:

$> cd /lib/firmware/
$> sudo wget http://dxr3.sourceforge.net/download/em8300.bin

modprobe.d, modutils e devfs

Passando invece alla configurazione dei moduli, creiamo alcuni files necessari per passare i giusti parametri e per fare effettuare le giuste operazioni in fase di caricamento e scaricamento dei moduli, i files coinvolti in queste fasi sono:

  • /etc/modprobe.d/em8300
  • /etc/modutils/em8300
  • /etc/devfs/conf.d/em8300

Per creare i files di configurazione è possibile usare l'editor gedit eseguito come root:

$> sudo gedit percorso/nome_del_file

il file per modprobe.d deve essere contenuto in:

  • /etc/modprobe.d/

e deve chiamarsi

  • em8300

il contenuto può essere copiato da qui:

alias char-major-121 em8300
install em8300 /sbin/modprobe adv717x && /sbin/modprobe --ignore-install em8300
remove em8300 /sbin/modprobe -r --ignore-remove em8300 && /sbin/modprobe -r adv717x
options adv717x pixelport_16bit=0 pixelport_other_pal=1  
options em8300 dicom_fix=1 dicom_control=1 dicom_other_pal=1 audio_driver=alsa

questo è un file per configurare l'uscita della mia RealMagic H+ con uscita in S-Video ed audio alsa, utilizzando lo stesso file per una Creative DXR3 e poi lanciando (più avanti in questo tutorial) dxr3config dovrebbe funzionare ugualmente.


Il file per modutils deve essere contenuto in

  • /etc/modutils/

e deve chiamarsi

  • em8300

il contenuto può essere copiato da qui:

alias /dev/em8300* em8300
alias char-major-121 em8300
below em8300 adv717x
post-install em8300 /usr/bin/em8300setup -f /lib/firmware/em8300.bin


Il file per devfs deve essere contenuto in

  • /etc/devfs/conf.d/

e deve chiamarsi

  • em8300

il contenuto può essere copiato da qui:

# device permissions for em8300 video devices.
REGISTER ^em8300*    PERMISSIONS root.video  0660

REGISTER        ^(em8300.*)-0$  CFUNCTION GLOBAL mksymlink $devname \1
UNREGISTER      ^(em8300.*)-0$  CFUNCTION GLOBAL unlink \1

Un test

Ora che abbiamo installato tutti i tools ed i moduli, proviamo a fare qualche test:

$> sudo modprobe em8300 

dovrebbero venire caricati i moduli e non dovrebbe essere restituito nessun output, il prompt della shell deve essere di nuovo in attesa se non abbiamo installato mplayer, possiamo installarlo col comando:

$> sudo apt-get install mplayer

dopodiché possiamo fare leggere ad mplayer un filmato MPEG2 o di altro tipo compatibile col lettore, impostando come output la scheda DXR3/H+ ad esempio io ho scovato sulla mia macchina questo filmato distribuito col programma per masterizzare k3b:

$> locate *.mpg
[...]
/usr/share/apps/k3b/extra/k3bphotovcd.mpg
[...]

lo guardo con mplayer:

$> mplayer -vo dxr3 /usr/share/apps/k3b/extra/k3bphotosvcd.mpg 

Se i colori appaiono ragionevoli (può capitare che in alcune configurazioni ad esempio il verde sia scambiato col blu), il setup della scheda si può dire terminato, altrimenti si ricorre al comodissimo tool dxr3config, che va a modificare il file:

  • /etc/modprobe.d/em8300

dopo avere guidato l'utente attraverso un percorso interattivo di configurazione.

dxr3config

Se state approfondendo questa sezione, è probabile che l'output video della DXR3 /H+ sia "strano" (bianco e nero, oppure con i colori tendenti al verde, ecc...), i moduli non hanno i parametri giusti.

Per configurare i parametri dei moduli con poca fatica ed in maniera assistita, è possibile utilizzare dxr3config scaricabile qui:

il programmino viene distribuito già compilato, la distribuzione è veramente spartana, per installarlo occorre scompattare il pacchetto dalla posizione /

$> sudo tar zxvf /path_pacchetto/dxr3config0-3-4.tgz -C /

Prima di lanciare il programma è necessario però risolvere una dipendenza, installando il pacchetto dialog:

$> sudo apt-get install dialog

poi si lancia l'eseguibile come root:

$> sudo dxr3config

Se vengono visualizzati messaggi che dicono che i moduli sono in uso e non è possibile rimuoverli (rmmod) probabilmente avete già eseguito a mano qualche programma che usa la scheda e si è bloccato, impedendo ai moduli di essere rimossi, per ovviare all'inconveniente dovete riavviare la macchina e ripetere l'esecuzione di dxr3config.

Attraverso le schermate ed il risultato verificabile dall'uscita video della scheda DXR3/H+, è possibile giungere ad una configurazione ottimale del sistema, che termina con il salvataggio delle modifiche nel file:

  • /etc/modprobe.d/em8300

E VDR?

Una volta verificato che la scheda DXR3/H+ funziona correttamente anche dopo aver riavviato la macchina (ripetere il test con mplayer), si può passare a compilare il modulo vdr-dxr come descritto sul Wiki di VDR-ITALIA.

Links



Manuale creato da Alez

Strumenti personali