カーネルに標準で入っている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 (モジュール) でいれているけど、多分組み込みでも問題ない。

注意

キャラクタデバイス版 recpt1 ドライバ ( /dev/pt1video0 とかになるやつ) はカーネル標準の DVB 版ドライバと衝突するので入れてはいけない。具体的に言うと ココ で落とせるカーネルドライバは入れない。

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:// でアクセスすることもできるようだけど。まだちょっと時間がかかりそうな予感。