web-dev-qa-db-fra.com

Comment puis-je installer une carte Hauppauge WinTV HVR1110 dans Ubuntu 16.04?

J'ai une carte tuner analogique/numérique Hauppauge WinTV-HVR-1110 (un peu ancienne, mais elle fonctionne toujours). Je ne l'utilisais pas depuis des années, mais je me souviens d'environ Ubuntu 10.04, cela fonctionnait bien sous Linux. Je l'ai récemment déterré et je veux l'utiliser pour enregistrer des cassettes VHS avec mon ancien magnétoscope.

J'ai trouvé un guide du HVR-1110 sur le site LinuxTV . Mais, il a été écrit pour 14.04 et dit de courir (entre autres commandes):

Sudo apt-get install linux-firmware-nonfree

Ce qui ne marche pas pour moi le 16.04. Il n'y a plus de paquet linux-firmware-nonfree. Il semble que cela ait été retiré des dépôts.

Comment puis-je installer et utiliser la carte tuner en 16.04?

1
seanlano

Je l'ai compris, principalement à partir de lien précédent vers la page LinuxTV mais avec quelques étapes modifiées.

Remarque: Il s'agit spécifiquement de la carte HVR-1110 - mais cela peut probablement s'appliquer à d'autres types similaires de cartes tuner.

1. Installez physiquement la carte

Bien évidemment, la carte doit être installée dans le slot PCI de votre machine. Assurez-vous de l'éteindre avant de le faire.

J'aime aussi allumer le PSU au niveau de son commutateur, mais laisser le câble lui-même branché. Cela devrait théoriquement signifier que la terre est toujours connectée mais que le courant ne peut pas être alimenté. Vous voudriez que la terre soit connectée afin de réduire les risques de friture avec une charge statique.

2. Testez le pilote saa7134

Le pilote saa7134 devrait être chargé automatiquement, vous pouvez le vérifier avec:

$ Sudo modprobe -r saa7134

Ce qui devrait rendre:

modprobe: FATAL: Module saa7134 is in use.

Ce message d'erreur indique que le module a déjà été chargé (et ne peut pas être rechargé), indiquant que le module est disponible.

Exécutez la commande suivante pour valider que la carte WinTV HVR-1110 a été enregistrée en tant que périphérique:

$ Sudo dmesg | grep "saa"

Ce qui devrait donner quelque chose de similaire à

[    4.061052] saa7134: saa7130/34: v4l2 driver version 0, 2, 17 loaded
...
[    4.061175] saa7134: saa7133[0]: subsystem: 0070:6700, board: Hauppauge WinTV-HVR1110 DVB-T/Hybrid [card=104,autodetected]
...
[    8.890761] saa7134 0000:06:01.0: DVB: registering adapter 0 frontend 0 (Philips TDA10046H DVB-T)...
[   14.099329] saa7134 0000:06:01.0: Direct firmware load for dvb-fe-tda10046.fw failed with error -2
[   14.099338] saa7134 0000:06:01.0: Direct firmware load for dvb-fe-tda10045.fw failed with error -2

Ici, nous pouvons voir que le système recherche le fichier dvb-fe-tda10046.fw, mais ne le trouve pas.

Si vous utilisez une carte légèrement différente, la sortie ci-dessus peut vous donner une idée du fichier dont vous avez besoin. Vous pouvez modifier l’étape suivante pour vous donner le fichier dont vous avez besoin à la place de celui du HVR-1110.

3. Téléchargez le paquet linux-firmware-nonfree

Le paquetage linux-firmware-nonfree ne se trouve plus dans les dépôts, je ne sais pas trop pourquoi, mais j'ai lu quelque chose qui suggérait qu'il pourrait être incompatible avec les versions plus récentes du noyau. Donc, nous ne voulons probablement pas installer le paquet entier lui-même. Heureusement, nous n’avons besoin que d’un seul fichier de micrologiciel - nous ne pouvons donc installer que cela.

Récupérons le paquet dans une archive Launchpad et extrayons le fichier dvb-fe-tda10046.fw.

cd ~/Downloads
wget http://launchpadlibrarian.net/182181877/linux-firmware-nonfree_1.16_all.deb
ar p linux-firmware-nonfree_1.16_all.deb data.tar.xz | unxz | tar x ./lib/firmware/dvb-fe-tda10046.fw --strip-components=3 

Copions maintenant le fichier du micrologiciel là où il doit être:

Sudo cp dvb-fe-tda10046.fw /lib/firmware

Maintenant, nous pouvons le supprimer de notre dossier de téléchargements

rm dvb-fe-tda10046.fw

4. Redémarrage

Vous devrez redémarrer à ce stade.

Une fois la sauvegarde effectuée, vous devriez pouvoir l'exécuter et voir que le micrologiciel est chargé:

$ Sudo dmesg | grep "tda1004x"
[    9.134105] tda1004x: setting up plls for 48MHz sampling clock
[   11.534099] tda1004x: timeout waiting for DSP ready
[   11.594099] tda1004x: found firmware revision 0 -- invalid
[   11.594100] tda1004x: trying to boot from eeprom
[   13.982081] tda1004x: timeout waiting for DSP ready
[   14.082077] tda1004x: found firmware revision 0 -- invalid
[   14.082079] tda1004x: waiting for firmware upload...
[   33.314053] tda1004x: found firmware revision 29 -- ok

Succès! Cela devrait maintenant être tout ce dont vous avez besoin pour installer la carte. Vous pouvez utiliser n’importe quel outil DVB de votre choix pour numériser et syntoniser les émissions télévisées. Je ne répéterai pas les nombreux guides disponibles à cet effet, mais vous pouvez commencer ici .

Bonus: enregistrement analogique

Je voulais spécifiquement enregistrer à partir de l'entrée analogique. Il m'a fallu un peu de bricolage pour enfin comprendre, alors je vais partager la commande qui a fonctionné pour moi avec le HVR-1110.

Tout d’abord, TVTime était très utile pour visualiser l’entrée analogique du syntoniseur, donc installez-le avec:

Sudo apt install tvtime

Ensuite, vous pouvez simplement exécuter TVTime à partir du tableau de bord, vous devriez pouvoir sélectionner "Composite1" comme entrée.

Pour enregistrer, j'ai essayé plusieurs choses mais j'ai trouvé que cela fonctionnait assez bien:

Sudo Nice --10 mencoder tv:// -v -tv driver=v4l2:norm=PAL:width=720:height=576:outfmt=uyvy:device=/dev/video0:input=1:fps=25:buffersize=500:alsa:amode=1:forcechan=2:audiorate=48000:adevice=plughw.SAA7134:forceaudio:immediatemode=0 -ovc raw -vf format=uyvy -aspect 4:3 -noautoexpand -oac pcm -o /home/sean/Videos/VCR4.avi 

Vous aurez besoin de mencoder installé.

Cela videra un fichier vidéo uyvy brut, qui pourra être lu dans VLC mais ne sera pas compressé. Cela prendra beaucoup d’espace disque (le mien a utilisé environ 1 Go par minute). Vous devrez ensuite utiliser votre choix de codec pour le compresser, vous pouvez le faire avec ffmpeg. Il serait également possible d’encoder directement avec mencoder si vous préférez.

1
seanlano