Bt848 であそぶ

Access counter: since Fri May 8 10:48:09 JST 1998

Bt848 というチップを塔載したチューナ付きビデオキャプチャカードを 先日、秋葉原の A-Masterというショップで購入しました。 KOUWELL Key Vision KW-606 というやつで、税込みで 10,000 円と安かったです。 今はもうちょっと値上げされているらしい。

いろいろ苦労した結果、Linux の X(たぶん 16bpp 以上でないと動きません)で、 bttv というドライバと xawtv というソフトを使ってテレビが見れるようになったので、 忘れないうちにやったことを書いておきます。 KW-606 でなくても、 Bt848 を塔載しているカードなら動くのではないかと思います。

この WWW ページは随時更新中です。 ご指摘などありましたら takeshi@jsk.t.u-tokyo.ac.jp までよろしくお願いします。


サンプル

以下にてきとーに採取した root window の snapshot を示します。 サイズが大きいので注意。

snapshot1.jpg(296 KB)

snapshot2.jpg(296 KB)

snapshot3.jpg(304 KB)

snapshot4.jpg(344 KB)
KW-606 は 1ch の映りがわるいという話がありましたが、 特にそのような問題は起こりませんでした。

また、メモかわりにキャプチャしといた懸賞の応募画面を以下に示します (xawtv にそのような機能があります。結局、応募するのは忘れてしまいました(T_T))。


動作確認環境

自作 AT 互換機 #1

自作 AT 互換機 #2(参考)


xawtv の動かしかた

bttv ドライバのコンパイル

まず、 http://user.cs.tu-berlin.de/~kraxel/linux/xawtv-2.08.tar.gz をとってきて適当な場所に展開します。

この xawtv-2.08 の README によると、 いま配布されている bttv-0.5.6 では動かんといっているように見えたので、 xawtv-2.08 付属の bttv ドライバを使うようにしました。

なお以前試した xawtv-2.04 では、 Linux 2.0.33 では bttv-0.5.6 に含まれるドライバで、 また最近の Linux 2.1 ではカーネルに含まれている Video for Linux の bttv ドライバで うまく動いていました。

コンパイルするには、bttv というサブディレクトリに cd したあと、そこにある Makefile を書きかえ、 make するだけです。 /usr/src/linux 以下にカーネルコンパイル後のソースツリーがないと うまくいかないかもしれません。

KW-606 を使う場合、 Makefileで書きかえたのは先頭のほうの次の一箇所だけです。

#################################################
# config

# 0: Temic PAL tuner
# 1: Philips PAL_I tuner
# 2: Philips NTSC tuner
# 3: Philips SECAM tuner
# 4: no tuner
# 5: Philips PAL tuner
# 6: Temic NTSC tuner
# 7: Temic PAL tuner
TUNER=2
日本で使うなら 2 か 6 がたぶん正解だと思うのですが、 どちらで試しても動いてしまったのでよくわかりません。

/usr/src/linux/Rules.make を使っているせいか、 いろいろ妙なことをやられてエラーを吐いておわってしまいましたが、 モジュールができさえすればいいので、 僕は気にせずにできあがったモジュールを所定の場所にほうりこんで、 依存関係をチェックするだけで終わらせてしまいました。

# cp *.o /lib/modules/2.0.33/misc
# depmod -a

また、 linux-2.0.33.diff とかいう気になるファイルがあったのですが、 これは使わなくても平気そうでした。

xawtv-2.08 のコンパイル

まず、channel.c の最後にある巨大な表を書きかえます。 これには日本の放送周波数も含まれており、 その映像周波数に従った数値がきちんと書きこまれているのですが、 このまま使うとなぜかうまく映りませんでした。 これは KW-606 のみの現象なのかどうかはよくわかりません。

ともあれ試行錯誤の結果、 各々の数値に 7000 を加算してやるときれいに映るようになりました。 ただし、VHF の 1 チャンネルから 12 チャンネルまでしか 確かめておらず、UHF やケーブルテレビではどうなるかはわかりません。 どなたか試して僕に教えてください。

(6/18 追記: 松本さんという方が、 このへんの謎を解きあかして教えてくれました。 こちらのページをどうぞ)

とりあえず、VHF の部分だけを修正するパッチを用意しました。 これchannel.c のあるところに置いて

% patch < channel.c.diff
とすれば OK です。

準備ができたら、次のようにして make します。

% ./configure --with-bttv=$PWD/bttv
% make
これによって xawtv をはじめとする各種バイナリが作られます。

試す

バイナリができたら、とりあえず 16bpp 以上の X を立ち上げ、 root になってモジュールを組みこみ、 必要なリソースを X サーバに読みこませて試します。

# modprobe tuner
# modprobe bttv
# xrdb -merge Xawtv.ad
# ./xawtv
modprobe は、 モジュールを /lib/modules/... 以下にコピーした上で depmod -a を行っていないとうまくいきませんので注意。 最終的にモジュールの組み込み状況は次のような感じになります。

horologium# modprobe tuner
horologium# modprobe bttv
horologium# lsmod
Module         Pages    Used by
bttv               7            0
videodev           1    [bttv]  2
tuner              1            1
i2c                1    [bttv tuner]    0
sound             25            1 (autoclean)
psaux              1            1 (autoclean)
horologium#

xawtv の画面があらわれたら、 マウスのボタン 3 を押してメニューを出して、 TV Norm を NTSC にします。 アンテナが繋がっていれば、 Video Source を Television にし、 Frequency table を ntsc-bcast-jp にするとテレビ画面が映ります。 チャンネルはカーソルの↑か↓で変えられます。

インストール

Makefile を何もかきかえずに make install すると、 /usr/local/{bin,man} に各種バイナリ、 マニュアルページがインストールされ、 Xawtv.ad/usr/X11R6/lib/X11/app-defaults/Xawtv にコピーされます。

v4l-conf というプログラムは rootsetuid されるので注意。 このプログラムは X サーバの画面のサイズと depth をドライバに伝えるために 使われます。以前は明示的に実行する必要があったのですが、xawtv-2.08 では xawtv が勝手に実行するようです。

カスタマイズ

詳しくは xawtv(1) に全部書いてありますが、 ~/.xawtv というファイルに各種設定を書いておけます。

~/.xawtv :

source = Television
freqtab = ntsc-bcast-jp
norm = NTSC

[NHK General]
channel = 1

[NHK Education]
channel = 3

[NTV]
channel = 4

[TBS]
channel = 6

[FUJI]
channel = 8

[ASAHI]
channel = 10

[TOKYO]
channel = 12

[VIDEO]
source = Composite1

[SVHS]
source = SVHS
こうしておくと左クリックでチャンネルが選べるようになり便利です。


その他

僕は今は Millennium と Accelerated-X の組みあわせで使っていますが、 XFree86 3.3 には DGA という機能があり、 bttv ドライバは DGA が使えるときには DGA を使っています。 XFree86 で DGA を使うほうが、描画がスムーズに行われるように見えました。

サウンドカードを使えば、xawtv で チューナの出力からスピーカへの音量をコントロールすることもできます。 Bt848 ボードの出力をサウンドカードの LINE IN 端子に入力します。 KW-606 にはそのための短かい接続ケーブルが付属していました。 僕はこのマシンにはまともに動くサウンドカードをさしてないので、試してません。

だれか Windows NT 4.0 で動く Bt848 ドライバと TV ソフトを作ってください。 そしたらもう 1 枚買います。


Last modified: Thu Jun 18 18:50:01 1998