Linuxでの設定

■Video4Linuxを組み込んだカーネルの作成

 まず、/usr/src以下に、linux-2.2.12を展開します。次に、make mrpoperでお勧めの設定にした後に、make xconfigなどで、Video for Linuxとbttvを選びます。Bt848系以外のキャプチャデバイスを持っている方は、そちらを選択してもいいでしょう。Video4Linux関係は、moduleにしておいた方が後で引数を与えられるので便利です。
 また、サウンドデバイスの組み込みなど他に必要な変更も行います。後は、make depしてmake bzImageなどで新しいカーネルを作ります。


#cd /usr/src/linux
#make mrproper
#make xconfig          (X Window System)

カーネルの構築
#make dep           選択したコンポーネントに対して依存関係を構築
#make clean          依存関係に基づき余計なファイルを消去
#make bzImage           カーネル本体を構築

#cd /boot
#mv vmlinuz-2.2-13-10 vmlinuz-2.2-13-10.old
#mv System.map-2.2.13-10 System.map-2.2.13-10.old
#cp /usr/src/linux/arch/i386/boot/bzImage vmlinuz-2.2.13-10
#cp /usr/src/linux/System.map System.map-2.2.13-10

モジュールを構築
#make modules
#rm -rf /lib/modules/2.2.13-10.old
#mv /lib/modules/2.2.13-10/ /lib/modules/2.2.10.old
#make modules_install

■デバイスファイルの作成

 次に、アプリケーションからVideo4Linuxにアクセスするためのデバイスファイルを作成します。Video4Linuxでは、機能別に以下の名前でメジャー番号が81のキャラクタデバイスが必要です。

デバイス名 種類 マイナー番号
/dev/video ビデオキャプチャ 0--63
/dev/radio AM/FM ラジオ 64--127
/dev/vtx テレテキスト 192--223
/dev/vbi VBIデータ 224--225

/dev/MAKEDEVでサポートされていない場合は、各デバイスは以下のように作ります。

#cd /dev
#mknod video0 c 81 0
#ln -s video0 video

 また、kWinTVのソースの中には、Video4Linuxで利用するデバイスを作成するMAKEDEVが含まれていますので、こちらを利用するといいでしょう。


■新しいカーネルを起動してモジュールを読み込む

 カーネルが起動したら、Video4Linuxで必要なモジュールをロードします。オプションについては/usr/src/linux/Documentation/video4linux/bttv以下や、/usr/src/linux/drivers/char/以下のbttv.cやtuner.cを参照し、サポートされているカードとチューナ等を確認して必要に応じて設定します。

カード
0 default
1 MIRO
2 Hauppauge
3 STB
4 Intel???
5 Diamond DTV2000
6 AVerMedia TVPhone
7 Matrix Vision MV-Delta
8 Fly Video II
9 TurboTV
10 Newer Hauppauge (bt878)
11 MIRO PCTV pro
12 ADS Technologies Channel Surfer TV (and maybe TV+FM)
13 AVerMedia TVCapture 98
14 Aimslab VHX
15 Zoltrix TV-Max
16 Pixelview PlayTV (bt878)
17 Leadtek WinView 601
18 AVEC Intercapture
19 LifeView FlyKit w/o Tuner
チューナー
0 Temic PAL
1 Philips PAL_I
2 Philips NTSC
3 Philips SECAM
4 NoTuner
5 Philips PAL
6 Temic NTSC
7 TEMIC PAL_I
8 Temic 4036 FY5 NTSC
9 Alps HSBH1

 GV-BCTV-PCIの場合は以下のように設定します。

#insmod videodev
#insmod i2c scan=1 i2c_debug=0 verbose=0
#insmod tuner type=9 debug=0
#insmod bttv

 他のカードではtuner部を以下のようにします。

JTT-02: insmod tuner type=2 debug=0
Cr-50: insmod tuner type=8 debug=0

 lsmodでモジュールが組み込まれていることを確認し、dmesgでプローブ結果を確認します。debug=1にして組み込むと、より詳細な結果が表示されます。dmesgを確認すると以下のようにI2Cバス上にTVチューナが発見されています。

Linux video capture interface: v1.00
i2c: initialized (i2c bus scan enabled)
bttv0: 1 Bt8xx card(s) found.
bttv0: NO fader chip: TEA6300
bttv0: model: BT848(Miro)
o2c: scanning bus bt848-0: found device at addr=0xc2

カード認識のため"/etc/rc.d/rc.local"を以下のように追加修正する。

#Video CaptureTV Card
/sbin/insmod /usr/src/linux/drivers/char/videodev.o
/sbin/insmod /usr/src/linux/drivers/char/i2c.o scan=1 i2c_debug=0 verbose=0
/sbin/insmod /usr/src/linux/drivers/char/tuner.o type=2 debug=0
/sbin/insmod /usr/src/linux/drivers/char/bttv.o