« HYBRID W-ZERO3が届いた | トップページ | CentOS5.4録画サーバ機にEPG対応録画フロントエンド(epgrec)を入れる »

2010年1月30日 (土)

CentOS5.4サーバ機にPT2を入れて地デジ録画サーバにする

Pt2_3

メインのTV録画環境をアースソフトのPT2に移行したのでその記録.

長くなるので4つのエントリーに分けて書く予定.今回はPT2,ICカードリーダのlinuxへの導入について.

最終的に地デジ録画の極楽環境が構築できた関係で,本格的にDIGAは何かあったときの保険用になりました…

ご存知の通り,TVのデジタル放送は色々とヤヤコシイ話になっていて,無料で視聴可能な地デジ放送に関してもスクランブルがかかっています.そして視聴や録画用機器に関しても制限が多く,例えば一般向けに市販されている普通の機器を使用した場合,録画した物を(私的コピーの範囲内で)別の機械やメディアにコピーしたりといったことにすら制限がかけられています.

そんなわけで,現状の家電製品で満足している人には関係無い話ではあるけれど,もっと自分の好きなように録画システムを組みたい人にとっては,アナログ放送の頃と比べて非常にハードルの高い物になってしまいました.

こんな状況は日本だけ.ごく一部の団体以外は得をしないシステムなので,何とかして欲しいと願っているのだけど,ここ数年の動きを見ていると,どうしようもない感じ.

そんな状況に風穴を開けたのはfriioだったわけだけど,その他にもパッチを当てたドライバを使用したり,ちょっとしたハードの改造をすることによって生のMPEG2-TSを取り出すことが可能な製品があり,争奪戦やプチ祭りになったりもしていた.この辺りの話について昔書いたエントリーはこの辺り

その後,日本国内の真っ当な(失礼!)会社の製品として発売され,店頭で購入可能となったPT1は多くのユーザに歓喜の声と共に迎えられ,そして現行のPT2も需要に供給が追いつかない感じで,プレミアが付いている程の大人気.

例えばAmazonをチェックしてみると,PT2Rev.Aは1月30日現在,31,800円もしている.普通に購入したら17千円弱の製品なのだけど,この値付けの店頭在庫は大抵瞬殺されます.欲しい人は欲しいし,実際この製品を導入すれば素晴らしい環境を構築することが可能なので,この額を出しても損ではないという人が結構いるんだと思う.価格は需給バランスで決まるのが市場原理なので,そういう意味では必ずしもボッタクリまでは行かないんじゃないかな.要は必要なときにそれに見合った額で買えればOK.ただ,転売屋が情報弱者を鴨にしているケースもあるので,心情的にはちょっとアレだけど…

* * *

前振りが長くなったけど,PT2について.

PT2はPCIスロットに挿す,地上・BS/110CSデジタルチューナーカードで,それぞれ2chの同時録画が可能.ただし,暗号化されたデータが出力されるだけなので,ビーカスBCASカードはおろかICカードスロットが付いているわけではないし,b25のデコードは自分で行わないといけない.

Pt2_1_2

店頭ではこんな感じで売られてます.『素人さんお断り&分かってる人だけ買ってください.バルクですよー』という扱い.

Pt2_2

貼られている説明はこんな感じ. 詳しくはクリックして拡大表示して読んでください.『分からない人は買うな』ということが,やんわりと書かれています.

Pt2_3_2

カードはこんな感じ.部品点数が少なく,2つが並んで実装されていチューナーが目立ちます.

Pt2_4_2

ブラケット側にはアンテナ接続用の端子が4つ並んでいます.地デジ用*2とBS/CS用*2.

Pt2_5

と,いうことで,サーバとして動かしているCentOS5.4 の動いているExpress5800/S70FLへ挿しました.サーバ機とは言え,スロットが適度にあって拡張性が維持されていると助かりますな.

Pt2_6

b25をデコードするには,BCASカードとカードを読むためのICカードリーダーが必要.BCASカードの入手法は自分で調べてもらうとして,Linuxで使用するとしたら,ICカードリーダーは NTT-ME SCR3310-NTTCom がお薦めです.

Pt2_7

USB接続タイプのカードリーダーで,ドライバCDと説明書が同梱.確定申告(e-Tax)にも使えます.あっ…そろそろ確定申告の手続きも始めないと…いつもギリギリだし…

Pt2_8_2

BCASカードはここのスリットに白い面を上にして挿します.LEDがグリーンで点滅すればOK.


次にLinuxへのPT2ドライバ(DVB版 chardev版)と録画プログラムをインストールします.

まずはLinuxが起動したら,PT2が見えているかを確認してみてください.『/sbin/lspci』を実行し,

03:01.0 Multimedia controller: Xilinx Corporation Unknown device 222a (rev 01)

のように出ていたらOKです.

認識されていたら,pt1/2用のドライバをインストールしましょう.次のようにコマンドを実行します.なお,インストールの際には,mercurialが必要です(以下の例では,yumでインストールしています).

yum install mercurial
hg clone http://hg.honeyplanet.jp/pt1/ PT2
cd PT2/driver/
make
(エラーが出ていないことを確認)
make install
insmod /lib/modules/`uname -r`/kernel/drivers/video/pt1_drv.ko

これでOK.『ls -l /dev/pt1*』と実行して,次のようにデバイスファイルが出来ていることを確認します.

crw-rw-rw- 1 root root 253, 0  1月 25 22:17 /dev/pt1video0
crw-rw-rw- 1 root root 253, 1  1月 25 22:17 /dev/pt1video1
crw-rw-rw- 1 root root 253, 2  1月 25 22:17 /dev/pt1video2
crw-rw-rw- 1 root root 253, 3  1月 25 22:17 /dev/pt1video3

次に録画用プログラムのインストール.

上記の例では,最新版のドライバをチェックアウトしているのですが,新しいドライバにはb25のデコード用プログラムが同梱されていません.そこで少し古めのコードをチェックアウトして,録画プログラムはそちらを使用することにします.

hg clone http://hg.honeyplanet.jp/pt1/ PT2_old -r 73
cd PT2_old/arib25
make
(エラーが無い事を確認)
make install
cd ../recpt1
make
(エラーが無い事を確認)
make install

これでPT2用の設定は完了です.

[2011/03/27追記] BS/CSを録画する場合は,recpt1は新しい物にしてください.詳しくはコメント参照のこと.


次にBCASカードを使用するための設定をします.

まずは先のICカードリーダをUSBポートに接続し,BCASカードを挿入してください.

次に以下のようにコマンドを実行します.なお,以下の例は32bit版のkernelでの例です.64bit版を使用している場合,取得するパッケージはi386ではなく,x86_64にする必要がある場合があります.参考ページ:とあるSEの忘却目録

yum install glib glib-devel perl-Gtk2
wget ftp://ftp.kddlabs.co.jp/033/Linux/packages/fedora.archive/releases/8/Everything/i386/os/Packages/pcsc-perl-1.4.6-2.fc8.i386.rpm
wget ftp://ftp.kddlabs.co.jp/033/Linux/packages/fedora.archive/releases/8/Everything/i386/os/Packages/pcsc-tools-1.4.10-1.fc8.i386.rpm
wget ftp://ftp.kddlabs.co.jp/033/Linux/packages/fedora.archive/releases/8/Everything/x86_64/os/Packages/pcsc-perl-1.4.6-2.fc8.i386.rpm
wget ftp://ftp.kddlabs.co.jp/033/Linux/packages/fedora.archive/releases/8/Everything/x86_64/os/Packages/pcsc-tools-1.4.10-1.fc8.i386.rpm
rpm -ivh pcsc-perl-1.4.6-2.fc8.i386.rpm --nodeps
rpm -ivh pcsc-tools-1.4.10-1.fc8.i386.rpm --nodeps
rpm -ivh pcsc-perl-1.4.6-2.fc8.i386.rpm --nodeps
rpm -ivh pcsc-tools-1.4.10-1.fc8.i386.rpm --nodeps
hash -r
mv /usr/share/pcsc/smartcard_list.txt /usr/share/pcsc/smartcard_list.txt.bak
cp PT2_old/b25_docs/smartcard_list.txt /usr/share/pcsc/
(先に取得したPT1/2用ドライバに同梱されている設定ファイルをコピー)

終わったら,『pcsc_scan』と実行し,以下のように表示されたらOKです.

PC/SC device scanner
V 1.4.10 (c) 2001-2007, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.3.3
Scanning present readers
…中略
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99
        B-CAS

CTRL+Cで抜けてください.

録画テストには,recpt1コマンドが利用できます.recpt1コマンドのオプションは『recpt1 --help』で確認出来ます.

どんな地デジのチャンネルが録画出来るか分からないときや,チャンネル番号が分からないときは,例えば以下のようなスクリプトを走らせると良いでしょう.

実に安直なスクリプトですが,地デジでのチャンネルをスキャンし,録画可能なチャンネルが存在した場合は30秒間の録画ファイル(test<チャンネル番号>.ts)を作成します.BS/CSも調べたい場合は,for文のパラメータを変更してみてください.

#!/bin/sh
for ((i=13;i<64;i++))
do
  echo recording channel $i
  /usr/local/bin/recpt1 --strip --b25 $i 30 test$i.ts &> /dev/null
done

* * *

録画予約フロントエンドのインストールへ続きます.

なお,うちではPT2導入に伴ってfriioは予備役へ編入したのですが,ivtvで使ってるCX23416GYC-STVLPは外部チューナーのアナログキャプチャ用に現役続行中です.

|

« HYBRID W-ZERO3が届いた | トップページ | CentOS5.4録画サーバ機にEPG対応録画フロントエンド(epgrec)を入れる »

コメント

はじめまして、ノリハルと言います。

PT2.revAの設定を当サイト様を参考にさせて頂きました。

設定は当サイトに記載されている通り問題なく済みました。

しかし、recpt1コマンドを実行したところ

「enable B25 strip
using B25...
Cannot tune to the specified channel」

と表示され録画ができません。

どこに問題があるのかわからず困っています。

よろしければアドバイスなどを頂きたいと思いコメントさせていただきました。

よろしくお願いします。

投稿: ノリハル | 2010年3月 3日 (水) 16時16分

ノリハルさん はじめまして.
このエラーは,BS/CSのチャンネルを選択した際に出ていませんか?

PT2に直接BS/CSアンテナ等を接続し,PT2から電源供給している場合は,その機器の電圧をチェックしてみて下さい.

そしてdriverソース内にpt1_pci.cというファイルがありますので,この55行目の

static int lnb = 0; /* LNB OFF:0 +11V:1 +15V:2 */

を,先にチェックした電圧に合わせて変更してください.この行のコメントの通り,11Vの場合は1,15Vの場合は2をlnbに代入するように変更&コンパイル&インストールすればOKです.

これで多分うまく行くと思います.

投稿: tadachi | 2010年3月 3日 (水) 18時54分

アドバイスありがとうございます。

しかし、一度アドバイス通り試してみましたが変わりませんでした。

またローカルチャンネルを選択したときにもこのエラーは表示されます。

ここまでくるとWindowsでPT2が使えるか試してみます。

以下は謝辞を
コメントしてからすぐにアドバイスを頂きとてもうれしかったです。

また助けを請う時もいろいろ教えてくださるとありがたいです。

本当にアドバイスありがとうございました。

投稿: ノリハル | 2010年3月 3日 (水) 22時42分

以前アドバイスを頂いたノリハルです。

LinuxでPT2を作動させることに成功しました。

どうもありがとうございました。

投稿: ノリハル | 2010年3月 5日 (金) 13時11分

無事に動いたとのこと.何よりです(^^)

どのようなことが原因だったのでしょうか?
後学のためにお教え頂けると助かります.

投稿: tadachi | 2010年3月 5日 (金) 20時35分

> 次にLinuxへのPT2ドライバ(DVB版)と録画プログラムをインストールします.
とありますが、そこでインストールしてるのはchardev版ドライバですね

投稿: ReD | 2011年1月 5日 (水) 11時36分

ReDさん
ご指摘ありがとうございます.確かに逆になってますね.
早速修正しておきました.

投稿: tadachi | 2011年1月 5日 (水) 12時00分

大変参考になりました。

ところで、些細なことですが
チャンネル調査用スクリプトのスキャン範囲は
13〜63ではないでしょうか?
(うちの地方だとGR13がNHKだったりします)

投稿: 地方のひと | 2011年3月 7日 (月) 01時05分

地方のひとさん
コメントありがとうございました.仕様的には確かに13ch~63chですね.早速修正しておきました.

ご指摘ありがとう御座います.

投稿: tadachi | 2011年3月 7日 (月) 11時19分

はじめまして。
こちらのブログを参考にCentOSでPT2を導入することが出来ました。
この場を借りて御礼申し上げます。

ただ、地上デジタルの録画は成功するのですがBSの録画が出来ない状態になっています。
色々と調べたところ最新のPT2ドライバで上記の記述通り古いrecpt1を使用するとBSを録画出来ないようです。

最新のrecpt1を使用したところ無事BSを録画する事が出来ました。

多くの方が参照されている記事ですので御礼を兼ねて御報告致します。

投稿: | 2011年3月27日 (日) 00時16分

新しいrecpt1の件,フォローありがとうございます.私の所ではBS/CSは試していなかったので,助かりました.

本文の方も修正しておきます.

投稿: tadachi | 2011年3月27日 (日) 19時42分

以前質問したUS在住のhiroです。

7月にPT2を実装したハードウェアを日本に送り、まずは旧来のアナログ録画システムの移植の立ち上げ(数時間で済みました!)から始めて、色々トラブルに見舞われましたが、太平洋越しのデバッグ・奮闘の結果、数週間前に地デジ録画に成功し、現在録画ファイルの転送・再生などの既存のインフラとのインターフェースが着々と実現され、家族の目からは画質が格段に向上した「ごく当たり前の家電」として動作するレベルまで到達しました。諸先輩方の成果を利用させていただけることに本当に感謝しており、早々に私の成果を公開すべく現在準備中です。

つきましては、一点B-CASの読み込みについて教えていただきたいことがあります。

当初、recpt1の-b25オプションを使ったのですが、どうもARIB25の復号が上手く行ってないようなのでデバッグしたところ、pcsc_scanは正常にB-CASカードを検出し、その後libarib25.so内でカード読み出しのリセットまでは成功しているのですが、肝心のTSからのパケットをScardTransmitに食わせると0x6dのステータスコードが返りエラーになってしまうことが分かりました。幸いなことに手元にB-CASカードとリーダの予備を用意できましたので、ローカルで同じTSを食わせてみたところこちらは成功したので、現在USの我が家のサーバでBonCasServerを走らせ、日本の録画システムはlibarib25.soにパッチを当ててBonCasClientとして動作させることにし、成功しました(このサーバとクライアントのコードも公開予定です)。

このリモートB-CASでも現在のところ実用上問題はないのですが、ネットワークが録画中完全である保証がないので、b25の処理はリアルタイムを諦めrecpt1終了後にffmpegの前に実行するようにしています。最終的にはローカルで完結させたいので調査したところ、日本に置いてある(動作しない)B-CASとUSで動作しているB-CASとはpcsc_scanの出力が微妙に違うことに気づきました。

●日本側(動作しない、FC14)
PC/SC device scanner
V 1.4.17 (c) 2001-2009, Ludovic Rousseau
Compiled with PC/SC lite version: 1.6.4
Scanning present readers...
0: SCM SCR 3310 NTTCom [Vendor Interface] 00 00

Thu Nov 3 08:23:13 2011
Reader 0: SCM SCR 3310 NTTCom [Vendor Interface] 00 00
Card state: Card inserted,
ATR: 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99
...

○US側(動作中、FC13)
V 1.4.16 (c) 2001-2009, Ludovic Rousseau
Compiled with PC/SC lite version: 1.5.5
Scanning present readers...
0: SCM SCR 3310 NTTCom [Vendor Interface] 00 00

Wed Nov 2 16:24:11 2011
Reader 0: SCM SCR 3310 NTTCom [Vendor Interface] 00 00
Card state: Card inserted, Shared Mode,
ATR: 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99
...

問題は「Card inserted,」の後に「Shared mode」が付くかどうかです。B-CAS回りのハードウェアに差があるとは思えないので、日本側のpcsc-liteを1.6.4からダウングレードしようと試みたのですが上手くいっていません。

この「Shared mode」について何かご存知でしょうか?

投稿: hiro | 2011年11月 3日 (木) 08時34分

hiroさん
遠隔で諸々設定するのは骨が折れますね.今後の成果物の公開を楽しみにしています.

さて,B-CASカードの認識&利用に関してですが,FC14で使用されているccid 1.4では問題が出ませんでしたっけ?少し古い情報ですが,ccidを1.3に落として使用していた人が多かった覚えがあります.

検索してみたところ,以下のようなページがありました.
FCは最新の追っかけには良いのですが,リリース後しばらくは安定しないので,安定サービスが必要な物は,枯れた環境を用意して動かす方が良いかも知れませんね.既にFC15が出ているので,FC14は安定していても良いとは思うのですが…
http://www.koiwaclub.com/koujis_blog/index_36.html

あと,上の話とは矛盾するようですが,FC15ではきちんと動作するようです.
http://www.koiwaclub.com/koujis_blog/cat30/cat33/

投稿: tadachi | 2011年11月 3日 (木) 12時27分

な~るほど!!いや~、然るべき人に訊いてみるものですね。FC14だけの問題でしたか!

自宅の3台のサーバは昨年夏に構築したので当時最新のFC13を使いましたが、録画機は今年初めだったのでFC14にしました(開発は再現性などの理由により録画機上では行わず、メインサーバ上にFC14のvmwareを動かしています)。

早速ccidをダウングレードしようとしましたがFC14用には1.4のバイナリパッケージがないようなので1.3のSRPMから起こしました。SRPMからのビルドは初めての経験なので多少の試行錯誤をした結果、無理にクロスビルドするする理由もないので、ホスト側からsshでrpmbuildさせるようにし、1時間ほど前に動作することを確認しました。

実は、もう少しやってみてダメなら格安地デジチューナとカードリーダをもう一台づつ手に入れて、こちらで動作確認してから日本に送り返して、録画機に実装されたものと交換する予定でした。いやはや、 $200ほどの金を数週間を無駄にするところでした。

本当にありがとうございました!!

投稿: hiro | 2011年11月 3日 (木) 16時52分

お久しぶりです。

その後、うちの録画システムももう半年近く順調に稼働しております。本当にお世話になりました。

録画システムとは直接関係ありませんが、FC14がまた災いしたので報告します。今度はfusecompressです。うちの録画サーバはリモートバックアップサーバにも使う予定があり、そのためのディスクスペースも確保したありました。リモートバックアップの開発にかけられる時間が割けたのでいよいよ実装したところ、fusecompressのファイルシステムが、書き込みができても読み込みができない事態に遭遇しました。仕方なく、またSRPMからビルドし直しましたが、FC14用のSRPMはバイナリと同じバージョンしかなく、正常に動くFC13のSRPMはビルドできなかったのでFC15用のSRPMを使用したところ、正常に動作することが確認できました。

いやはや、FC14の腐り方は相当なものです!

投稿: hiro | 2012年4月21日 (土) 08時06分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/198640/47432272

この記事へのトラックバック一覧です: CentOS5.4サーバ機にPT2を入れて地デジ録画サーバにする:

« HYBRID W-ZERO3が届いた | トップページ | CentOS5.4録画サーバ機にEPG対応録画フロントエンド(epgrec)を入れる »