MINT12でPT2+MythTV その1
PT2のインストール
カーネルが3.0で、不具合が解消したというのでDVB版を使用してみる(ついでにMythTVをインストール)
$ ls /dev/dvb/
adapter0 adapter1 adapter2 adapter3
と、正常に認識されている。
念のため、キャラクタデバイス版のドライバがインストールされないように記述しておく
$ sudo gedit /etc/modprobe.d/blacklist.conf
ファイルの末尾に下記のように記述しておく
blacklist pt1_drv
次にカードリーダのドライバを導入、
$ sudo apt-get install libccid pcsc-tools pcscd
$ pcsc_scan
確認すると、相変わらずスマートカードリーダ関係は新しいとだめらしいので、ダウングレードで
入れ直す
$ wget http://ftp.jaist.ac.jp/pub/Linux/ubuntu//pool/universe/p/pcsc-tools/pcsc-tools_1.4.16-1_amd64.deb
$ wget http://security.ubuntu.com/ubuntu/pool/universe/p/pcsc-lite/pcscd_1.5.5-3ubuntu2.1_amd64.deb
$ wget http://security.ubuntu.com/ubuntu/pool/main/p/pcsc-lite/libpcsclite-dev_1.5.5-3ubuntu2.1_amd64.deb
$ wget http://security.ubuntu.com/ubuntu/pool/main/p/pcsc-lite/libpcsclite1_1.5.5-3ubuntu2.1_amd64.deb
$ wget http://ftp.jaist.ac.jp/pub/Linux/ubuntu//pool/universe/c/ccid/libccid_1.3.11-1_amd64.deb
インストール
$ sudo dpkg -i *.deb
依存関係の問題で、2~3回やれば通る。
次に、パッケージが変更されないように設定しておく
その他 → Synapticパッケージマネージャー
上部メニューにあるパッケージからバージョン固定を選択すると、鍵マークついて、バージョンが
固定される
libccid version 1.3.11-1
libpcsclite-dev version 1.5.5-3ubuntu2.1
libpcsclite1 version 1.5.5-3ubuntu2.1
pcsc-tools version 1.4.16-1
pcscd version 1.5.5-3ubuntu2.1
ここまでできたら、再度確認
$ pcsc_scan | grep B-CAS
Japanese Chijou Digital B-CAS Card (pay TV)
という表記が出れば OK Ctrl + c で停止させる。
apt-getでもバージョンが変わらないように、設定ファイルを作成
$ sudo gedit /etc/apt/preferences.d/pcsc
package: libccid
Pin: version 1.3.11-1
Pin-Priority: 900
package: libpcsclite-dev
Pin: version 1.5.5-3ubuntu2.1
Pin-Priority: 900
package: libpcsclite1
Pin: version 1.5.5-3ubuntu2.1
Pin-Priority: 900
package: pcsc-tools
Pin: version 1.4.16-1
Pin-Priority: 900
package: pcscd
Pin: version 1.5.5-3ubuntu2.1
Pin-Priority: 900
Mintの場合は、アップデートマネージャーで、アップデート一覧に出てくるので、クリックして、
このパッケージのアップデートを無視するを選択して消しておく
fuse_b25のインストール
$ sudo apt-get install libfuse-dev fuse-utils
$ wget http://2sen.dip.jp/cgi-bin/dtvup/source/up0664.zip
$ unzip up0664.zip
$ cd fuse_b25-0.4.8
$ unzip fuse_b25-0.4.8.zip
$ cd fuse_b25-0.4.8
$ ./configure
$ make
$ sudo make install
次に、チャンネルに必要なものをダウンロード
$ wget http://2sen.dip.jp/cgi-bin/dtvup/source/up0798.zip # linux用 DVBアプリ集ver.0.97(10月1日以降の対応版)
$ unzip up0798.zip
チャンネルスキャン
$ cd dvb_apps-0.97/cmds/
$
$ ./s2scan -a 0 -p -b #BS
$ ./s2scan -a 0 -p -c #CSが必要なら、これも
続いて、テスト用のチューニングツールをビルド(tune.cのソースを修正する)
$ wget http://2sen.dip.jp/cgi-bin/pt1up/source/up0219.gz
$ tar xvfz up0219.gz
$ gedit dvb-pt1-test/tune.c
デフォルトは関東 「チャンネル番号」「局名」「周波数」となっているので、今スキャンした情報で、
書き換える
static struct channel isdbt_channels[] = {
{ 1, “TBCテレビ”, 509142857 },
{ 2, “NHKE”, 473142857 },
{ 3, “NHK総合”, 497142857 },
{ 4, “ミヤギテレビ”, 539142857 },
{ 5, “東日本放送”, 563142857 },
{ 8, “仙台放送”, 521142857 },
};
static struct channel isdbs_channels[] = {
{ 1, “NHK BS-1”, 1318000, 0x40f1 },
{ 3, “NHK BSプレミアム”, 1318000, 0x40f2 },
{ 4, “BS日テレ”, 1279640, 0x40d0 },
{ 5, “BS朝日”, 1049480, 0x4010 },
{ 6, “BS-TBS”, 1049480, 0x4011 },
{ 7, “BSジャパン”, 1087840, 0x4031 },
{ 8, “BSフジ”, 1279640, 0x40d1 },
{ 9, “WOW
OWプライム”, 1087840, 0x4030 },
{ 10, “WOWOWライブ”, 1126200, 0x4450 },
{ 11, “WOWOWシネマ”, 1126200, 0x4451 },
{ 12, “STAR CHANNEL 1”, 1202920, 0x4090 },
{ 13, “STAR CHANNEL 2”, 1164560, 0x4091 },
{ 14, “BS11”, 1202920, 0x4090 },
{ 15, “BSアニマックス”, 1164560, 0x4671 },
{ 16, “TwellV”, 1202920, 0x4092 },
{ 17, “放送大学”, 1241280, 0x46b2 },
{ 18, “テレビ東京1”, 1356360, 0x4311 },
};
このままだと、コンパイルできないので、変更前だと99行目を変更する ISDBをISDBSに
prop[1].cmd = DTV_ISDBS_TS_ID;
LNB電源をONにする記述 80行目くらい(太字が追加した5行)
if (info.type == FE_QPSK) {
prop[0].cmd = DTV_VOLTAGE;
prop[0].u.data = SEC_VOLTAGE_18;
props.props = prop;
props.num = 1;
ioctl(fd, FE_SET_PROPERTY, &props);
channel = lookup_channel(channel_id, isdbs_channels,
変更したら、tuneのバイナリを削除し、再コンパイルする
$ cd dvb-pt1-test
$ rm tune
$ make
VIDEOグループに自分のユーザ名を追加
$ sudo gedit /etc/group
暗号化解除済みの仮想チューナを作成する
TSが暗号化されているので、MythTVなどでそのままでは扱えない。そのため、fuse_b25で
復号されたTSを出力する新しいアダプターを用意する必要がある。
adapter5でadapter1を復号する場合
$ sudo b25dir 5 #マウント先のディレクトリの作成
$ ls /dev/dvb/ #ディレクトリが作られていることを確認
adapter0 adapter1 adapter2 adapter3 adapter5
$ sudo fuse_b25 –target /dev/dvb/adapter1 /dev/dvb/adapter5 -o allow_other
録画テスト
$ cd dvb-pt1-test
$ ./tune 5 1 &
cat /dev/dvb/adapter5/dvr0 > test.ts
30秒ほど録画したら停止する
停止コマンド
① Ctrl + C
② $ fg
③ Ctrl + C
の順に実施すると停止する
test.tsができているので、これをVLCなどで再生して見られれば、テストはOK
$ sudo cp tune /usr/local/bin/
tuneファイルをコピー
パソコンの起動時に仮想デバイスノードが作成されるように記述する
$ sudo gedit /etc/rc.local
末尾(「exit 0」よりは前)に記述する。 仮想アダプターは単純に+10にしてみた(もとより大きければ任意でOK)
for ADAPTER in 0 1 2 3 ; do
NEW_ADAPTER=`expr $ADAPTER + 10` #数字は任意
mkdir /dev/dvb/adapter$NEW_ADAPTER
chown root:video /dev/dvb/adapter$NEW_ADAPTER
chmod 0775 /dev/dvb/adapter$NEW_ADAPTER
/usr/bin/nice –4 /usr/local/bin/fuse_b25 –target /dev/dvb/adapter$ADAPTER /dev/dvb/adapter$NEW_ADAPTER -o allow_other
done
再起動して確認
$ mount |grep fuse_b25
fuse_b25 on /dev/dvb/adapter10 type fuse.fuse_b25 (rw,nosuid,nodev,allow_other,default_permissions)
fuse_b25 on /dev/dvb/adapter11 type fuse.fuse_b25 (rw,nosuid,nodev,allow_other,default_permissions)
fuse_b25 on /dev/dvb/adapter12 type fuse.fuse_b25 (rw,nosuid,nodev,allow_other,default_permissions)
fuse_b25 on /dev/dvb/adapter13 type fuse.fuse_b25 (rw,nosuid,nodev,allow_other,default_permissions)
一応、これで、録画ができるか確認してみる
$ tune 10 1 &
(10は、仮想アダプター 1はtune.cで記述したチャンネル 10と12はBS 11と13が地上波)
$ cat /dev/dvb/adapter10/dvr0 > test.ts
(adpterの番号は、仮想アダプターの番号(上で指定してものと同じにする)
停止コマンド
① Ctrl + C
② $ fg
③ Ctrl + C
test.tsファイルを確認して、再生できればOK
これで、一応、下準備終わり