bttvドライバ(Video for Linux)


bttvドライバ(Video for Linux)について

  • bttvは、Conexant社のビデオキャプチャチップセット「Bt8x8」を制御するドライバで、Linuxカーネルの2.2.0以降にはあらかじめ組み込まれています。Linuxにおけるビデオキャプチャー等の制御インタフェースは、video4linux APIとして標準化されており、bttvはそのAPIを提供します。

  • Red Hat Linux 7.1(カーネル2.4.2-2)には、bttvドライバVer0.7.57が組み込まれています。(dmesgで確認)

  • 今回は、「Bt878」を搭載しているIOデータのTVチューナー&ビデオキャプチャボードGV-BCTV4/PCIを使用して、TV表示機能を実現しました。また、このボードではTVチューナとして、「ALPS TCSH6」を使用しています。


bttvドライバモジュールの確認

  • まず、ドライバモジュールが存在する事を確認します。次の様に表示されれば、Video for Linuxが使用できる状態になっています。

    $ /sbin/modprobe -l bttv.o
    /lib/modules/2.4.2-2/kernel/drivers/media/video/bttv.o
    $ /sbin/modprobe -l tuner.o
    /lib/modules/2.4.2-2/kernel/drivers/media/video/tuner.o
    $ /sbin/modprobe -l videodev.o
    /lib/modules/2.4.2-2/kernel/drivers/media/video/videodev.o
    


/etc/modules.confの設定

  • 「/usr/src/linux-2.4.2/Documentation/video4linux/bttv/」にある以下の付属ドキュメントを参考にして設定します。

    Modules.conf・・modules.confの雛型
    CARDLIST・・対応しているボード/チューナのリスト

  • modules.confの雛型の最後の2行を、使用しているビデオキャプチャボードに合わせて変更します。cardについては、GV-BCTV4に対応するものが無いので、一つ前のGV-BCTV3として「49」を設定しています。チューナは、「ALPS TCSH6」に合わせて「15」を設定します。

    【/etc/modules.conf】
    (以下を追加)
    # i2c
    alias char-major-89     i2c-dev
    options i2c-core        i2c_debug=1
    options i2c-algo-bit    bit_test=1
    # bttv
    alias char-major-81     videodev
    alias char-major-81-0   bttv
    pre-install bttv        modprobe -k msp3400; modprobe -k tuner
    options bttv    card=49   <--BCTV3として設定
    options tuner   type=15   <--ALPS TCSH6を設定
    


bttvドライバの組み込み確認

  • 再起動後に、lsmodコマンドで、関連モジュールがロードされている事を確認します。

    $ /sbin/lsmod
     .
     .
    bttv                   59888   0  (autoclean)
    tuner                   4240   1  (autoclean)
    msp3400                13520   0  (autoclean) (unused)
    i2c-algo-bit            7328   1  (autoclean) [bttv]
    i2c-core               13408   0  (autoclean) [bttv tuner msp3400 i2c-algo-bit]
    videodev                5024   2  (autoclean) [bttv]
     .
     .
    

  • dmesgコマンドで、bttvによるハードウェアの認識状態を確認します。私の場合は、以下の様になりました。

    $ dmesg | more
     .
     .
    Linux video capture interface: v1.00
    i2c-core.o: i2c core module
    i2c-algo-bit.o: i2c bit algorithm module
    i2c-core.o: driver i2c msp3400 driver registered.
    i2c-core.o: driver i2c TV tuner driver registered.
    bttv: driver version 0.7.57 loaded                   <--ドライバVer0.7.57
    bttv: using 2 buffers with 2080k (4160k total) for capture
    bttv: Bt8xx card found (0).
    bttv0: Bt878 (rev 17) at 00:0d.0, irq: 9, latency: 32, memory: 0xe1000000
    bttv0: subsystem: 10fc:4080 (UNKNOWN)
    bttv0: model: BT878(GV-BCTV3) [insmod option]
    i2c-algo-bit.o: Adapter: bt848 #0 scl: 1  sda: 1 -- testing...
    i2c-algo-bit.o:1 scl: 1  sda: 0 
    i2c-algo-bit.o:2 scl: 1  sda: 1 
    i2c-algo-bit.o:3 scl: 0  sda: 1 
    i2c-algo-bit.o:4 scl: 1  sda: 1 
    i2c-algo-bit.o: bt848 #0 passed test.
    tuner: chip found @ 0x60
    bttv0: i2c attach [Alps TSCH6]
    i2c-core.o: client [Alps TSCH6] registered to adapter [bt848 #0](pos. 0).
    i2c-core.o: adapter bt848 #0 registered as adapter 0.
    bttv0: i2c: checking for TDA9875 @ 0xb0... not found
    bttv0: i2c: checking for TDA7432 @ 0x8a... not found
    bttv0: PLL: 28636363 => 35468950 ... ok
    bttv0: PLL: switching off
    tuner: TV freq out of range
    tuner: TV freq out of range
    bttv0: PLL: 28636363 => 35468950 ... ok
    bttv0: PLL: switching off
    tuner: TV freq out of range
     .
     .
    


トップへもどる


Copyright (c) 2001 Hiroshi Nakamura. All rights reserved.