Distribution : 2013-02-09-wheezy-raspbian
Matériel : Clé usb Tnt réf. : Zolid Mini DVB-T Stick : http://cgi.ebay.fr/ws/eBayISAPI.dll?ViewItem&item=280731328524
1) Vérification de la version linux :
pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l GNU/Linux
2) Brancher la clé usb tv tnt . 3) Vérification :
pi@raspberrypi ~ $ dmesg
...
[ 1005.480107] usb 1-1.3.4: new high-speed USB device number 12 using dwc_otg
[ 1005.581927] usb 1-1.3.4: New USB device found, idVendor=048d, idProduct=9135
[ 1005.581960] usb 1-1.3.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 1005.691374] it913x: Chip Version=02 Chip Type=9135
[ 1005.692347] it913x: Dual mode=0 Tuner Type=38
[ 1005.692364] it913x: Unknown tuner ID applying default 0x60
[ 1005.693788] dvb-usb: found a 'ITE 9135 Generic' in cold state, will try to load a firmware
[ 1005.725864] dvb-usb: did not find the firmware file. (dvb-usb-it9135-02.fw) Please see linux/Documentation/dvb/ for more details on firmware-problems. (-2)
[ 1005.725890] it913x: DEV it913x Error
[ 1005.726071] usbcore: registered new interface driver it913x
pi@raspberrypi ~ $ lsusb
...
Bus 001 Device 012: ID 048d:9135 Integrated Technology Express, Inc. Zolid Mini DVB-T Stick
4) Télécharger les micrologiciels :
pi@raspberrypi ~ $ mkdir MICROLOGICIEL
pi@raspberrypi ~ $ cd MICROLOGICIEL/
pi@raspberrypi ~/MICROLOGICIEL $ wget http://www.ite.com.tw/uploads/firmware/v3.6.0.0/dvb-usb-it9135.zip
5) Extraire les micrologiciels :
pi@raspberrypi ~/MICROLOGICIEL $ unzip dvb-usb-it9135.zip
Archive: dvb-usb-it9135.zip
inflating: dvb-usb-it9135.fw
pi@raspberrypi ~/MICROLOGICIEL $ dd if=dvb-usb-it9135.fw ibs=1 skip=64 count=8128 of=dvb-usb-it9135-01.fw
8128+0 enregistrements lus
15+1 enregistrements écrits
8128 octets (8,1 kB) copiés, 0,0292635 s, 278 kB/s
pi@raspberrypi ~/MICROLOGICIEL $ dd if=dvb-usb-it9135.fw ibs=1 skip=12866 count=5817 of=dvb-usb-it9135-02.fw
5817+0 enregistrements lus
11+1 enregistrements écrits
5817 octets (5,8 kB) copiés, 0,0264556 s, 220 kB/s
pi@raspberrypi ~/MICROLOGICIEL $ ls -l
total 56
-rw-r--r-- 1 pi pi 8128 avril 14 19:24 dvb-usb-it9135-01.fw
-rw-r--r-- 1 pi pi 5817 avril 14 19:24 dvb-usb-it9135-02.fw
-rw-r--r-- 1 pi pi 25105 juil. 20 2011 dvb-usb-it9135.fw
-rw-r--r-- 1 pi pi 9981 oct. 18 05:58 dvb-usb-it9135.zip
5) Copier les micrologiciels :
pi@raspberrypi ~/MICROLOGICIEL $ sudo mkdir /firmware
pi@raspberrypi ~/MICROLOGICIEL $ sudo cp *.fw /firmware/
pi@raspberrypi ~/MICROLOGICIEL $ sudo cp *.fw /lib/firmware/
6) Débrancher et rebrancher la clé usb tnt. 7) Vérification :
pi@raspberrypi ~/MICROLOGICIEL $ dmesg
...
[ 1576.967431] usb 1-1.3.4: USB disconnect, device number 12
[ 1579.254574] usb 1-1.3.4: new high-speed USB device number 13 using dwc_otg
[ 1579.356532] usb 1-1.3.4: New USB device found, idVendor=048d, idProduct=9135
[ 1579.356564] usb 1-1.3.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 1579.360716] it913x: Chip Version=02 Chip Type=9135
[ 1579.361796] it913x: Dual mode=0 Tuner Type=38
[ 1579.361817] it913x: Unknown tuner ID applying default 0x60
[ 1579.363273] dvb-usb: found a 'ITE 9135 Generic' in cold state, will try to load a firmware
[ 1579.438953] dvb-usb: downloading firmware from file 'dvb-usb-it9135-02.fw'
[ 1579.439533] it913x: FRM Starting Firmware Download
[ 1579.683009] it913x: FRM Firmware Download Completed - Resetting Device
[ 1579.715264] it913x: Chip Version=02 Chip Type=9135
[ 1579.715821] it913x: Firmware Version 52887808
[ 1579.794462] dvb-usb: found a 'ITE 9135 Generic' in warm state.
[ 1579.794860] dvb-usb: will use the device's hardware PID filter (table count: 31).
[ 1579.799133] DVB: registering new adapter (ITE 9135 Generic)
[ 1579.865261] it913x-fe: ADF table value :00
[ 1579.870828] it913x-fe: Crystal Frequency :12000000 Adc Frequency :20250000 ADC X2: 01
[ 1579.911803] it913x-fe: Tuner LNA type :60
[ 1580.208921] DVB: registering adapter 0 frontend 0 (ITE 9135 Generic_1)...
[ 1580.283845] Registered IR keymap rc-it913x-v1
[ 1580.284671] input: IR-receiver inside an USB DVB receiver as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.4/rc/rc0/input4
[ 1580.285289] rc0: IR-receiver inside an USB DVB receiver as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.4/rc/rc0
[ 1580.285314] dvb-usb: schedule remote query interval to 250 msecs.
[ 1580.285333] dvb-usb: ITE 9135 Generic successfully initialized and connected.
[ 1580.285343] it913x: DEV registering device driver
pi@raspberrypi ~ $ ls -alR /dev/dvb/
/dev/dvb/:
total 0
drwxr-xr-x 3 root root 60 avril 14 19:26 .
drwxr-xr-x 14 root root 3260 avril 14 19:26 ..
drwxr-xr-x 2 root root 120 avril 14 19:26 adapter0
/dev/dvb/adapter0:
total 0
drwxr-xr-x 2 root root 120 avril 14 19:26 .
drwxr-xr-x 3 root root 60 avril 14 19:26 ..
crw-rw---T+ 1 root video 212, 4 avril 14 19:26 demux0
crw-rw---T+ 1 root video 212, 5 avril 14 19:26 dvr0
crw-rw---T+ 1 root video 212, 3 avril 14 19:26 frontend0
crw-rw---T+ 1 root video 212, 7 avril 14 19:26 net0
8) Répertoire de travail :
pi@raspberrypi ~ $ mkdir TNT
pi@raspberrypi ~ $ cd TNT/
9) Paquetages à installer :
pi@raspberrypi ~/TNT $ sudo apt-get install libssl-dev
pi@raspberrypi ~/TNT $ sudo apt-get install libavahi-client-dev
10) Récupération du code source :
pi@raspberrypi ~/TNT $ wget https://github.com/Glandos/tvheadend/archive/release/3.2.zip
pi@raspberrypi ~/TNT $ unzip 3.2.zip
pi@raspberrypi ~/TNT $ cd tvheadend-release-3.2/
Remarque : La version tvheadend 3.5 n'a pas fonctionné chez moi. 11) Compilation de Tvheadend :
pi@raspberrypi ~/TNT/tvheadend-release-3.2 $ ./configure
pi@raspberrypi ~/TNT/tvheadend-release-3.2 $ sudo make install
pi@raspberrypi ~/TNT/tvheadend-release-3.2 $ sudo cp debian/tvheadend.init /etc/init.d/tvheadend
pi@raspberrypi ~/TNT/tvheadend-release-3.2 $ sudo cp debian/tvheadend.default /etc/default/tvheadend
12) Ajout d'un utilisateur tvheadend :
pi@raspberrypi ~/TNT/tvheadend $ sudo groupadd tvheadend
pi@raspberrypi ~/TNT/tvheadend $ sudo useradd -g tvheadend -G video -m tvheadend
pi@raspberrypi ~/TNT/tvheadend $ cat /etc/group | grep tvheadend
video:x:44:pi,tvheadend
tvheadend:x:1002:
13) Fichier de lancement :
pi@raspberrypi ~/TNT/tvheadend $ sudo cp debian/tvheadend.init /etc/init.d/tvheadend
Ouvrir :
/etc/init.d/tvheadend
Chercher :
DAEMON=/usr/bin/$NAME
Remplacer par :
DAEMON=/usr/local/bin/$NAME
14) Configuration du lancement : Ouvrir :
/etc/default/tvheadend
Chercher :
TVH_USER="hts"
Remplacer par :
TVH_USER="tvheadend"
15) Initialiser le lancement :
pi@raspberrypi ~/TNT1/tvheadend-release-3.2 $ sudo insserv tvheadend
16) Lancement de base :
pi@raspberrypi ~/TNT1/tvheadend-release-3.2 $ sudo su - tvheadend
tvheadend@raspberrypi ~ $ tvheadend -C
avril 16 21:12:52 [INFO]:charset: 59 entries loaded
avril 16 21:12:52 [INFO]:dvb: Found adapter /dev/dvb/adapter0 (ITE 9135 Generic_1) via USB (480 Mbit/s)
avril 16 21:12:52 [INFO]:epggrab: module eit created
avril 16 21:12:52 [INFO]:epggrab: module uk_freesat created
avril 16 21:12:52 [INFO]:epggrab: module uk_freeview created
avril 16 21:12:52 [INFO]:epggrab: module opentv-ausat created
avril 16 21:12:52 [INFO]:epggrab: module opentv-skyit created
avril 16 21:12:52 [INFO]:epggrab: module opentv-skyuk created
avril 16 21:12:52 [INFO]:epggrab: module pyepg created
avril 16 21:12:52 [INFO]:epggrab: module xmltv created
avril 16 21:12:52 [INFO]:epgdb: loaded v2
avril 16 21:12:52 [INFO]:epgdb: channels 0
avril 16 21:12:52 [INFO]:epgdb: brands 0
avril 16 21:12:52 [INFO]:epgdb: seasons 0
avril 16 21:12:52 [INFO]:epgdb: episodes 0
avril 16 21:12:52 [INFO]:epgdb: broadcasts 0
avril 16 21:12:52 [INFO]:dvr: Creating new configuration ''
avril 16 21:12:52 [WARNING]:dvr: Output directory for video recording is not yet configured for DVR configuration "". Defaulting to to "/home/tvheadend". This can be changed from the web user interface.
avril 16 21:12:52 [INFO]:CSA: Using 32bit parallel descrambling
avril 16 21:12:52 [NOTICE]:START: HTS Tvheadend version 3.1.694 started, running as PID:3684 UID:1001 GID:1002, settings located in '/home/tvheadend/.hts/tvheadend'
avril 16 21:12:53 [INFO]:AVAHI: Service 'Tvheadend' successfully established.
[Ctrl]+[c] <-- Quitter le programme [Ctrl]+[d] <-- Quitter la session 17) Redémarrer. 18) Vérification :
pi@raspberrypi ~ $ ps aux | grep tvheadend
1001 2563 4.6 0.5 63000 2352 ? Ssl 21:14 0:01 /usr/local/bin/tvheadend -f -u tvheadend -g video
pi 2793 0.0 0.2 3800 908 pts/0 S+ 21:15 0:00 grep --color=auto tvheadend
pi@raspberrypi ~ $ ls -alR /dev/dvb/
/dev/dvb/:
total 0
drwxr-xr-x 3 root root 60 janv. 1 1970 .
drwxr-xr-x 14 root root 3260 avril 16 21:19 ..
drwxr-xr-x 2 root root 120 janv. 1 1970 adapter0
/dev/dvb/adapter0:
total 0
drwxr-xr-x 2 root root 120 janv. 1 1970 .
drwxr-xr-x 3 root root 60 janv. 1 1970 ..
crw-rw---T+ 1 root video 212, 4 janv. 1 1970 demux0
crw-rw---T+ 1 root video 212, 5 janv. 1 1970 dvr0
crw-rw---T+ 1 root video 212, 3 janv. 1 1970 frontend0
crw-rw---T+ 1 root video 212, 7 janv. 1 1970 net0
19) A partir d'un ordinateur distant, lancer l'interface de configuration de Tvheadend : http://192.168.1.19:9981/extjs.html 20) Configuration : * Mettre l'interfance en franais :
pi@raspberrypi ~/TNT/tvheadend $ sudo apt-get install w-scan
Remarque : Avant de scanner les fréquences, arrêter le daemon tvheadend :
pi@raspberrypi ~/TNT/tvheadend $ sudo tvheadend stop
pi@raspberrypi ~/TNT/tvheadend $ sudo w_scan -f t -c FR -o 7 > $HOME/channels.conf
w_scan version 20120605 (compiled for DVB API 5.4)
using settings for FRANCE
DVB aerial
DVB-T FR
scan type TERRESTRIAL, channellist 5
output format vdr-1.7
output charset 'UTF-8', use -C <charset> to override
Info: using DVB adapter auto detection.
/dev/dvb/adapter0/frontend0 -> TERRESTRIAL "ITE 9135 Generic_1": good :-)
Using TERRESTRIAL frontend (adapter /dev/dvb/adapter0/frontend0)
-_-_-_-_ Getting frontend capabilities-_-_-_-_
Using DVB API 5.6
frontend 'ITE 9135 Generic_1' supports
INVERSION_AUTO
QAM_AUTO
TRANSMISSION_MODE_AUTO
GUARD_INTERVAL_AUTO
HIERARCHY_AUTO
FEC_AUTO
FREQ (51.00MHz ... 1680.00MHz)
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
Scanning 8MHz frequencies...
474000: (time: 00:00) (time: 00:01) signal ok:
QAM_AUTO f = 474000 kHz I999B8C999D999T999G999Y999
undefined coderate LP
new transponder:
(QAM_64 f = 4294967 kHz I999B8C34D0T2G32Y0) 0x405A
undefined coderate LP
updating transponder:
(QAM_64 f = 4294967 kHz I999B8C34D0T2G32Y0) 0x405A
to (QAM_64 f = 4294967 kHz I999B8C23D0T2G32Y0) 0x405A
undefined coderate LP
undefined coderate LP
undefined coderate LP
undefined coderate LP
undefined coderate LP
undefined coderate LP
474166: (time: 00:15) (time: 00:16) signal ok:
QAM_AUTO f = 474166 kHz I999B8C999D999T999G999Y999
undefined coderate LP
updating transponder:
(QAM_64 f = 4294967 kHz I999B8C23D0T2G32Y0) 0x405A
to (QAM_64 f = 4294967 kHz I999B8C34D0T2G32Y0) 0x405A
undefined coderate LP
updating transponder:
(QAM_64 f = 4294967 kHz I999B8C34D0T2G32Y0) 0x405A
to (QAM_64 f = 4294967 kHz I999B8C23D0T2G32Y0) 0x405A
undefined coderate LP
undefined coderate LP
...
WARNING: received garbage data: crc = 0x7e42286c; expected crc = 0xff0430ee
Info: no data from NIT(actual)
dumping lists (28 services)
Done.
Durée : environs 75 min.
pi@raspberrypi ~ $ cat channels.conf | sed -e 's/;/:/g' | cut -d: -f2,3 | uniq | sort
BCE:698000
CNH:650000
GR1:490000
GR1 B:490000
MR5:674000
Nat:490000
NTN:626000
(null):722000
* Ajouter les multiplexes :

La colonne "MuxId" doit contenir un Id.
22) Associer les chaînes et les services :
Décocher les chaînes de télévision inutiles :

24) Configuration de l'espace de stockage pour les enregistrementpi@raspberrypi /home/tvheadend/2013-04-21/BFM-TV/test $ ls -lh
total 129M
-rwxrwxrwx 1 tvheadend video 129M avril 21 15:15 BFM-TV-test.2013-04-21.15-10.mkv
25) Regarder une chaîne :

26) Liens :
http://www.monnetamoi.net/articles.php?lng=fr&pg=226
http://coder36.blogspot.fr/2012/11/tvheadend-on-raspberry-pi.html
http://www.geexbox.org/forum/topic/dvb-usb-it9135/
http://www.monnetamoi.net/articles.php?lng=fr&pg=239