ivtv driver (ITVC16-STVLP等対応版) インストールガイド 2003/10 T.Adachi 記 ■用意するもの 本家(http://ivtv.sourceforge.net/)にマージされる予定ですが, 10月現在,http://www.paken.org/linux/itvc16/ が玄人志向 ITVC16-STVLP,ITVC15-STVLP 対応版の公開元となります.こちら から,最新版のソースをダウンロードして下さい. ■make 環境整備 ドライバを make するためには,Video for Linux Two (V4L2)のパッチ を適用済の Kernel が動作している必要があるほか,i2c の 2.7.0 または 2.8.0 (注)がインストールされている必要があります. ・V4L2のKernelパッチダウンロード元 http://bytesex.org/patches/ ・i2cモジュールのダウンロード元 http://secure.netroedge.com/~lm78/download.html ・kernel ソースのダウンロード元 http://www.ring.gr.jp/archives/linux/kernel.org/kernel/ (お近くのringサーバへどうぞ) patch の当て方や,kernel の build 方法等はその手のドキュメント または書籍を参照して下さい.なお,ivtv ドライバのドキュメント には,『V4L2 の videodev2.h のヘッダファイルだけをコピーして…』 といった方法も書かれていますが,V4L2はきちんとインストールした 方が良いでしょう. 注) i2cモジュールは,2.8.0 と 2.7.0 は完全互換ではありません. ivtv driver のインストール時に問題になることがあります (例えば現在本家で公開されている tar ball で固められている ソースは,2.8.0 で make 不可).2.8.0 用のパッチが流れてい ますので,今から make しようとしているドライバがどのバー ジョンに対応しているかを確認した上で i2c モジュールをイン ストールした方が良いでしょう.(ちなみに私は 2.7.0 で動か しています) ■ファームウエアのインストール まず,ドライバをインストールする前に,MPEGハードウエアエン コーダのファームウエアをインストールする必要があります. 基本的に Windows 用にメーカーから提供されているドライバから ファームウエアを抽出する必要があるのですが,このためのプロ グラムとして,utilsディレクトリ以下に ivtvfwextract.pl が あります.Windows 用のドライバをダウンロード後,これを実行 します. Windows 用ドライバのダウンロード元: ・Win TV PVR-250 用ドライバ http://www.hauppauge.com/html/sw_pvr_250.htm ・Yuan MPG600/MPG160 用ドライバ (玄人志向のITVC16-STVLP/ITVC15-STVLP OEM元です) http://www.yuan.com.tw/downloads/DvdEncoder_V20/PCIdriver.zip カレントディレクトリにダウンロードしたファイルを置き, ./ivtvfwextract.pl と,実行して下さい.展開されたファームウエアは,/lib/modules 以下に ivtv-fw-enc.bin,ivtv-fw-dec.bin (それぞれエンコーダ用, デコーダ用ファームウエア)として保存されます. なお,Yuanのドライバを使用する場合は,ivtvfwextract.pl の 45行目〜47行目の $fw_driver_name = "hcwpvrp2.sys"; # for Yuan MPG600/MPG160 #$fw_driver_name = "p2driver.sys"; と,なっている部分を #$fw_driver_name = "hcwpvrp2.sys"; # for Yuan MPG600/MPG160 $fw_driver_name = "p2driver.sys"; に直してから実行して下さい. ちなみに PVR250 用のものの方が問題が少ないようですので,こち らを試し,うまく映像が撮れない場合は Yuan のものを試すと良い ようです. ■ドライバモジュールのインストール driver ディレクトリに移動し,make コマンドを叩けば,一通り モジュールが出来るはずです.ここで焦って make install せず, 以下の順でコマンドを実行し,出来たモジュールがきちんと動く かを確認しましょう. insmod i2c-core insmod i2c-algo-bit insmod msp3400.o insmod saa7115.o insmod tuner type=2 insmod videodev insmod ivtv.o debug=1 (1秒ほど待つとにプロンプトが帰って来る筈です) ※ivtv.o の debug 値は,例えば 3 等にするとより詳細なデバッグ ログが表示されます. dmesg でエラーなどが表示されていないかを確認してみてください. エラーが出ていない場合, cat /dev/video0 > hogehoge.mpg を実行するとMPEGファイルが作成可能です(終了は CTRL+C で). ただしこの場合,チャンネル設定がまだなされていませんので,砂の 嵐が記録されているかもしれません. エラーが出ないことを確認後,make install を実行し,正規の場所に モジュールをインストールし,depmod -a を実行して下さい. また,次回起動時にこれらモジュールを自動的に読ませるようにする ためには,/etc/modules.conf に以下の行を追加します. alias char-major-81 videodev alias char-major-81-0 ivtv options ivtv debug=1 options tuner type=2 options msp3400 once=1 simple=1 add above ivtv msp3400 saa7115 tuner なお,ivtv モジュールは,対応していないカードで実行した場合や 設定の不備があった場合,最悪読み込んだ瞬間にハングアップする 可能性もありますので,きちんと動作検証をしてから自動的に読み 込ませるように設定した方が良いでしょう. ■ユーティリティを使うための環境整備 チャンネルを変更したり,録画する解像度やビットレートを変更する ために,utils ディレクトリ以下の ptune.pl や record-v4l2.pl が 利用可能です.これらは Perl のスクリプトになっていますが,利用に 際して,若干 Perl module のインストールが必要になります. 必要なモジュールと入手元: ・Config-IniFiles  http://config-inifiles.sourceforge.net/ ・Video-Frequencies,Video-ivtv http://prdownloads.sourceforge.net/ivtv/ 環境によっては(?)必要になるモジュール: ・Video-Capture-V4l http://search.cpan.org/~mlehmann/Video-Capture-V4l-0.222/ ■録画の方法 基本的に /dev/video0 をリダイレクトすることにより,直接 mpeg2 形式のファイルに録画することができますが,チャンネル設定などは 別ソフトで操作する必要があります.そのために,前述の ptune.pl, record-v4l2.pl という2種類のスクリプトが同梱されています.大雑 把に説明すると,前者は設定変更のみ,後者は録画まで行って任意の ルールでディレクトリを作成してファイルに落す所まで行います. 詳しい使い方は README ファイルを読むか,コマンド実行時に"-h" オプションを付け,パラメータの一覧を読んでみてください. なお,日本国内のTV放送周波数に合わせてチャンネル切り替えを行う 場合,--freqtable ntsc-bcast-jp を設定する必要があります. 以下に,ptune.pl を使用して 2ch にチャンネル設定する例を示し ます. ./ptune.pl --channel 2 --freqtable ntsc-bcast-jp 後はスクリプトを組み,atやcron等を使用して予約録画を行えばOK です. 現在公開されている Web ベースの予約録画システムの大半は mencorder や vcr,ffmpeg を使用するものですが,何人かの方が 本ドライバを使用したソフト開発にトライしているようです. 朗報を待ちましょう.(私も時間ががあれば,簡単なフロントエンド を作りたいなー と,思っています)