Buffalo PC-MV5L/PCIが使えた

恐らく今国内で一番入手し易いアナログキャプチャカードが、やっと正式にサポートされそう。
以前、やったときには国内で既存のドライバをhackして使えるようにした人が居たのだけど、今回はオリジナルの作者であるlinuvtv.orgの人が直接触って正式サポート。
コードはまだマージされていないので、linuxtv.orgのMercurialレポジトリからチェックアウトしてくる必要がある。あとは添付のREADMEを見ながら、configしてmake &&make install。既に2.6.25のv4lのコンポーネントからAPIが変更になっているため、関連するモジュールを総入れ替えする必要があったがそれ以外は既存のコンポーネントのままで動作した。
このカードが使っているCX23416というチップはある種のプログラマブルDSPみたいな物のようで、主記憶から作業領域をとってきたりファームウェアをダウンロードしてやらなければ動作しないとかかなり難物。お陰でMPEGのハードウェア圧縮が出来るカードのわりには安価で手に入るのだが。
また、このカードではシリコンチューナーチップであるXC2038というのを使っているが、こちらもインテリジェントな作りらしくファームウェアを供給する必要がある。ファームウェアの取得と設置については件のソースに含まれるv4l-dvb/linux/Documentation/video4linux/extract_xc3028.pl というスクリプトがやってくれる。
本家のツリーへのマージは2.6.26のマージウィンドウには間に合わなかったそうで、その更に次の2.6.27に入る予定とのこと。最悪そこまで待てば標準のカーネルでもサポートされるかと。

BUFFALO PC-MV5L/PCI PCast PCI対応ハードウェアエンコード M

BUFFALO PC-MV5L/PCI PCast PCI対応ハードウェアエンコード M

それにしてもLinuxカーネルのドライバ書いている人が分散していて探すのにノウハウが必要だな。今回も検索していてたまたまドライバ作者とハードウェアを持っている人のやりとりから発見できたが、こういうマイナーなドライバはlkmlで議論していないので下手をしたらマージされるまで気付かないところだ。
(2008/7/22 追記) linusブランチに当該コードが追加されていることを確認。このまま順調に行けば、2.6.27には含まれる予定。