UNIXな生活
更新:2004/7/30  
Linuxな生活  FreeBSDな生活
 Solarisな生活
 JAVAな生活
 Practical use
 掲示版
テレビキャプチャカードの設定

 TVキャプチャカードもLinuxで動く物が増えて来て、Linuxでテレビ視聴や録画をする環境がだいぶ整って来ました。
 で、今回は、Linuxでテレビを見るための環境整備についてです。

 Linuxで使えるTVキャプチャカード
 LinuxでTVキャプチャカードを使う条件
 LinuxでTVキャプチャボードを利用するには、LinuxKernelでvideo4linux(V4L)モジュールが有効になっている必要があります。
 V4Lでサポートするのは、FUSION 878A系チップを搭載したカードで、これらはbttvドライバで動作します。
 最近は、SAA7130、SAA7134などのチップを搭載したTVキャプチャカードも利用できますが、これらは、V4Lの改良版であるvideo4linux2(V4L2)でサポートされています。kernelをV4L2に対応させるには、http://linux.bytesex.org/v4l2/にあるkernelパッチを適用しkernelを作成する必要があります。この上でさらに、利用したいTVチューナカードのドライバモジュールをインストールします。
 ただし、最近のディストリビューションではV4L2パッチの適用されたkernelパッケージが配布されているのが一般的です。含まれているドライバモジュールは、ディストリビューションによってまちまちですので、もし自分の利用したいドライバモジュールが含まれていなければ、http://linux.bytesex.org/v4l2/からドライバモジュールソースを入手しインストールします。

 V4L2用ドライバモジュールのインストール
 ディストリビューションに利用したいドライバが含まれていない場合は、http://linux.bytesex.org/v4l2/から利用したいドライバを入手しインストールします。
 ドライバをインストールするには、利用しているkernelのソースが必要ですので、kernelソースパッケージなどからインストールしてください。
 以下ドライバのインストール手順を簡単に示します。
mkdir ~/work
tar zxvf saa7134-0.2.11.tar.gz -C ~/work
cd ~/work/saa7134-0.2.11
make KDIR=/usr/src/linux
su
make install

 TVキャプチャカードの選び方
 本題のTVキャプチャカードですが、googleでLinuxの利用実績のあるキャプチャカードを探すのが最も賢明です。最初から動く事が分かっていれば苦労はかなり少なくて済みます。
 Linuxで利用できるTVキャプチャカードは、おもに以下のチップを利用した物があります。
 Conexant Systems FUSION 878A
 Philips Electronics SAA7130、SAA7134
 それと、まだまだ動く可能性は低いですが、最新のkernelには、cx8800なんてのも加わってるようです。
 FUSION 878Aを搭載したキャプチャカードの多くは、利用できる可能性が高いです。

 LinuxでTVキャプチャカードを動作させるには、Linuxのモジュールが対応している必要があります。これには、V4L(Video4Linux)と改良版のV4L2(Video4Linux2)があります。
 SAA7130,SAA7134を利用する場合はV4L2が必要です。
 V4Lはほとんどのディストリビューションで含まれていると思います。V4L2利用するには、カーネルV4L2パッチが適応されている必要がありますが、最近のディストリビューションでは標準で利用場合がほとんどです。

 私が利用しているのは、IO DATAのGV-BCTV5/PCIで、これはFUSION 878Aのチップを搭載しています。これはV4Lでも利用できています。IO DATAのこの系統のキャプチャカードは結構動くみたいです。
 SAA系搭載カードでは、玄人指向から安価なものが出回っています。これらの中から、Googleで動作実績のあるものを探してください。

 TVキャプチャカードの設定
 TVキャプチャカードが入手できたら、早速取り付けてLinuxを起動してみましょう。最近のディストリビューションは何らかの自動モジュールロード機能(kudzuやDiscoverなど)を持っていますので、ある程度の自動認識が可能です。
 しかし、自動でロードされるモジュールは残念ながら最適とはいいがたい場合がほとんどです。そこで、ここではTVキャプチャカードにあわせたモジュールの設定をおこないます。

 TVキャプチャカードのモジュール指定には、カード番号とチューナ番号を指定します。Googleなどで動作実績を探すと、カードごとの設定情報が入手できる場合があります。
 もし自分で探すのなら、kernel-sourceパッケージやkernel-docパッケージををインストールしてください。TurboやSuSEなどではrpm形式で配布されていますし、Debianでもパッケージで配布されています。
 kernelソースパッケージをインストールすると、/usr/src以下に展開されます。(Debianでは、自分で展開してください)。展開されたソースの中の、/usr/src/linux/Documentation/video4linux/bttv/辺りに、CARDLISTのファイルがあるはずです。(デイストにより異なります)
 CARDLISTファイルにCARD番号とカードの型番のリストが示されています。tunerの情報も入手できます。もしこの中に合致する物が無ければ、類似するものを選んでも動く場合があります。
 自前でV4L2のドライバをインストールした場合は、そのソースアーカイブのなかにCARDLISTファイルが含まれているはずです。
 例えば、IO DATA GV-BCTV5/PCIは、CARDLIST中に以下のように記述されています。
bttv.o
------------------------- 中略 -----------------------------
card=80 - Hauppauge WinTV PVR
card=81 - GV-BCTV5/PCI  <----これ
card=82 - Ospery 100/150 (878)

tuner.o
------------------------- 中略 -----------------------------
type=1 - Philips PAL_I (FI1246 adn compatibles)
type=2 - Philips NTSC (FI1246 adn compatibles)  <----これ
type=3 - Philips (SECAM+PAL_BG) (FI1216MF,FM1216MF,FR1216MF)
IO DATA GV-BCTV5/PCIでは、CARD番号は"card=81"で、Tunerは"type=2"を利用しますので、これをモジュールのオプションに設定します。
カードやチューナ番号は、いろいろ試してきれいに写る物を探してください。
その際、手動でモジュールをロードする場合は、以下のようにしてくだしい。
modprobe bttv card=81
modprobe tuner type=2
*ロードモジュールの確認は、lsmodで。
*アンロードするには、rmmodで。
一番良い設定が見付かったら起動時に自動でロードされるように設定します。

モジュールの設定はディストリビューションによってさまざまですが、TurboやFedora(RedHat)では、/etc/modules.confで行います。
Debianでは、/etc/modutils/bttvファイルを作成します。例はこちら
SuSEやYsSTからGUIで設定可能です。例はこちら
ここでは、TurboやVine、Fedoraでの設定を紹介します。

TurboやVine、Fedora(RedHat含む)では、/etc/modules.confにロードするモジュールの設定を記述します。
先程のIO DATA GV-BCTV5/PCIの例では、以下のようになります。
alias char-major-81 videodev
alias char-major-81-0 bttv
options bttv card=81
options tuner type=2
これで再起動後も適切なモジュールがロードされるようになります。


次回は、テレビを視聴するソフトのxawtvとtvtimeの設定方法などをご紹介します。



Producted by Tomoya Sakurai