Cette page précente ce qui n'est pour le moment qu'un projet, mais qui deviendra peut-être un jour un magnétoscope permétant d'enregistrer la TNT (Télévision Numérique Terrestre).
Objectif : avoir un pc qui enregistre les émissions à des heures programmées ou en temps réel, pilotable à distance. Les vidéos enregistrées (au format MPEG2, brutes donc) sont stockées sur le serveur. Dans l'idéal, ce pc s'éteindrait lorsqu'il ne serait pas en train d'enregistrer, et s'allumerait lorsqu'on souhaite voir une vidéo enregistrée, lancer un enregistrement ou que c'est d'heure d'un enregistrement programmé.
Matériel :
Contraintes particulières : le bruit, je ne souhaite pas regarder la TNT sur le PC qui enregistre, et pas non plus regarder d'émissions en direct (toujours enregistrement dans un premier temps puis visualisations via le réseau ensuite). Vu toutes ces contraintes et comte tenu que le format MPEG2 me convient pour le stockage des vidéos, un pc peu puissant devrait suffire.
24/05/2005 Après avoir acheté la carte, première étape : la tester. C'est à dire tester son fonctionnement sous linux, et tester la récéption pour savoir si oui ou non la TNT arrive dans mon immeuble.
À cette étape, pas besoin de travailler avec du matériel silentieux et lent, j'ai donc utilisé mon bi-P3 500Mhz (le pc le plus puissant en ma possession), et pour ne pas perdre de temps à l'installation, un cd de ubuntu et hop.
Premier boot de la ubuntu, en livecd : noyau 2.6.10-5. Bonne nouvelle, voila un noyau bien récent. Un petit dmesg, rien concernant la carte. Un lspci m'indique 3 cartes :
0000:00:00.0 Host bridge: Intel Corp. 440GX - 82443GX Host bridge
0000:00:01.0 PCI bridge: Intel Corp. 440GX - 82443GX AGP bridge
0000:00:02.0 PCI bridge: Digital Equipment Corporation DECchip 21152 (rev 03)
0000:00:07.0 ISA bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02)
0000:00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
0000:00:07.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01)
0000:00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 02)
0000:00:08.0 Multimedia video controller: Conexant Winfast TV2000 XP (rev 05)
0000:00:08.2 Multimedia controller: Conexant: Unknown device 8802 (rev 05)
0000:00:08.4 Multimedia controller: Conexant: Unknown device 8804 (rev 05)
0000:00:0a.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 24)
0000:00:0e.0 SCSI storage controller: Adaptec AIC-7892B U160/m (rev 02)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage Pro AGP 1X (rev 5c)
0000:02:04.0 SCSI storage controller: Adaptec AHA-2940U2/U2W / 7890/7891
0000:02:06.0 SCSI storage controller: Adaptec AIC-7860 (rev 03)
24/05/2005 21h00 : après quelques test, en essayant de charger les modules necessaires selon les conseils en [1], j'ai regardé la config du noyau et je suis tombé sur un méchant
# CONFIG_VIDEO_CX88_DVB is not set
Donc il faut que je recompile mon noyau. Bon, dans un premier temps, on va installer ubuntu parce que bon, le livecd est bien gentil, mais par défaut y'a rien pour tester la carte. Allez, installons.
24/05/2005 21h25 : pas de chance, le livecd de ubuntu ne semble pas permettre d'install. Bon, install de debian woody puis upgrade en sarge (toujours en testing).
24/05/2005 23h00 : debian sarge installée avec succès (après quelques problèmes de faux contacts avec le rack de disque). Apparement, d'après un post sur une mailing list [2], la carte n'est supportée qu'avec un noyau très récent (2.6.12-rc4, le dernier à ce jour) ou alors il faut patcher. Téléchargement du noyau et des outils necessaires en cours. Il semble qu'il y ait deux façon de faire marcher cette carte, soit par le driver dvb du noyau (à priori complet dans le noyau 2.6.12-rc4) soit par v4l, avec des patches. Encore un achat compulsif qui va me prendre des heures et des heures de config pour faire marcher un truc alors que le produit d'à côté aurait parfaitement fonctionné :-/
25/05/2005 22h30 : noyau 2.6.12-rc5 (la rc5 est sortie dans la nuit) téléchargé, configuration en cours, en se basant sur [3]. Ensuite, un petit make-kpkg (comment ça pro-debian?), on va voir si je n'ai pas trop perdu la main. Voici la ligne de command utilisée pour la compilation :
make-kpkg --revision 2005.05.25.novat --append-to-version gunpowder --rootcmd fakeroot kernel-image
avec un petit export CONCURRENCY_LEVEL=3 avant pour gagner un peu de temps à la compilation grace au bi-proc.
25/05/2005 23h40 : 40minutes de compil pour me dire qu'il y a une erreur, chouette... Bon, c'est char/drm/gamma qui est en cause, "3dlabs GMX 2000 (NEW)" qui dépend de DRM et BROKEN! à quoi bon gérer les dépendances si c'est pour accepter de compiler un truc BROKEN? Bon, allez, on s'énerve pas et on relance la compilation.
26/05/2005 00h30 : même problème avec ipmi. Bon, on désactive.
26/05/2005 07h20 : j'ai oublié l'option --initrd de make-kpkg, on recompile avec la bonne ligne de commande :
make-kpkg --revision 2005.05.26.novat --initrd --append-to-version gunpowder --rootcmd fakeroot kernel-image
26/05/2005 23h00 : le noyau 2.6.12-rc5 a reconnu la carte. Petit problème, je n'ai pas trouvé le fichier des fréquences pour l'émetteur de toulouse. J'ai tenté quelques scan avec les fichiers fr-Paris et autre, mais je n'ai à chaque fois que des "tuning failed!!!". Ça me semble normal vu que les fréquences ne doivent pas être les mêmes entre Toulouse et Paris. Par contre, je ne sais pas comment faire un scan complet, sur toute les fréquences. Il semble que mythTV sache le faire, mais pas de paquets debian donc je cherche une solution plus simple, genre une commande comme scan mais qui ne necessite pas de fichier en paramètre.
27/05/2005 23h00 : grace à un mail sur la mailing list linux-dvb [4], j'ai une commande permetant de génerer un fichier pour scanner toutes les fréquences avec la commande scan. Les chaînes sont bien reconnues, mais en copiant le fichier channels.conf généré dans $HOME/.mplayer/channels.conf, mplayer n'arrive pas à lire, voici l'erreur affichée :
dsb_tune, TUNING FAILED ERROR, COULDN'T SET CHANNEL 2: Failed to open dvb://M6
La solution m'a aussi été donné sur la mailing list : enlever l'option -o vdr du script de génération de fichier de scan. Et là, plus de problème, ça marche!
Les performances : sur mon bi-p3 500, regarder une chaîne prend environ 60% d'un processeur, sans filtre ni redimentionnement, avec une carte vidéo sans accélération matérielle. Pas trop mal, mais un filtre de désentrelacement est quand même indispensable pour lire le texte à l'écran. Pour l'enregistrement, là c'est plutôt impressionnant puisque qu'avec un simple mplayer -dumpstream, je suis à environ 3% du processeur! Vu que seul l'enregistrement m'interesse, le p2 266 est largement surdimentionné! Je vais faire quelques testes sur un P133 et un P166 pour voir si ça fonctionne. Par contre, un problème se pose : comment faire reconnaitre un disque de grande capacité (200Go) sur ce genre de machine? Faut-il imperativement passer par une carte contrôleur ide?
30/05/2005 21h00 : le grand test : enregistrement d'un film en entier. La ligne de commande est un simple mencoder -oac copy -ovc copy -idx -o star_wars_episode5.mpg. J'ai eu quelques framedrop les 13 premières secondes, maintenant c'est ok, reste à attendre la fin pour avoir le verdict.
30/05/2005 23h20 : l'enregistrement c'est déroulé sans problème, je l'ai terminé par un CTRL+C dans la fenêtre de mencoder. Quand je lis la video, l'image est belle même si on sent quand même un peu la compression MPEG2 (comme quand on compresse un DVD pour le faire rentrer sur un simple couche). Par contre, je n'arrive pas à sauter dans le fichier avec mplayer. Dès que j'utilise les touches « avancer d'une minute », « avancer de 10 minutes » ça plante, avec une erreur du genre video stream manquant (bug?). Il faudra que je teste avec l'option -endpos ou alors que j'utilise mplayer -dumpstream.
31/05/2005 23h00 : j'ai acheté une imprimante multifonction (epson CX3650) pour finir d'imprimer un dossier, et comme il faut mettre à jour gimpprint, me voila en plein dist-upgrade vers sarge. Après 2 heures de téléchargement et un bout de temps à accepter par-ci par-là les messages de configuration, l'imprimante marche. Impecable d'ailleurs! Pour info, j'ai utilisé cupsys et gimpprint, avec le driver pour la epson CX3200. L'impression est très lente en haute qualité, mais ça vaut la peine. Prochaine étape, configurer sane (je crois qu'il suffit d'ajouter le usb vendor id et usb device id dans un fichier de config). Ah oui, aussi, mettre la carte tnt sur un p133 pour voir si c'est assez puissant. Et installer aussi le repartiteur d'antenne, pour pouvoir regarder la télé dans le salon en enregistrant la TNT dans ma chambre.
03/01/2005 15h40 : je devrais acheter prochainement une carte décodeur mpeg2 matérielle (hollywood +). D'après le site dxr3.sf.net, la carte est supportée, et mplayer a un plugin de sortie pour l'utiliser : -vo dxr3. Je la testerai avec GeeXboX [5] qui la supporte d'office.
D'ailleur, serait-il interessant d'utiliser un livecd ou une installation dérivée de GeeXboX pour ma machine? Ce serait facile à mettre à jour et il ne manquerait pas grand chose pour mon projet, juste une petite adaptation des menus, les scripts de mise en veille ou d'extinction rapide et le partage de fichier...
m'écrire : busab@nerim.net
mardi 03 janvier 2006 à 15 heures 39