Digitale terrestre e chipset lite-on per linux


Una semplice soluzione per sistemare una rogna!
Qualora foste possessori di una delle penne USB per il digitale terrestre (altrimenti dette DVB-T tuner) che montano il chipset lite-on [1] e voleste utilizzarla su qualsiasi distribuzione linux vi conviene dare un'occhiata a quanto segue :)

Premesso che abbiate installato tutto il software necessario [2], aprite una console e date il comando:
tail -f /var/log/messages

Collegate la vostra penna usb. Dovrebbe comparirvi una cosa simile:
usb 1-3: new high speed USB device using ehci_hcd and address 2
usb 1-3: configuration #1 chosen from 1 choice
dvb-usb: found a 'LITE-ON USB2.0 DVB-T Tuner' in cold state, will try to load a firmware
dvb-usb: downloading firmware from file 'dvb-usb-dibusb-6.0.0.8.fw'
usb 1-3: USB disconnect, address 2
dvb-usb: generic DVB-USB module successfully deinitialized and disconnected.
usb 1-3: new high speed USB device using ehci_hcd and address 3
usb 1-3: configuration #1 chosen from 1 choice
dvb-usb: found a 'LITE-ON USB2.0 DVB-T Tuner' in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (LITE-ON USB2.0 DVB-T Tuner)
dvb-usb: no frontend was attached by 'LITE-ON USB2.0 DVB-T Tuner'
input: IR-receiver inside an USB DVB receiver as /class/input/input11
dvb-usb: schedule remote query interval to 150 msecs.
dvb-usb: LITE-ON USB2.0 DVB-T Tuner successfully initialized and connected.

Nonostante l'ultima riga ci dica che il gingillo e' "LITE-ON USB2.0 DVB-T Tuner successfully initialized and connected", dalla lettura della quart'ultima riga si capisce che qualcosa non va: "no frontend was attached by 'LITE-ON USB2.0 DVB-T Tuner'"!

NESSUN PROBLEMA!
Copiate questi comandi in un file ti testo, dandogli il nome dvb-reload [3]
#!/bin/bash
echo "Reload modules for DVB frontend ..."
if [ `id -u` != 0 ]; then
echo "Warning: $0 must be run under root account."
echo "Hint: use \"sudo $0\""
exit 1
fi
LOGGER='/usr/bin/logger'
if [ -x $LOGGER ]; then
$LOGGER "reload dvb_usb_dibusb_mc for dvb re-init"
fi
MODUL='dvb_usb_dibusb_mc'
rmmod -v $MODUL
modprobe -v $MODUL
ls -lR /dev/dvb
echo "Done."
exit 0
#eof

Lo script e' ben curato, ma, volendolo riassumere, i comandi magici sono questi:
MODUL='dvb_usb_dibusb_mc'
rmmod -v $MODUL
modprobe -v $MODUL

In parole povere il modulo del kernel per la gestione dell'apparecchio viene rimosso e ricaricato.

Eseguite lo script come root e leggerete nell'output di tail -f /var/log/messages una cosa del genere.
reload dvb_usb_dibusb_mc for dvb re-init
usbcore: deregistering interface driver dvb_usb_dibusb_mc
dvb-usb: LITE-ON USB2.0 DVB-T Tuner successfully deinitialized and disconnected.
dvb-usb: found a 'LITE-ON USB2.0 DVB-T Tuner' in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (LITE-ON USB2.0 DVB-T Tuner)
DVB: registering frontend 0 (DiBcom 3000MC/P)...
MT2060: successfully identified (IF1 = 1183)
input: IR-receiver inside an USB DVB receiver as /class/input/input13
schedule remote query interval to 150 msecs.
dvb-usb: LITE-ON USB2.0 DVB-T Tuner successfully initialized and connected.
usbcore: registered new interface driver dvb_usb_dibusb_mc


Come vedete questa volta il frontend e' stato registrato ("DVB: registering frontend 0 (DiBcom 3000MC/P)", sest'ultima riga)

DUE PAROLE
1 - Ho provato questa soluzione con un DVB tuner Toshiba
2 - Come interfaccia grafica per il DVB kaffeine va piu' che bene
3 - Quanto fa schifo l'interfaccia grafica che forniscono per windows? E' un'annetto che non controllo eventuali aggiornamenti, ma Savvy-TV mi sembrava veramente pessima!
4 - Se proprio dovete usare windows so che esiste un'interfaccia grafica diversa che funziona con questo tipo di penne. Non ricordo il nome. Google si'.
5 - Un metodo alternativo che ho usato per un anno e' stato quello di staccare e riattaccare il tuner ripetutamente fino a quando non veniva correttamente inizializzato... una rottura!


[1] e forse anche qualche altro chipset! Ho letto da qualche parte che la procedura per la Pinnacle non dovrebbe differire molto.

[2] Questa e' l'output del comando "rpm -qa|grep dvb", che mi elenca i pacchetti rpm che nel nome contengono la stringa dvb installati sulla mia mandriva: probabilmente basta anche meno!
dvb-firmware-usb-20061120-1plf2007.1
dvb-firmware-frontends-20061120-1plf2007.1
libdvbpsi4-0.1.5-3mdv2008.0
dvbtune-0.5-7mdv2008.1
dvb-apps-1.1.1-5mdv2008.1
libdvbpsi5-0.1.6-1mdv2008.1
dvbsnoop-1.4.00-3mdv2008.1


[3] ho trovato questi comandi in una mailing list in tedesco e data la mia nulla conoscenza della lingua non sono riuscito a risalire all'autore dello script, a cui comunque vanno tutti i nostri ringraziamenti.
Il link al post incriminato e' questo: http://www.ureader.de/msg/125921864.aspx

3 commenti:

Anonimo ha detto...

Grandeeee!
Ho la stessa penna usb della Toshiba!!!
Sei stato davvero utilissimo!
Grazie Mille!

Diego ha detto...

Per la cronaca il bug è stato risolto a partire dal kernel 2.6.29:
http://www.linuxtv.org/pipermail/linux-dvb/2009-January/031378.html

Anonimo ha detto...

Grazie mille!!
Finalmente riesco ad evitare 15 riavvi per registrare "SOS TATA" ;-)

x Diego:
Non so se (il bug) sia stato risolto nel kernel 2.6.29; di sicuro è presente nel kernel "2.6.31-14-generic" in kubuntu 9.10.

Grazie, ciao,
Davide S.