PK-UG-X024.patch for bttv-0.9.15

先日、秋葉原をふらついているとjunkのTVキャプチャカードが1,000円で落ちていました。現在、我が家 ではαデータのTVK-401が元気良く稼働しており、TVキャプチャカードはけっこう使えるなという印象もあり、 二枚目を買ってみることにしました。ちょっと相場より安いのが不安でしたが、まともに動いたようです。

このカードは、NEC SmartVision PK-UG-X024 Fusion 878Aで、一見、ありがちなものに見えますが、そこは NECで落し穴があります。このカード、様々なキャプチャカードを集めた bttv-galleryにも掲載されておらず、純国産の潔癖さが窺えます。とは言え、所詮、Bt8x8のカードなので、 bttv card=99 tuner=15で使用が可能です。これでも、ちゃんとステレオで再生され、モノラルのTVK-401よりも ちょっとだけ高性能です。問題と言えば、音声多重がステレオ決め打ちになってしまうこととComposite1では音声入力が死ぬことぐらいで、その程度 のことは気にしないのが一番です。

そんなワケで、別に二ヵ国語放送を聴く機会などないし、Composite1なんて使わないし、と思っていたのですが、世の中 は広いもので、このSmartVisionの 音声多重制御用GPIO値を手探りで調べあげた偉い人がいらっしゃいまして、そういうものがあるのならばと それを利用させていただくことにしました。この場を借りて深く感謝いたします。これで、ちゃんと音声多重に 対応することができました。

PK-UG-X024.patch

このパッチは、bttv-0.9.15用に作成されており、Vine Linux 3.1のkernel-2.4.27-0vl7.2で検証されています。 パッチのあてかたは、

cp PK-UG-X024.patch /usr/src
cd /usr/src
patch -p0 < PK-UG-X024.patch
cd linux
make menuconfig
make dep;make clean
make bzImage
make modules
make modules_install

後は、できあがった/usr/src/linux/arch/i386/boot/bzImageでbootするようにすればおしまいです。ちなみ にmoduleだけ作り直しても大丈夫でした。

このパッチは、PK-UG-X024用の各エントリを単純に付加しただけのものなので、versionが上がって、 エントリ数が変わった時でも、単に各エントリをずらす程度で対応できると思います。現状の各ナンバーは、 card=121、tuner=48です。もちろん自動認識するので、modprobe時の指定は不要です。

bttv0: Bt878 (rev 17) at 00:0e.0, irq: 11, latency: 64, mmio: 0xea10a000
bttv0: detected: NEC SmartVision [card=121], PCI subsystem ID is 1033:80bb
bttv0: using: PK-UG-X024 [card=121,autodetected]
bttv0: enabling ETBF (430FX/VP3 compatibilty)
bttv0: gpio: en=00000000, out=00000000 in=00ffffff [init]
bttv0: using tuner=48
bttv0: i2c: checking for TDA9875 @ 0xb0... not found
bttv0: i2c: checking for TDA7432 @ 0x8a... not found
tuner: chip found at addr 0xc0 i2c-bus bt878 #0 [sw]
tuner: type set to 48 (Alps TSCH4) by bt878 #0 [sw]
bttv0: registered device video0
bttv0: registered device vbi0
bttv0: PLL: 28636363 => 35468950 .. ok

このパッチの不具合について

このパッチをあてると、PK-UG-X024は、modprobe bttvで自動認識され、tuner.oも自動的に読み込まれる ようになり、音声多重の切り換えも可能になりますが、bttvドライバは、音声多重の切り換えが実行された ことを認識することができないようです。bttvドライバは、音声多重の切り換えが行われても、常にその 状態はmonoであると認識してしまいます。実際問題としては、bttvの情報から判断して挙動を変えるソフトに は、PK-UG-X024は常にmonoであると認識されてしまいます。例えば、何も指定せずにmencoderで録画すると 実際にはステレオ音声であったとしても、その音声はモノラルで録画されてしまいます。というわけで、 mencoderの場合などは、ステレオで録画したいときは、amodeで強制的にハードの状態を教えてやる必要が あります。以下は、amode=1ステレオの場合です。

mencoder tv:// -tv driver=v4l2:device=/dev/video0:normid=1:amode=1 -ovc divx4 -oac pcm -o hoge.mpg -endpos 60


最終更新日 2005月1月24日
yoshino@rita.karing.jp

index.html  一つ戻る