web-dev-qa-db-ja.com

Ubuntu 16.04にHauppauge WinTV HVR1110カードをインストールするにはどうすればよいですか?

Hauppauge WinTV-HVR-1110アナログ/デジタルチューナーカードを持っています(現在は少し古いですが、まだ動作しています)。私は何年も使っていませんが、Ubuntu 10.04がLinuxでうまく機能したことを思い出します。私は最近それを掘り起こし、それを使って古いVCRを通していくつかのVHSカセットを記録したいと思っています。

LinuxTVサイトのHVR-1110のガイド を見つけました。しかし、それは14.04向けに書かれており、実行するように指示されています(他のコマンドの中で):

Sudo apt-get install linux-firmware-nonfree

16.04では機能しません。パッケージlinux-firmware-nonfreeはもうありません。リポジトリから削除されたようです。

16.04でチューナーカードをインストールして実行するにはどうすればよいですか?

1
seanlano

私はこれを、主に LinuxTVページへの前のリンク に基づいて、しかしいくつかの修正されたステップを使用して、理解しました。

注:これはHVR-1110カード専用です-しかし、おそらく他の同様のタイプのチューナーカードに適用できます。

1.カードを物理的にインストールします

明らかに、カードはマシンのPCIスロットにインストールする必要があります。これを行う前に、必ずオフにしてください。

スイッチでPSUをオフにすることも好きですが、ケーブル自体は接続したままにします。これは、理論的には、アースはまだ接続されているが、電源が入らないことを意味します。静電気で何かを揚げる機会を減らすために、地球を接続したいでしょう。

2. saa7134ドライバーをテストする

Saa7134ドライバーは自動的にロードされます。これは次の方法で確認できます。

$ Sudo modprobe -r saa7134

どっちがお返ししますか:

modprobe: FATAL: Module saa7134 is in use.

このエラーメッセージは、モジュールが既にロードされており(再ロードできない)、モジュールが使用可能であることを示しています。

次のコマンドを発行して、WinTV HVR-1110カードがデバイスとして登録されたことを検証します。

$ Sudo dmesg | grep "saa"

似たようなものを与える必要があります

[    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

ここでは、システムがdvb-fe-tda10046.fwファイルを探しているが、見つからないことがわかります。

わずかに異なるカードを使用している場合、上記の出力は必要なファイルに関する手がかりを与えるかもしれません。次の手順を変更して、HVR-1110の代わりに必要なファイルを提供できます。

3. linux-firmware-nonfreeパッケージをダウンロードします

linux-firmware-nonfreeパッケージはもうリポジトリにありません。なぜかはわかりませんが、新しいカーネルバージョンと互換性がない可能性があることを示唆する記事を読みました。したがって、おそらくパッケージ全体をインストールするのは望ましくありません。幸いなことに、そこから1つのファームウェアファイルが必要なだけなので、それだけをインストールできます。

Launchpadアーカイブからパッケージを取得し、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 

次に、ファームウェアファイルを必要な場所にコピーします。

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

これでダウンロードフォルダから削除できます

rm dvb-fe-tda10046.fw

4.再起動

この時点で再起動する必要があります。

バックアップした後、これを実行してファームウェアがロードされたことを確認できるはずです。

$ 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

成功!これで、カードをインストールするのに必要なすべての操作が完了しました。好きなDVBツールを使用して、テレビ放送のスキャンと調整を行うことができます。これについては、多くのガイドは繰り返しませんが、ここでは ここから始められます です。

ボーナス:アナログ録音

特にアナログ入力から録音したかった。最終的にこれを理解するのに少し手間取ったので、HVR-1110で機能していたコマンドを共有します。

まず、TVTimeはチューナーへのアナログ入力を表示するのに非常に役立ちました。そのため、以下をインストールします。

Sudo apt install tvtime

ダッシュからTVTimeを実行するだけで、入力として「Composite1」を選択できるはずです。

記録するために、いくつかのことを試してみましたが、これで十分に機能することがわかりました。

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 

mencoderがインストールされている必要があります。

これにより、生のuyvyビデオファイルがダンプされ、VLCで再生できますが、圧縮されません。これは多くのディスク容量を占有します(1分あたり約1 GBが使用されます)。次に、選択したコーデックを使用して圧縮する必要があります。ffmpegでこれを実行できます。必要に応じて、メンコーダーで直接エンコードすることもできます。

1
seanlano