Linuxでテレビ録画を行なう方法は、多くの Web ページで紹介されているが、 ビデオキャプチャ カードによっては、 Linux カーネルのバージョンが変わると一筋縄にはいかなかったりするので、 現時点での Linux カーネル安定版の最新バージョン 2.6.16.19 で、 I-O DATA 製 ハードウェア MPEG-2 エンコーダ搭載TVキャプチャボード GV-MVP/RX2Wを使う方法をメモ (2.6.24.4 で使う方法)。
まず、 LinuxTVプロジェクトから V4L ドライバの最新版を取得する。 Mercurial (a fast, lightweight Source Control Management system) が インストール済であれば、
hg clone http://linuxtv.org/hg/v4l-dvb
を実行する。Mercurial が無い場合は、 MASTER v4l-dvb development repository から最新版を選んで「tree」をクリックし、 「gz」ないし「bz2」をクリックして tar ball をダウンロード。
そのまま make install
してインストールしてもよいが、
make release VER=2.6.16.19
などと実行して、
現在使っているカーネルとは別のカーネルへインストールすることもできるし、
make menuconfig
を実行して
インストールするモジュールを選択してもよい。
私は、以下のモジュールのみ make した:
Multimedia devices ---> Video Capture Adapters ---> V4L USB devices ---> Hauppauge WinTV-PVR USB2 support
# Hauppauge 以外でも tveeprom.ko を用いるドライバであれば何でもよい
次に、ぱ研「LinuxでITVC16-STVLP」の ページに登録されている 0.6_svn3233-paken060421.tar.gz をダウンロード。 これをそのまま make すると version_check でひっかかるので、 Makefile の一行目を、
all clean install: version_check
となっているのを
all clean install:
に変更して make install
する。
make KVER=2.6.16.19 install
などと実行して、
現在使っているカーネルとは別のカーネルへインストールすることもできる。
/etc/modprobe.conf に以下の行を追加:
alias char-major-81 videodev alias char-major-81-0 ivtv alias char-major-81-1 ivtv options ivtv ntsc=j tuner=46,46
チューナの video standard の設定を変更すると、 正しい選局ができなくなるようなので、 チャンネルを設定するプログラム等で video standard の設定を行なわないようにしておく必要がありそう。
私は録画 perl スクリプトを 自作して使っている (Video::ivtv & Video::Frequencies が必要)。
senri:/home/sengoku % tv -h Unknown option: h Usage: tv <opt> opt: -x ; xine -X ; mplayer YUV -u ; ptune-ui -P <port> ; TV server (http) -U <host>:<port> ; (udp) -c <channel> ; change channel -f <freq> ; chage frequency -l ; input from S-Video -r <sec> ; mpeg to stdout -o <file> ; to file -t <time> ; record at <time> -j ; start at 0 sec -0 ; use video0 -1 ; use video1 -v ; verbose
このスクリプトは予約録画 (-t オプション) もサポートしている他、
tv -P 1234
などと実行すると、
TVサーバとして利用することもできる。
つまり LAN 内の任意のマシンで、
VLC media playerを使って
http://senri:1234/?c=1
などとチャンネル指定付で tv サーバへ接続し、
TVを視聴できる。
貴重な情報ありがとうございます。
Debian の sid 環境 (2.6.16.19) で試してみました。すると、
# modprobe ivtv ntsc=j
FATAL: Error inserting ivtv (/lib/modules/2.6.16.19/ivtv/ivtv.ko): Unknown symbol in module, or unknown parameter (see dmesg)
となり、dmesg の出力は、
ivtv: Unknown symbol release_firmware
ivtv: Unknown symbol request_firmware
ivtv: Unknown symbol tveeprom_read
ivtv: Unknown symbol tveeprom_hauppauge_analog
となっています。ファームウェア関連のファイルは、
/usr/lib/hotplug/firmware# dir
v4l-cx2341x-dec.fw v4l-cx2341x-init.mpg v4l-pvrusb2-24xxx-01.fw
v4l-cx2341x-enc.fw v4l-cx25840.fw v4l-pvrusb2-29xxx-01.fw
のように配置してあります。
何か小生がミスしているのでしょうか?
Comment by denson — 2006年7月30日 @ 05:04
ご存知かもしれませんが、Unknown symbol というエラーメッセージは、モジュールをロードしようとした際、必要とする関数が見つからなかった(ために、ロードに失敗した)という意味です。つまり ivtv 固有の話ではなくて、Linux カーネル一般の問題です。おそらく必要なモジュールがインストールされていないのでしょう。
release_firmware 等の関数は、firmware_class.c つまり firmware_class.ko モジュールで定義されている関数です。このモジュールをインストールするには、「Userspace firmware loading support」を選択する必要があります。
また、tveeprom_read は tveeprom.ko モジュールで定義されている関数ですね。本記事でも書いたように Hauppauge など tveeprom.ko モジュールを用いるドライバを選択してください。
# もちろん、モジュールとしてインストールする代わりにカーネルに組み込んでも構いません
Comment by 仙石浩明 — 2006年7月30日 @ 23:11
ビデオキャプチャ・カード GV-MVP/RX2W を使って Linux 2.6.22.10 でテレビ録画
Linux でテレビ録画を行なう方法は、
多くの Web ページで紹介されているが、
ビデオキャプチャ・カードによっては、
Linux カーネルのバージョンが変わると一筋縄にはいかなかったりするので、
現時点での Linux カーネル安定版の最新バージョン 2.6.22.10 で、
I-…
Comment by 仙石浩明の日記 — 2007年10月15日 @ 07:14