Cartes tuners
Hauppauge PVR 350
Caractéristiques :
- Réception : Analogique hertzien
- Tuner : 1
- Connectique : PCI
11/2005 : j'ai acheté une carte Hauppauge PVR-350 afin d'utiliser sa sortie S-Vidéo pour la brancher sur la prise péritel de la TV. La PVR 350 est une carte PCI intégrant un encodeur et un décodeur matériel mpeg2 avec entrée et sortie analogiques. Il suffit de lui envoyer un flux mpeg2 directement sur le bon device et elle le décode en l'affichant sur sa sortie. Elle peut être utilisé en tant que carte graphique “traditionnelle” avec une résolution pour la TV de 720×576 mais sans accélération 3D. Seul le mode XV est disponible.
Tout en conservant l'utilisation “normale” de la tour avec un bureau e16, j'ai configuré un 2e serveur X avec un driver ivtv sur le display :1
utilisant cette carte. Il affichait l'interface Mythtv.
Le choix de cette carte était guidé par le manque de stabilité de la sortie S-Vidéo des drivers libres des cartes ATI Radeon et ma non-confiance dans les drivers propriétaires des 2 marques NVidia et ATI.
Hauppauge NOVA-T-500
Caractéristiques :
- Réception : Numérique hertzien (DVB-T)
- Tuners : 2
- Connectique : PCI
04/2007 : pour enregistrer des émissions de télévision sur la TNT, j'ai opté pour une carte sur port PCI : Hauppauge WinTV-NOVA-T-500.
Cette carte est composée de 2 tuners USB DVB-T et d'un hub USB 2.0 avec un adaptateur PCI, le tout sur un même circuit imprimé. Le noyau reconnait chacun de ses composants de manière indépendante. C'est une astuce du constructeur qui vend d'autre produit sous forme de clé USB avec ce même tuner.
Le double tuner permet d'enregistrer sur une chaine et d'en regarder une autre. Très confortable et de fait, indispensable pour la suite .
SATELCO EasyWatch
Caractéristiques :
- Réception : Numérique câble (DVB-C)
- Tuner : 1
- Connectique : PCI
01/2008 : suite à un déménagement, le nouvel appart était câblé et donc plus de DVB-T mais du DVB-C. J'ai fait l'acquisition de 2 cartes PCI SATELCO EasyWatch PCI DVB-C permettant de recevoir la TV numérique par le câble.
Elles sont reconnues sans problème par le noyau et Mythtv sait également la piloter.
Pinnacle PCTV 2000e
Caractéristiques :
- Réception : Numérique hertzien (DVB-T)
- Tuners : 2
- Connectique : USB 2.0
03/2010 : j'ai installé un dongle USB Pinnacle PCTV 2000e : cette carte reçoit la télévision via une antenne rateau à la norme DVB-T via un double tuner.
Le service mythbackend qui tournait sur Olive a également été déplacé sur Popeye afin qu'il prenne une place centrale dans mon infrastructure.
Voici les logs du noyau :
[ 11.669176] dvb-usb: found a 'Pinnacle PCTV 2000e' in cold state, will try to load a firmware [ 11.750393] usb 1-1: firmware: direct-loading firmware dvb-usb-dib0700-1.20.fw [ 12.323901] dvb-usb: found a 'Pinnacle PCTV 2000e' in warm state. [ 12.324161] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. [ 12.324425] DVB: registering new adapter (Pinnacle PCTV 2000e) [ 12.642151] usb 1-1: DVB: registering adapter 0 frontend 0 (DiBcom 7000PC)... [ 12.851189] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. [ 12.851493] DVB: registering new adapter (Pinnacle PCTV 2000e) [ 13.046972] usb 1-1: DVB: registering adapter 1 frontend 0 (DiBcom 7000PC)... [ 13.260600] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:14.0/usb1/1-1/rc/rc0/input15 [ 13.261157] rc rc0: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:14.0/usb1/1-1/rc/rc0 [ 13.261437] dvb-usb: schedule remote query interval to 50 msecs. [ 13.261460] dvb-usb: Pinnacle PCTV 2000e successfully initialized and connected. [ 13.262131] usbcore: registered new interface driver dvb_usb_dib0700
Fin de vie
02/2018 : après 7 ans de bon et loyaux service ma carte double tuner TNT a rendu l'âme. Elle présentait déjà des signes de faiblesse depuis 2 ans car le changement de fréquence ne s'effectuait plus correctement : il fallait donner l'ordre 2 fois. A ce titre, j'avais modifié et recompilé le backend de Mythtv pour ajouter un double changement de fréquence.
La fin de vie de cette carte a provoqué des plantages du noyau avec une augmentation du nombre de process bloqué sur des ressources USB, j'ai eu un load de 164 . J'ai mis quelques temps à comprendre d'où ça venait…
Hauppauge WinTV-dualHD
Caractéristiques :
02/2018 : le renouveau est dans une carte USB de marque Hauppauge, modèle WinTV-dualHD. Elle est bi-tuner et compatible DVB-T, DVB-T2 (la prochaine norme de diffusion de la télévision hertzienne) et DVB-C.
Voici les logs du noyau lors de son branchement :
Feb 23 20:45:50 popeye kernel: usb 1-5.1: new high-speed USB device number 12 using xhci_hcd Feb 23 20:45:50 popeye kernel: usb 1-5.1: New USB device found, idVendor=2040, idProduct=0265 Feb 23 20:45:50 popeye kernel: usb 1-5.1: New USB device strings: Mfr=3, Product=1, SerialNumber=2 Feb 23 20:45:50 popeye kernel: usb 1-5.1: Product: dualHD Feb 23 20:45:50 popeye kernel: usb 1-5.1: Manufacturer: HCW Feb 23 20:45:50 popeye kernel: usb 1-5.1: SerialNumber: 0013963409 Feb 23 20:45:50 popeye kernel: em28xx 1-5.1:1.0: New device HCW dualHD @ 480 Mbps (2040:0265, interface 0, class 0) Feb 23 20:45:50 popeye kernel: em28xx 1-5.1:1.0: DVB interface 0 found: isoc Feb 23 20:45:50 popeye kernel: em28xx 1-5.1:1.0: chip ID is em28174 Feb 23 20:45:51 popeye kernel: em28xx 1-5.1:1.0: EEPROM ID = 26 00 01 00, EEPROM hash = 0xefe5c2c8 Feb 23 20:45:51 popeye kernel: em28xx 1-5.1:1.0: EEPROM info: Feb 23 20:45:51 popeye kernel: em28xx 1-5.1:1.0: microcode start address = 0x0004, boot configuration = 0x01 Feb 23 20:45:51 popeye kernel: em28xx 1-5.1:1.0: AC97 audio (5 sample rates) Feb 23 20:45:51 popeye kernel: em28xx 1-5.1:1.0: 500mA max power Feb 23 20:45:51 popeye kernel: em28xx 1-5.1:1.0: Table at offset 0x27, strings=0x0e6a, 0x1888, 0x087e Feb 23 20:45:51 popeye kernel: em28xx 1-5.1:1.0: Identified as Hauppauge WinTV-dualHD DVB (card=99) Feb 23 20:45:51 popeye kernel: tveeprom: Hauppauge model 204109, rev B3I6, serial# 13963409 Feb 23 20:45:51 popeye kernel: tveeprom: tuner model is SiLabs Si2157 (idx 186, type 4) Feb 23 20:45:51 popeye kernel: tveeprom: TV standards PAL(B/G) NTSC(M) PAL(I) SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xfc) Feb 23 20:45:51 popeye kernel: tveeprom: audio processor is None (idx 0) Feb 23 20:45:51 popeye kernel: tveeprom: has no radio, has IR receiver, has no IR transmitter Feb 23 20:45:51 popeye kernel: em28xx 1-5.1:1.0: dvb set to isoc mode. Feb 23 20:45:51 popeye kernel: usbcore: registered new interface driver em28xx Feb 23 20:45:51 popeye kernel: em28xx 1-5.1:1.0: Binding DVB extension Feb 23 20:45:51 popeye kernel: i2c i2c-11: Added multiplexed i2c bus 12 Feb 23 20:45:51 popeye kernel: si2168 11-0064: Silicon Labs Si2168-B40 successfully identified Feb 23 20:45:51 popeye kernel: si2168 11-0064: firmware version: B 4.0.2 Feb 23 20:45:51 popeye kernel: si2157 12-0060: Silicon Labs Si2147/2148/2157/2158 successfully attached Feb 23 20:45:51 popeye kernel: dvbdev: DVB: registering new adapter (1-5.1:1.0) Feb 23 20:45:51 popeye kernel: em28xx 1-5.1:1.0: DVB: registering adapter 0 frontend 0 (Silicon Labs Si2168)... Feb 23 20:45:51 popeye kernel: em28xx 1-5.1:1.0: DVB extension successfully initialized Feb 23 20:45:51 popeye kernel: em28xx: Registered (Em28xx dvb Extension) extension Feb 23 20:45:51 popeye kernel: em28xx 1-5.1:1.0: Registering input extension Feb 23 20:45:51 popeye kernel: Registered IR keymap rc-hauppauge Feb 23 20:45:51 popeye kernel: rc rc0: 1-5.1:1.0 IR as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.0/rc/rc0 Feb 23 20:45:51 popeye kernel: input: 1-5.1:1.0 IR as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.0/rc/rc0/input19 Feb 23 20:45:51 popeye kernel: em28xx 1-5.1:1.0: Input extension successfully initialized Feb 23 20:45:51 popeye kernel: em28xx: Registered (Em28xx Input Extension) extension
Finalement je l'ai rendu car trop d'instabilités :
- une fois sur 2, le signal n'est pas reçu correctement : je n'arrive pas à déterminer si c'est lié à un bug dans les drivers ou si c'est matériel ;
- le 2e tuner n'est pas encore reconnu en version 4.14 du noyau, mais devrait arriver rapidement…
RTL2832
Caractéristiques :
- Réception : Numérique hertzien (DVB-T)
- Tuners : 1
- Connectique : USB 2.0
03/2018 : en remplacement de la clé précédente, j'ai testé le dongle USB utilisé dans mes expériences de réception radio pour recevoir la TNT et elle marche bien. Comme cette carte est mono tuner, à la différence des précédentes, j'en ai ajouté une 2e pour revenir au confort de pouvoir enregistrer plusieurs chaines simultanément.
Voici les logs du noyau lors de son branchement :
Jul 08 22:38:27 popeye kernel: dvb_usb_v2: 'Realtek RTL2832U reference design:1-5.1' successfully deinitialized and disconnected Jul 08 22:40:40 popeye kernel: usb 1-5.1: new high-speed USB device number 12 using xhci_hcd Jul 08 22:40:40 popeye kernel: usb 1-5.1: New USB device found, idVendor=0bda, idProduct=2838 Jul 08 22:40:40 popeye kernel: usb 1-5.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Jul 08 22:40:40 popeye kernel: usb 1-5.1: Product: RTL2838UHIDIR Jul 08 22:40:40 popeye kernel: usb 1-5.1: Manufacturer: Realtek Jul 08 22:40:40 popeye kernel: usb 1-5.1: SerialNumber: 00000001 Jul 08 22:40:40 popeye kernel: usb 1-5.1: dvb_usb_v2: found a 'Realtek RTL2832U reference design' in warm state Jul 08 22:40:40 popeye kernel: usb 1-5.1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer Jul 08 22:40:40 popeye kernel: dvbdev: DVB: registering new adapter (Realtek RTL2832U reference design) Jul 08 22:40:40 popeye kernel: i2c i2c-10: Added multiplexed i2c bus 11 Jul 08 22:40:40 popeye kernel: rtl2832 10-0010: Realtek RTL2832 successfully attached Jul 08 22:40:40 popeye kernel: usb 1-5.1: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))... Jul 08 22:40:40 popeye kernel: r820t 11-001a: creating new instance Jul 08 22:40:40 popeye kernel: r820t 11-001a: Rafael Micro r820t successfully identified Jul 08 22:40:40 popeye kernel: rtl2832_sdr rtl2832_sdr.1.auto: Registered as swradio0 Jul 08 22:40:40 popeye kernel: rtl2832_sdr rtl2832_sdr.1.auto: Realtek RTL2832 SDR attached Jul 08 22:40:40 popeye kernel: rtl2832_sdr rtl2832_sdr.1.auto: SDR API is still slightly experimental and functionality changes may follow Jul 08 22:40:40 popeye kernel: Registered IR keymap rc-empty Jul 08 22:40:40 popeye kernel: rc rc0: Realtek RTL2832U reference design as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/rc/rc0 Jul 08 22:40:40 popeye kernel: input: Realtek RTL2832U reference design as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/rc/rc0/input19 Jul 08 22:40:40 popeye kernel: rc rc0: lirc_dev: driver dvb_usb_rtl28xxu registered at minor = 0 Jul 08 22:40:40 popeye kernel: usb 1-5.1: dvb_usb_v2: schedule remote query interval to 200 msecs Jul 08 22:40:40 popeye kernel: usb 1-5.1: dvb_usb_v2: 'Realtek RTL2832U reference design' successfully initialized and connected
Connecteurs d'antenne
09/2017 : à chaque fois que j'interviens autour du serveur, si je touche aux câble de l'antenne, la réception se dégrade facilement. Les connecteurs en plastique sont fragiles et trop sensibles aux mouvements. Pour régler l'ensemble, il faut manipuler les connecteurs et câbles pour trouver la position qui offre le meilleur contact. De plus, pour couronner le tout, lorsque j'approche la main du récepteur, la réception varie également…
Le récepteur utilisé est un double tuner : il faut donc un T suivi de 2 petits fils allant jusqu'aux connecteurs de la carte. Mais il y a 2 connecteurs de types différents : un “gros” comme nous avons l'habitude sur nos télés ainsi qu'un petit (format MCX).
Voici le montage initial :
L'outil dvbtune
permet de mesurer la qualité du signal reçu en lui donnant une fréquence sur laquelle se positionner :
dvbtune -c 0 -m -tm 8 -cr AUTO -gi 8 -f 738000000
les options importantes sont -m
pour activer le monitoring et -f
pour indiquer la fréquence exprimée en Hertz.
Une bonne réception produit une sortie de la forme suivante :
FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_VITERBI FE_HAS_SYNC Signal=27967, Verror=0, SNR=203dB, BlockErrors=0, (S|L|C|V|SY|)
Les éléments importants sont les suivants :
Signal
: force du signal reçu. Doit être supérieur à 25000;Verror
: nombre d'erreur de décodage des blocs vidéos. Doit être proche de 0;SNR
: représente le rapport du signal sur le bruit exprimé en décibel. Doit être supérieur à 220 dB;(S|L|C|V|SY|)
: représente les différents type de bloc MPEG2 décodés. La présence de la lettreV
indique que la vidéo est bien décodée.
Lorsque le signal est mauvais, la sortie est de la forme :
FE_STATUS: FE_HAS_SIGNAL FE_HAS_LOCK FE_HAS_CARRIER FE_HAS_SYNC Signal=0, Verror=2097151, SNR=20dB, BlockErrors=0, (S|L|C|SY|)
J'ai remplacé les connecteurs par des fiches BNC, elles offrent un contact solide et facile à fixer. Sur eBay, il y a tout ce genre de matériel :
Une fois l'ensemble monté, j'ai refait des mesures et constaté que la réception n'est plus sensible aux mouvements du câble et que le signal est même un peu plus fort. Voici le résultat :
J'ai également testé l'outil tzap
pour mesurer la qualité de réception :
tzap -r "France 2(GR1 B)" using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' reading channels from file '/home/user/.tzap/channels.conf' Version: 5.11 FE_CAN { DVB-T } tuning to 682000000 Hz video pid 0x0078, audio pid 0x0082 status 00 | signal 0000 | snr 0000 | ber 0002ceeb | unc 25252525 | status 1f | signal 0000 | snr 015d | ber 00000000 | unc 25252525 | FE_HAS_LOCK status 1f | signal 0000 | snr 016c | ber 00000000 | unc 25252525 | FE_HAS_LOCK status 1f | signal 0000 | snr 015f | ber 00000000 | unc 25252525 | FE_HAS_LOCK status 1f | signal 0000 | snr 016d | ber 00000000 | unc 25252525 | FE_HAS_LOCK status 1f | signal 0000 | snr 016f | ber 00000000 | unc 25252525 | FE_HAS_LOCK status 1f | signal 0000 | snr 0152 | ber 00000000 | unc 25252525 | FE_HAS_LOCK
La première ligne est toujours fausse, la présence d'un ber
proche de 0 et de FE_HAS_LOCK
indique une réception satisfaisante du signal.
03/2018 : en changeant de carte, je suis passé à 2 cartes USB et j'ai donc adapté le système de connexion MCX pour brancher les 2 dongles USB, il n'y a pas plus de gros câble d'antenne après le T.
Les connecteurs MCX sont certes petits mais ils tiennent très bien, bien mieux que les connecteurs de câble d'antenne habituel.