MATÉRIEL Installation d'une carte TNT

Un article de Gentoo Linux Wiki.

Cet article fait partie des HOWTOs.
Méthodes d'installation CD Live Noyau et matériel Portables et Notebooks Portage Système Réseaux et Services Serveur X Logiciels fréquemment utilisés Autres

Sommaire

[modifier] Introduction

La Télévision Numérique Terrestre (TNT) permet de disposer d'un plus grand nombre de chaines et surtout de disposer d'une meilleure qualité d'image que les chaines hertzienne ainsi que, sur certaine chaines, d'un son Dolby5.1, d'une image 16/9e, du son en version originale et en version française...

GNU/Linux supporte un certain nombre de cartes DVB-T permettant de recevoir les flux MPEG-2. Cet article va vous guider dans l'installation d'une carte DVB-T, plus précisément une carte PCI Hauppage Nova-T, et dans l'utilisation de cette carte (visualisation de la TV, streaming).

[modifier] Matériel

Il faut une carte PCI DVB-T. Très peu de boitiers USB sont actuellement supportés.

Toutes les cartes DVB-T ne sont pas encore supportés sous Linux, mais il y en a de plus en plus.

Les cartes les plus courantes n'ont pas de décompresseur mpeg-2, ce qui nécessite donc un ordinateur ayant un minimun de puissance (un Athlon 800Mhz est suffisant) ou une carte de décompression supplémentaire.

La carte PCI Hauppage WinTV Nova-T est actuellement supporté dans ses 2 versions (avec les chipsets philips et conexant), cet article va s'appuyer sur la configuration de cette carte.

Une liste des cartes supportées sous Linux est disponible ici : http://www.linuxtv.org/wiki/index.php/PCI_devices_DVB-T

[modifier] Installation

[modifier] Patch

Pour la carte PCI Hauppage WinTV Nova-T seconde édition (celle vendu actuellement) ainsi que pour les cartes Pinnacle PCTV MediaCenter 300i et 200i et la carte AVerMedia AVerTV DVB-T 771, il faut télécharger le patch All-2.6.11-2.diff.gz(en remplaçant 2.6.11-2 par votre version du noyau Linux).

Téléchargez le patch sur http://dl.bytesex.org/patches/

Vous devez posséder les sources du noyau Linux (fournis par votre distribution ou sur http://www.kernel.org).

cd /usr/src/linux
wget http://dl.bytesex.org/patches/2.6.11-2/All-2.6.11.diff.gz
gunzip All-2.6.11.diff.gz
patch –dry-run -p1 < All-2.6.11.diff

Si il n'y a aucune erreur vous pouvez tapez :

patch -p1 < All-2.6.11.diff
Note: Ce patch n'est normalement plus nécessaire depuis la 2.6.12


[modifier] Configuration du noyau

Pour la carte PCI Hauppage WinTV Nova-T seconde édition, Pinnacle PCTV MediaCenter 300i et 200i et la carte AVerMedia AVerTV DVB-T 771 vous devez avoir ceci dans le fichier .config :


Fichier : .config
#
# Multimedia devices
#
CONFIG_VIDEO_DEV=m

#
# Video For Linux
#

#
# Video Adapters
#
CONFIG_VIDEO_CX88=m
CONFIG_VIDEO_CX88_DVB=m

#
# Digital Video Broadcasting Devices
#
CONFIG_DVB=y
CONFIG_DVB_CORE=m

#
# Supported SAA7146 based PCI Adapters
#
CONFIG_DVB_AV7110=m
CONFIG_DVB_AV7110_OSD=y
CONFIG_DVB_BUDGET=m
CONFIG_DVB_BUDGET_CI=m
CONFIG_DVB_BUDGET_AV=m
CONFIG_DVB_BUDGET_PATCH=m

#
# DVB-T (terrestrial) frontends
#
CONFIG_DVB_CX22700=m
CONFIG_DVB_CX22702=m
CONFIG_DVB_MT352=m

Soit en plus clair pour un noyau 2.6.11 :

cd /usr/src/linux
make menuconfig
Allez dans “Device Drivers” puis “Multimedia devices”.
Mettez “Video For Linux” en module.
Allez dans “Video For Linux”.
Mettez ici “Connexant 2388x (bt878 successor) support” puis “DVB Support for cx2388x based TV cards” en module.
Retournez en arriére et allez dans “Digital Video Broadcasting Devices”.
Mettez “DVB For Linux” puis “DVB Core Support” en module.
Ajoutez “AV7110 OSD support” en dur, et “Budget cards”, “Budget cards with onboard CI connector”, “Budget cards with analog video inputs” ainsi que  "AV7110 cards with Budget Patch” en module.
Enfin allez dans “Customise DVB Frontends” et mettez “Zarlink MT312 based”, “Conexant CX22700 based” ainsi que “Conexant cx22702 demodulator” en module.

[modifier] Compilation du noyau et installation

Comme d'habitude pour compiler un noyau Linux 2.6 tapez :

make
make modules_install
make install

Modifier grub.conf ou lilo.conf si vous avez changé de noyau.

Il est fortement conseillé d'installer hotplug ou coldplug afin de charger automatiquement les modules au démarrage.

Pour charger les modules “à la main” tapez :

modprobe mt352
modprobe dvb-bt8xx

Si besoin créez les régles udev comme ceci (provient d'un message de Richie Jarvis) : Supprimez les régles DVB déjà présente si il y en a.

Ajoutez ceci dans le fichier contenant les régles (dans /etc/udev/rules.d) :

Fichier : /etc/udev/rules.d
# DVB Support
KERNEL="dvb*", PROGRAM="/etc/udev/scripts/dvb.sh %k", NAME="%c"

Ajoutez le script suivant dans /etc/udev/scripts :

Fichier : /etc/udev/scripts
 #!/bin/sh
 /bin/echo $1 | /bin/sed -e 's,dvb\([0-9]\)\.\([^0-9]*\)\([0-9]\),dvb/adapter\1/\2\3,'

[modifier] Vérifications

Redémarrez l'ordinateur avec le nouveau noyau configuré.

Tapez lsmod pour vérifier que les modules de la carte DVB-T sont bien chargés.

Vous devriez avoir quelque chose de ce type :

Module                  Size  Used by
cx88_dvb                5700  0
cx8802                  7684  1 cx88_dvb
mt352                   6276  1 cx88_dvb
or51132                 9860  1 cx88_dvb
video_buf_dvb           4740  1 cx88_dvb
dvb_core               78568  1 video_buf_dvb
cx22702                 8452  1 cx88_dvb
dvb_pll                 3396  3 cx88_dvb,or51132,cx22702
cx8800                 26828  0
cx88xx                 49056  3 cx88_dvb,cx8802,cx8800
ir_common               6212  1 cx88xx
v4l1_compat            13636  1 cx8800
saa7127                12252  0
msp3400                26488  0
saa7115                12120  0
ivtv                  807524  2
bttv                  147920  0
video_buf              17668  6 cx88_dvb,cx8802,video_buf_dvb,cx8800,cx88xx,bttv
firmware_class          7936  2 or51132,bttv
i2c_algo_bit            8840  3 cx88xx,ivtv,bttv
v4l2_common             4736  2 cx8800,bttv
btcx_risc               3912  4 cx8802,cx8800,cx88xx,bttv
tveeprom               11672  2 cx88xx,bttv
videodev                7616  4 cx8800,cx88xx,ivtv,bttv

(sachant qu'il y a également sur cet ordinateur une carte Hauppage PVR 250 ainsi qu'une Pinnacle PCTV Rave).

[modifier] Configuration

[modifier] Fréquences des chaînes

Il faut commencer par récupérer les noms et les fréquences des chaines de TV.

Vous devez installer les utilitaires de linuxtv.org : http://www.linuxtv.org/downloads/ Pour Gentoo il y a un ebuild sur http://gentoo.zugaina.org/

Si il n'y a pas de paquet présent pour votre distribution vous devez procéder à une installation manuelle :

wget http://www.linuxtv.org/downloads/linuxtv-dvb-apps-1.1.0.tar.bz2
tar xjvf linuxtv-dvb-apps-1.1.0.tar.bz2
cd linuxtv-dvb-apps-1.1.0
make

Maintenant il faut rechercher les chaines de la TNT.

Pour cela il faut utiliser le programme scan situé dans “util/scan” de linuxtv-dvb-apps.

Tapez :

./scan dvb-t/uk-Oxford | tee channels.conf (Remplacez “uk-Oxford” par votre lieu de résidence)

Pour la France il n'y a pas de fichiers présents. Il faut donc en créer un.

Voici celui pour l'émetteur de Paris – Tour Eiffel :

Fichier : fr-Paris
# Paris – Tour Eiffel
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T 562000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
T 498000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
T 474000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
T 586000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
T 522000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
T 650000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
T 490000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
T 514000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE

Pour créer votre fichier : Utilisez le site http://www.tvnt.net/couverture.php#3 pour trouver les canaux des multiplex numériques. Il faut transformer les canaux en fréquence pour cela utiliser la formule suivante :

Fréquence (Hz) = (306 + 8*(N° du canal))*1000000

Ensuite ajouter la ligne suivante dans le fichier :

T fréquence 8MHz 2/3 NONE QAM64 8k 1/32 NONE

(remplacez fréquence par le chiffre que vous avez trouvé)

Ainsi si le canal est 35 la ligne a écrire dans le fichier sera :

T 586000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE

Répétez cette opération pour tous les canaux multiplex.

Une fois le fichier créer tapez :

./scan fichier | tee channels.conf

Conservez le fichier ainsi créer précieusement, il est nécessaire pour l'utilisation de plusieurs programmes.

[modifier] Test de l'installation

Vous avez besoin pour cela de tzap qui est présent dans le répertoire “util/szap” de “linuxtv-dvb-apps”.

Tapez :

./tzap -c ../scan/channels.conf TF1

Vous devriez alors avoir ceci :

using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
tuning to 562000000 Hz
video pid 0x0078, audio pid 0x0082
status 00 | signal ffff | snr c000 | ber 00003fff | unc 00000000 |
status 1f | signal 3636 | snr ffff | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 3636 | snr ffff | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 3636 | snr ffff | ber 00000000 | unc 00000000 | FE_HAS_LOCK

Si vous avez le texte “FE_HAS_LOCK” ceci signifie que la carte a trouvé le signal donc que tout devrait fonctionner correctement.

[modifier] Utilisation

[modifier] Mplayer

Installez Mplayer USE=”dvb” emerge mplayer

Copiez maintenant le fichier “channels.conf” créé au chapitre précédent dans le répertoire “~/.mplayer/”.

Pour voir une chaine tapez ensuite :

mplayer dvb://”TF1”

Remplacez “TF1” par le nom de la chaine inscrite dans le fichier “channels.conf” que vous voulez.

Pour enregistrer une chaine avec mencoder (distribuer avec mplayer) tapez ceci :

mencoder -avc copy -ovc copy dvb://”TF1” -o fichier_de_destination.mpg

[modifier] MythTV

MythTV est une interface graphique pour les cartes TV. Il permet de faire de votre PC un magnétoscope numérique et, par l'ajout de modules, de voir des photos, des vidéos, la météo, de jouer,...

MythTV supporte parfaitement les cartes DVB-T.

Installez MythTV

USE=”dvb” emerge mythtv

(faites de même pour tous les modules que vous voulez) Puis aller lire la documentation sur http://www.mythtv.org


Pour l'affichage du programme des chaines de télé dans MythTV vous devez éditer à la main la base de donnée en rajoutant l'adresse du programme sur le site guidetele.com ou telepoche.com

La version 0.5.40 de xmltv ajoute la gestion des chaines de la TNT française et permet donc de se passer de cette manipulation.

[modifier] Freevo

Freevo est, tout comme mythtv, une interface graphique pour les cartes TV. Il supporte également parfaitement les cartes DVB-T.

Installez Freevo emerge freevo

Pour la configuration avec une carte DVB-T, ce site explique les manipulations à faire : http://www.lahiette.com/biboobox/?Freevo/La+TNT

[modifier] VideoLan

[modifier] Client local

Il faut pour voir la télé, VLC 0.7.2 minimun.

USE=”dvb wxwindows” emerge vlc

Pour regarder M6 de l'émetteur de Paris – Tour Eiffel, il suffit de lancer ceci :

vlc --programs 1025 -vvv --color --ttl 12 dvb:// --dvb-frequency=498000000 --dvb-adapter=0 --dvb-bandwidth=8

Le changement de chaine est expliqué dans le paragraphe suivant.

[modifier] Stream (flux réseau)

Pour diffuser le flux mpeg de la carte il faut utiliser VLC 0.7.2 minimun.

Sous Gentoo, installez le en tapant :

USE=”dvb” emerge vlc

La ligne pour diffuser M6 de l'émetteur de Paris – Tour Eiffel en unicast à l'ordinateur disposant l'adresse ip 192.168.1.2 est la suivante :

vlc --programs 1025 -vvv --color --ttl 12 dvb:// --dvb-frequency=498000000 --dvb-adapter=0 --dvb-bandwidth=8 --sout '#duplicate{dst=standard{mux=ts,access=udp,url=192.168.1.2,sap,name="[TNT] M6",group="TNT"},select="program=1025"'  --intf rc

Pour obtenir les informations, il faut consulter le fichier “channels.conf” créé au chapitre précédent.

Voici la premiére ligne d'un fichier channels.conf :

TF1:562000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:120:130:1537

Ainsi pour TF1 la ligne devient :

vlc --programs 1537 -vvv --color --ttl 12 dvb:// --dvb-frequency=562000000 --dvb-adapter=0 --dvb-bandwidth=8 --sout '#duplicate{dst=standard{mux=ts,access=udp,url=192.168.1.2,sap,name="[TNT] TF1",group="TNT"},select="program=1537"' --intf rc

Il faut donc changer la fréquence qui est en 2éme dans la ligne provenant du fichier channels.conf et le numéro du programme qui est toujours à la fin de la ligne.

Pour récupérer le flux unicast sur l'ordinateur distant, lancez VLC, puis cliquez sur “Fichier”, “Ouvrir un flux réseau...” et cocher “UDP/RTP” et vérifiez que le port est bien 1234. Cliquez sur “OK”. Vous devez maintenant recevoir le flux envoyer par votre serveur.

[modifier] Liens