[ Guida in continuo aggiornamento ]
In questa guida spiegherò approfonditamente come far funzionare schede TV basate su chip Philips Semiconductors Inc. Saa713x, per schede TV analogiche, digitali o ibride (analogico e digitale insieme).
Introduzione
Prima di cominciare, dobbiamo verificare se la nostra scheda TV è riconosciuta da Ubuntu, quindi digitiamo da terminale:
lspci | grep -i saa
Se il risultato sarà simile a questo:
03:03.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev d1)
La vostra scheda TV è riconosciuta correttamente da Ubuntu.
Il modulo per far funzionare i chip Saa713x si chiama saa7134 ed è già presente in Ubuntu. Il comando seguente verifica l’effettiva disponibilità del modulo:
ls /lib/modules/$(uname --kernel-release)/kernel/drivers/media/video/saa7134/saa7134.ko
Qui la lista delle schede TV che dovrebbe supportare il modulo.
Qui la lista dei tuner che dovrebbe supportare il modulo.
Potete guardare anche nel vostro PC nella cartella di documentazione del kernel, in Cartella_kernel/Documentation/video4linux/CARDLIST.saa7134 per le schede TV, e Cartella_kernel/Documentation/video4linux/CARDLIST.tuner per i tuner.
Non è detto che se la vostra scheda TV o il vostro tuner non è all’interno della lista, non funzioni, provate comunque.
Configurazione moduli
Inseriamo nella lista dei moduli da caricare all’avvio i moduli saa7134 e saa7134-alsa.
In alternativa è possibile inserire saa7134-oss, usando OSS al posto di ALSA per l’audio.
Apriamo la lista dei moduli che si caricano all’avvio:
sudo gedit /etc/modules
Aggiungiamo alla lista quindi:
saa7134
saa7134-alsa
Aggiungiamo gli alias videodev e saa7134 alla lista degli aliases.
Apriamo la lista degli aliases:
sudo gedit /etc/modprobe.d/aliases
Inseriamo alla lista degli aliases:
alias char-major-81 videodev
alias char-major-81-0 saa7134
Inseriamo l’opzione saa7134 nella lista delle opzioni con il numero della vostra scheda TV e il numero del vostro tuner.
Apriamo quindi la lista delle opzioni:
sudo gedit /etc/modprobe.d/options
Aggiungete l’opzione saa7134:
options saa7134 card=[numero scheda TV] tuner=[numero tuner]
Il numero della vostra scheda TV e il numero del vostro tuner dovete cercarlo sul web (forum, siti web… ecc). Per una Hauppauge WinTV HVR-1110 è 104, e il tuner è 54, nel mio caso.
Riavviate la vostra distro.
Al riavvio, vediamo la lista di tutti i moduli caricati:
lsmod | grep saa
Controlliamo che i messaggi del kernel non presentino errori:
dmesg | grep saa
Se vi uscirà qualcosa di simile a questo, vuol dire che la vostra scheda TV dovrebbe funzionare senza errori:
saa7130/34: v4l2 driver version 0.2.14 loaded
saa7133[0]: found at 0000:03:03.0, rev: 209, irq: 20, latency: 32, mmio: 0xfdeff000
saa7133[0]: subsystem: 0070:6700, board: Hauppauge WinTV-HVR1110 DVB-T/Hybrid [card=104,insmod option]
saa7133[0]: board init: gpio is 400000
saa7133[0]: i2c eeprom 00: 70 00 00 67 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
saa7133[0]: i2c eeprom 10: ff ff ff 08 ff 20 ff ff ff ff ff ff ff ff ff ff saa7133[0]: i2c eeprom 20: 01 40 01 32 32 ff 01 33 88 ff 00 a1 ff ff ff ff
saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 40: ff 21 00 c2 96 10 03 32 15 60 ff ff ff ff ff ff
saa7133[0]: i2c eeprom 50: ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
saa7133[0]: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
saa7133[0]: i2c eeprom 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
tuner 1-004b: chip found @ 0×96 (saa7133[0])
saa7133[0]: registered device video0 [v4l2]
saa7133[0]: registered device vbi0 saa7133[0]: registered device radio0
DVB: registering new adapter (saa7133[0]). saa7134 ALSA driver for DMA sound loaded
saa7133[0] at 0xfdeff000 irq 20 registered as card -1
Nel caso la scheda TV non venga riconosciuta…
1° soluzione
- I kernel recenti utilizzano il bus i2c per il riconoscimento hardware. Potreste provare a far riconoscere la vostra scheda TV digitando:
sudo modprobe saa7134 i2c_scan=1
Per rendere permanente questa opzione, creiamo un file saa7134 da posizionare in /etc/modprobe.d:
Entriamo come root:
su
E digitiamo:
echo “options saa7134 i2c_scan=1″ > /etc/modprobe.d/saa7134
Se non avete un account di root, provate con sudo.
Se non dovesse funzionare con sudo, stiamo semplicemente creando un file chiamato saa7134, dove all’interno dobbiamo scrivere:
options saa7134 i2c_scan=1
e dovrà essere spostato in /etc/modprobe.d
Perciò potete fare così:
sudo gedit saa7134
Aggiungete:
options saa7134 i2c_scan=1
Copiate il file in /etc/modprobe.d con il comando:
sudo cp -v saa7134 /etc/modprobe.d
2° soluzione
- Se il nome del chip della vostra scheda TV è saa7133, provate rinominare il modulo saa7134 in saa7133.
Apriamo la lista dei moduli che si caricano all’avvio:
sudo gedit /etc/modules
Rinominate saa7134 e saa7134-alsa in:
saa7133
saa7133-alsa
Installazione e configurazione TV Analogica con TVTime
Per installare TVTime:
sudo apt-get install tvtime
Dopo averlo installato digitiamo:
sudo chmod 777 /home/nomeutente/.tvtime/
Fare la scansione dell’intera banda di canali, digitiamo da terminale:
tvtime-scanner
e aspettiamo che il programma termini il suo lavoro.
Fatto questo, digitando
tvtime
si avvierà il programma e finalmente si potranno vedere i programmi tv.
Impostare la qualità di ricezione
Per alcune schede la configurazione di card e tuners richiede un intervento manuale per la qualita’ della ricezione. E’ possibile provare il modulo sperimentale tda9887.
Aprite il file /etc/modprobe.d/options:
sudo gedit /etc/modprobe.d/options
Aggiungi alla lista delle opzioni:
options tda9887 secam=d port2=0 port1=1
Cattura audio dalla scheda TV
Per utilizzare la cattura dell’audio direttamente dalla scheda (DMA transfer) e’ possibile utilizzare singolarmente ALSA o OSS.
Per avviare TVTime con la cattura dell’audio dalla scheda TV utilizzando ALSA, digitare da terminale:
tvtime | arecord -D hw:1,0 -r 32000 -c 2 -f S16_LE | aplay -
Per specificare la periferica d’audio:
tvtime | arecord -D hw:1,0 -r 32000 -c 2 -f S16_LE | aplay -D [periferica audio]
Nel caso l’audio sia in ritardo rispetto al video, o che l’audio non si senta… utilizzare queste alternative:
Per avviare tvtime e la cattura dell’audio utilizzando sox e ALSA, digitate da terminale:
tvtime | sox -r 32000 -w -t alsa hw:1,0 -t alsa hw:0,0
Per installare sox digitare:
sudo apt-get install sox
Un’altra combinazione con sox e qarecord, che ha funzionato nella maggior parte delle volte:
tvtime | arecord -D hw:1,0 -r 32000 -c 2 -f S16_LE | sox -q -c 2 -r 32000 -w -t wav - -t alsa hw:0,0
Per installare sox e qarecord digitare:
sudo apt-get install sox qarecord
Se sox non ha supporto ALSA, provate con questo comando:
tvtime | arecord -D hw:1,0 -r 32000 -c 2 -f S16_LE | play -q -c 2 -r 32000 -w -t wav -
In alternativa, usate un’emulazione di OSS tramite ALSA con sox e qarecord:
tvtime | sox -q -c 2 -s -w -r 32000 -t ossdsp /dev/dsp1 -t ossdsp -w -r 32000 /dev/dsp
Per avere altre informazioni e dettagli sul modulo saa7134-alsa:
Guida completa al modulo saa7134-alsa
Aprire TVTime e la cattura audio dalla scheda TV in un click con uno script bash
1) Digita da terminale:
sudo gedit tvtime.sh
Inserisci nel file:
#!/bin/sh
tvtime | arecord -D hw:1,0 -r 32000 -c 2 -f S16_LE | aplay -
Potete sostituire la riga
tvtime | arecord -D hw:1,0 -r 32000 -c 2 -f S16_LE | aplay -
con la vostra combinazione funzionante per catturare l’audio.
2) Digita da terminale:
sudo chmod +X tvtime.sh
3) Per aprire il file .sh puoi farci il doppio click sopra oppure puoi digitare:
sudo ./tvtime.sh
Chiudete sempre i processi arecord e aplay, se vi resteranno aperti, avrete problemi audio.
Potete farvi uno script bash per chiuderli manualmente:
Digita:
sudo gedit killarecord.sh
Inserisci nel file:
#!/bin/sh
killall arecord | killall aplay
Dai il comando
sudo chmod +X killarecord.sh
Puoi aprire il file sh col doppio click oppure:
sudo ./killarecord.sh
Potete sostituire la voce del menù di GNOME, facendo tasto destro sul menù -> Modifica Menù.
Navigate su Audio e Video -> TVTime Television Viewer. Cliccate su Modifica, e selezionate su Tipo Applicazione nel terminale, e inserite su Posizione tvtime.sh. In questo caso, inserendo Applicazione nel terminale, vi si aprirà il terminale, e quando chiuderete il terminale, vi si chiuderà tvtime, e i processi audio arecord e aplay.
Installazione e configurazione della TV digitale con gxine
Consiglio di utilizzare gxine per guardare la TV digitale. Per installare gxine, digitare da terminale:
sudo apt-get install gxine
Come fare la scansione dei canali digitali? Seguite passo per passo e lo scoprirete:
1) Cercare le frequenze dei Mux qui, inserendo la regione, il comune e la città. Dopo aver trovato la propria città, copiare le frequenze di ogni Mux.
2) Creare un file dove inserire le frequenze dei Mux, digitando da terminale:
sudo gedit muxlist
Esempio: Supponiamo che le frequenze di un Mux sono 554, 682, 490. Inseriremo nel file muxlist le 3 frequenze in questo modo:
T 554000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
T 682000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
T 490000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
Dopo aver inserito le frequenze, salvare il file e chiudere.
3) Per fare la scansione delle frequenze dei Mux è necessario installare dvb-utils, digitando da terminale:
sudo apt-get install dvb-utils
4) Iniziare a fare la scansione e digitare da terminale:
scan muxlist
Alla fine della scansione vi apparirà una lista di canali simile a questa:
Rete4:706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:
Italia1:706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:
Mediashopping:706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:
Sportitalia:706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:
Sportitalia24:706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:
5) Copiare la lista dei canali. Creare il file dove inserire la lista dei canali, nella directory di gxine, digitando da terminale:
sudo gedit ~/.xine/channels.conf
ATTENZIONE: Se ci sono canali doppi, rinominate il secondo, con un 2 a fianco, e così via… sennò non verranno letti da gxine.
Dopo aver inserito la lista dei canali, salvare il file e chiudere.
6) Aprire gxine, digitando da terminale:
gxine
7) Selezionare nel menù File -> DVB per vedere i canali digitali. Per scegliere il canale selezionare nel menù File -> Playlist.
Soluzioni ad altri problemi
- Chi ha il firmware tda1004x, il boot è più lento alla prima volta che accendiamo il PC, e non al riavvio. Si fermerà la barra di caricamento per alcuni secondi, e se andrete a vedere togliendo il bootsplash (CTRL+ALT+F1) è a causa del firmware che dà questo messaggio: tda1004x: timeout waiting for DSP… Alcuni hanno risolto inserendo il modulo saa7134-dvb in blacklist, e sulla lista dei moduli da caricare all’avvio.
Aprite la blacklist dei moduli:
sudo gedit /etc/modprobe.d/blacklist
E inserite:
blacklist saa7134-dvb
Aprite la lista dei moduli da caricare all’avvio:
sudo gedit /etc/modules/
Inserite:
saa7134-dvb
Per altri problemi e per altre soluzioni, scrivete un commento!
Guide da cui è stato preso spunto:
Tv Linux e Hauppauge WinTV-HVR 1110 DVB-T/Hybrid
Wiki ufficiale Ubuntu-It Saa7130
Divilinux Installazione Saa7134
Altri riferimenti:
LinuxTV V4LWiki Guida installazione Saa7134
Lista di schede TV Saa713x testate su Ubuntu
Gentoo Wiki Saa7134
Linux Configure Pinnacle PCTV Card to Watch Television with saa7134 / saa7134-alsa Driver

3 risposte finora ↓
sito // Novembre 12, 2008 a 8:47 pm
Oh my good!
Geniale davvero geniale, grazie alla tua guida son riuscito a far andare l’audio su intrpid ibex!
sito // Novembre 12, 2008 a 11:47 pm
Ah scusa una domanda, la radio, con gnomeradio, come la si fa funzionare?
Ho provato come con tvtime ma il suono che ne risulta non è per niente buono, va come a colpi e non si capisce granchè, ho fatto così:
sito@Principale:~$ gnomeradio | arecord -D hw:2,0 -r 32000 -c 2 -f S16_LE | sox -q -c 2 -r 32000 -w -t wav – -t alsa hw:0,0
Ho provato anche a mettere 44100 al posto di 32000 ma è uguale, la scansione per trovare le stazioni anche se sembra che il programma vada in freeze dopo un po invece si ripiglia e trova per modi di dire alcune stazioni.
Qualcuno dice che se si compila la svn dovrebbe andare meglio, sul sito di gnomeradio pare che chi lo sviluppa avrebbe bisogno di aiuto, insomma tu che vedo ne sai di più magari mi dai qualche delucidazione.
E stranamente dal wiki di ubuntu han tolto l alista delle schede tv compatibili, maledetti c’era la lista e questa scheda era messa compatibile, per quello l’ho presa ma poi le amare scoperte!
sito // Novembre 13, 2008 a 9:47 pm
Dimenticavo, se si usa gnome potrebbe far comodo usare MeTv (http://me-tv.sourceforge.net/) per vedere il digitale terrestre, come programma forse non è il top m aquelle 4 cose che ha sono facili, per registrare basta premere un pulsante e si registra senza dover fare chissà cosa.