カーネルに標準で入っているPT1ドライバを使ってみる
dvb 版ドライバ。
動作確認中なので詳しくは書けないのだけれど…
カーネル
いれてみたバージョン。カーネルのバージョンが妙に新しいのは、 RADEON の都合上最新をおっかけていれているため。 PT2 を使うだけならもっと古い安定したやつでいいと思う。
$ uname -r 2.6.35-gentoo
設定箇所。
CONFIG_DVB_PT1: Support for Earthsoft PT1 PCI cards. Since these cards have no MPEG decoder onboard, they transmit only compressed MPEG data over the PCI bus, so you need an external software decoder to watch TV on your computer. Say Y or M if you own such a device and want to use it. Symbol: DVB_PT1 [=m] Prompt: PT1 cards Defined at drivers/media/dvb/pt1/Kconfig:1 Depends on: MEDIA_SUPPORT [=m] && DVB_CAPTURE_DRIVERS [=y] && DVB_CORE [=m] && PCI [=y] && I2C [=m] Location: -> Device Drivers -> Multimedia support (MEDIA_SUPPORT [=m]) -> DVB/ATSC adapters (DVB_CAPTURE_DRIVERS [=y])
念のためもう一度書き出しておくと、こんな感じ。
自分はモジュール化できるところは全部 M (モジュール) でいれているけど、多分組み込みでも問題ない。
DVB アプリ集を拾ってくる
いつものアップローダ に行って DVB ツールをおとしてくる。掲示板の過去ログ検索機能をうまくつかう (検索ワードには DVB とでも入れておくと良い) と見つかる。
でもってコンパイルする。
$ wget http://2sen.dip.jp/cgi-bin/dtvup/source/up0355.zip $ unzip up0355.zip $ cd dvb_apps_0.8.1 $ make clean $ CFLAGS="-march=core2 -mcx16 -msahf -mpopcnt -msse4.2 -mtune=core2 -O2 -pipe" CXXFLAGS="${CFLAGS}" MAKEOPTS="-j9" make
チャンネルスキャンしてみる
s2scan はただチャンネルスキャンするだけのプログラム。適当に存在しないオプションスイッチ (-h とでも) を指定して実行してやると下のような簡易ヘルプを吐いてくれる。
$ ./s2scan -h ./s2scan: invalid option -- 'h' usage ./s2scan [options...] -a N use /dev/dvb/adapterN -f N use /dev/dvb/adapter?/frontendN -d N use /dev/dvb/adapter?/demuxN -w N max wait for lock [N * 0.1sec], default=5 -l use channel list to scan (read from stdin) -p set LNB power on -b BS mode -c CS110 mode
これを見てもわかるように、カーネル標準の DVB 版 PT1/PT2 ドライバを使用した場合、デバイスは /dev/dvb/adaptarN で認識されるものらしい。
実際の実行前に、件のファイルが /dev 以下に作成されているか、一応確認してみる。
$ ls /dev/dvb/ -l 合計 0 drwxr-xr-x 2 root root 120 2010-08-07 06:18 adapter0 drwxr-xr-x 2 root root 120 2010-08-07 06:18 adapter1 drwxr-xr-x 2 root root 120 2010-08-07 06:18 adapter2 drwxr-xr-x 2 root root 120 2010-08-07 06:18 adapter3 $ ls /dev/dvb/* -l /dev/dvb/adapter0: 合計 0 crw-rw---- 1 root video 212, 4 2010-08-07 06:18 demux0 crw-rw---- 1 root video 212, 5 2010-08-07 06:18 dvr0 crw-rw---- 1 root video 212, 3 2010-08-07 06:18 frontend0 crw-rw---- 1 root video 212, 7 2010-08-07 06:18 net0 /dev/dvb/adapter1: 合計 0 crw-rw---- 1 root video 212, 68 2010-08-07 06:18 demux0 crw-rw---- 1 root video 212, 69 2010-08-07 06:18 dvr0 crw-rw---- 1 root video 212, 67 2010-08-07 06:18 frontend0 crw-rw---- 1 root video 212, 71 2010-08-07 06:18 net0 /dev/dvb/adapter2: 合計 0 crw-rw---- 1 root video 212, 132 2010-08-07 06:18 demux0 crw-rw---- 1 root video 212, 133 2010-08-07 06:18 dvr0 crw-rw---- 1 root video 212, 131 2010-08-07 06:18 frontend0 crw-rw---- 1 root video 212, 135 2010-08-07 06:18 net0 /dev/dvb/adapter3: 合計 0 crw-rw---- 1 root video 212, 196 2010-08-07 06:18 demux0 crw-rw---- 1 root video 212, 197 2010-08-07 06:18 dvr0 crw-rw---- 1 root video 212, 195 2010-08-07 06:18 frontend0 crw-rw---- 1 root video 212, 199 2010-08-07 06:18 net0
ちゃんと4つできている。作成されていない場合、カーネルの設定が間違っていると思われる。
チャンネルスキャン
実際にスキャンしてみる。アダプタは4つあるが、うちの環境では adapter0/2 が BS チューナ (ISDB-S) で、 adapter1/3 が地デジチューナ (ISDB-T) だったので、 -b スイッチをそれらにあわせて実行してやる。以下はそのログである。
※ 実際にはチャンネルが割り当てられてない周波数を skip した旨のログも大量に流れていたが、掲載するにあたり削っている。
まずアダプタ0、BS デジタル。
$ ./s2scan -a 0 -b trying freq:1049480 (tsid:4010)...locked..BS朝日1:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4010:151 BS朝日2:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4010:152 BS朝日3:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4010:153 ok. trying freq:1049480 (tsid:4011)...locked..BS−TBS:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4011:161 BS−TBS:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4011:162 BS−TBS:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1049480|DTV_ISDBS_TS_ID=0x4011:163 ok. trying freq:1087840 (tsid:4030)...locked..WOWOW:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1087840|DTV_ISDBS_TS_ID=0x4030:191 WOWOW2:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1087840|DTV_ISDBS_TS_ID=0x4030:192 WOWOW3:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1087840|DTV_ISDBS_TS_ID=0x4030:193 ok. trying freq:1087840 (tsid:4031)...locked..BSジャパン:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1087840|DTV_ISDBS_TS_ID=0x4031:171 BSジャパン2:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1087840|DTV_ISDBS_TS_ID=0x4031:172 BSジャパン3:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1087840|DTV_ISDBS_TS_ID=0x4031:173 ok. trying freq:1202920 (tsid:4090)...locked..BS11:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1202920|DTV_ISDBS_TS_ID=0x4090:211 ok. trying freq:1202920 (tsid:4091)...locked..スター・チャンネル:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1202920|DTV_ISDBS_TS_ID=0x4091:200 ok. trying freq:1202920 (tsid:4092)...locked..TwellV:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1202920|DTV_ISDBS_TS_ID=0x4092:222 ok. trying freq:1279640 (tsid:40d0)...locked..BS日テレ:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1279640|DTV_ISDBS_TS_ID=0x40d0:141 BS日テレ:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1279640|DTV_ISDBS_TS_ID=0x40d0:142 BS日テレ:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1279640|DTV_ISDBS_TS_ID=0x40d0:143 ok. trying freq:1279640 (tsid:40d1)...locked..BSフジ・181:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1279640|DTV_ISDBS_TS_ID=0x40d1:181 BSフジ・182:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1279640|DTV_ISDBS_TS_ID=0x40d1:182 BSフジ・183:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1279640|DTV_ISDBS_TS_ID=0x40d1:183 ok. trying freq:1318000 (tsid:40f1)...locked..NHK BS1:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1318000|DTV_ISDBS_TS_ID=0x40f1:101 NHK BS2:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1318000|DTV_ISDBS_TS_ID=0x40f1:102 ok. trying freq:1318000 (tsid:40f2)...locked..NHK h:DTV_DELIVERY_SYSTEM=9|DTV_FREQUENCY=1318000|DTV_ISDBS_TS_ID=0x40f2:103 ok.
こちらは地デジ。なお自宅は埼玉w
$ ./s2scan -a 1 trying freq:515142857 (tsid:0000)...locked..TOKYO MX1:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=515142857:23608 TOKYO MX2:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=515142857:23609 ok. trying freq:521142857 (tsid:0000)...locked..フジテレビ:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=521142857:1056 フジテレビ:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=521142857:1057 フジテレビ:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=521142857:1058 ok. trying freq:527142857 (tsid:0000)...locked..TBS1:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=527142857:1048 TBS2:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=527142857:1049 ok. trying freq:533142857 (tsid:0000)...locked..テレビ東京:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=533142857:1072 テレビ東京:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=533142857:1073 テレビ東京:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=533142857:1074 ok. trying freq:539142857 (tsid:0000)...locked..テレビ朝日:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=539142857:1064 テレビ朝日:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=539142857:1065 テレビ朝日:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=539142857:1066 ok. trying freq:545142857 (tsid:0000)...locked..日テレ1:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=545142857:1040 日テレ2:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=545142857:1041 ok. trying freq:551142857 (tsid:0000)...locked..NHK教育1・東京:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=551142857:1032 NHK教育2・東京:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=551142857:1033 NHK教育3・東京:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=551142857:1034 ok. trying freq:557142857 (tsid:0000)...locked..NHK総合1・東京:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=557142857:1024 NHK総合2・東京:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=557142857:1025 ok. trying freq:563142857 (tsid:0000)...locked..放送大学1:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=563142857:1088 放送大学2:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=563142857:1089 放送大学3:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=563142857:1090 ok. trying freq:575142857 (tsid:0000)...locked..チバテレビ1:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=575142857:27704 チバテレビ2:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=575142857:27705 ok. trying freq:581142857 (tsid:0000)...locked..timeout/failed to get SDT. trying freq:587142857 (tsid:0000)...locked..テレ玉1:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=587142857:29752 テレ玉2:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=587142857:29753 テレ玉3:DTV_DELIVERY_SYSTEM=8|DTV_FREQUENCY=587142857:29754 ok.
ちゃんとアクセスできているようだ。
あとは…
どうやって受信状態に持っていけばいいんだろうかw
他のツールには tune コマンドとかもあり、また mplayer 他から dvb:// でアクセスすることもできるようだけど。まだちょっと時間がかかりそうな予感。