CentOS 5.4にPT2を導入する。
foltiaの導入を目的としたPT2の導入メモ。今回はOSのインストールからの録画テストまで。後から確認できるように、できる限り操作ログを残すようにした。動作確認はしているので問題はないが、もしもっと簡単な手順があれば教えてほしい。
目次
- 動作環境の確認
- CentOS 5.4のインストール
- ICカードリーダー関連ソフトウェアのインストール
- PT2のドライバダウンロード・解凍
- PT2のドライバインストール
- b25のインストール
- recpt1のインストール
- 録画テスト
動作環境
- NEC Express5800/S70 タイプFL
- アースソフト PT2
- SCR3310-NTTCom
- B-CASカード
CentOS 5.4のインストール
32bit版のCentOS 5.4をインストール。手順はここを参照。途中の「インストールパッケージ選択」で「今すぐカスタマイズする」を選択し、下記の項目にチェックが入った状態にして、OSをインストールする。
- デスクトップ環境 > GNOME デスクトップ
- アプリケーション > エディタ
- アプリケーション > グラフィカルインターネット
- 開発 > GNOME ソフトウェア開発
- 開発 > X ソフトウェア開発
- 開発 > 開発ツール
- 開発 > 開発ライブラリ
- ベースシステム > X Window System
- ベースシステム > ベース
合わせて、ユーザー作成時にユーザーを「foltia」にしておけば、後が楽。
ICカードリーダー関連ソフトウェアのインストール
実はOSのインストールの際に、ICカードリーダーに必要なものは全てインストールされているので、対応は不要。SCR3310-NTTComのLEDが激しく点滅していれば認識しているはず。ちなみにyumでpcsc-toolsはインストールできなかった。
PT2のドライバダウンロード・解凍
ドライバのダウンロードはここから。b25が入った古いバージョン(c44e16dbb0e2)と2010/03/20時点で最新のバージョン(3eccf1ef4853)をそれぞれダウンロードし、解凍。
[foltia@foltiadev ~]$ wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.tar.bz2 --2010-03-20 16:58:11-- http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.tar.bz2 hg.honeyplanet.jp をDNSに問いあわせています... 59.106.19.35 hg.honeyplanet.jp|59.106.19.35|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 Script output follows 長さ: 特定できません [application/x-tar] `c44e16dbb0e2.tar.bz2' に保存中 [ <=> ] 76,446 245K/s 時間 0.3s 2010-03-20 16:58:11 (245 KB/s) - `c44e16dbb0e2.tar.bz2' へ保存終了 [76446] [foltia@foltiadev ~]$ tar xvjf c44e16dbb0e2.tar.bz2 pt1-c44e16dbb0e2/.hg_archival.txt pt1-c44e16dbb0e2/arib25/Makefile pt1-c44e16dbb0e2/arib25/arib_std_b25.sln pt1-c44e16dbb0e2/arib25/arib_std_b25.vcproj pt1-c44e16dbb0e2/arib25/readme.txt pt1-c44e16dbb0e2/arib25/src/Makefile pt1-c44e16dbb0e2/arib25/src/arib_std_b25.c pt1-c44e16dbb0e2/arib25/src/arib_std_b25.h pt1-c44e16dbb0e2/arib25/src/arib_std_b25_error_code.h pt1-c44e16dbb0e2/arib25/src/b_cas_card.c pt1-c44e16dbb0e2/arib25/src/b_cas_card.h pt1-c44e16dbb0e2/arib25/src/b_cas_card_error_code.h pt1-c44e16dbb0e2/arib25/src/makefile.win pt1-c44e16dbb0e2/arib25/src/multi2.c pt1-c44e16dbb0e2/arib25/src/multi2.h pt1-c44e16dbb0e2/arib25/src/multi2_error_code.h pt1-c44e16dbb0e2/arib25/src/portable.h pt1-c44e16dbb0e2/arib25/src/td.c pt1-c44e16dbb0e2/arib25/src/ts_common_types.h pt1-c44e16dbb0e2/arib25/src/ts_section_parser.c pt1-c44e16dbb0e2/arib25/src/ts_section_parser.h pt1-c44e16dbb0e2/arib25/src/ts_section_parser_error_code.h pt1-c44e16dbb0e2/b25_docs/libccid_Info.plist pt1-c44e16dbb0e2/b25_docs/readme.txt pt1-c44e16dbb0e2/b25_docs/smartcard_list.txt pt1-c44e16dbb0e2/driver/Makefile pt1-c44e16dbb0e2/driver/etc/99-pt1.rules pt1-c44e16dbb0e2/driver/pt1_com.h pt1-c44e16dbb0e2/driver/pt1_i2c.c pt1-c44e16dbb0e2/driver/pt1_i2c.h pt1-c44e16dbb0e2/driver/pt1_ioctl.h pt1-c44e16dbb0e2/driver/pt1_pci.c pt1-c44e16dbb0e2/driver/pt1_pci.h pt1-c44e16dbb0e2/driver/pt1_tuner.c pt1-c44e16dbb0e2/driver/pt1_tuner.h pt1-c44e16dbb0e2/driver/pt1_tuner_data.c pt1-c44e16dbb0e2/driver/pt1_tuner_data.h pt1-c44e16dbb0e2/recpt1/Makefile pt1-c44e16dbb0e2/recpt1/channels/sample.recpt1-channels-chiba pt1-c44e16dbb0e2/recpt1/channels/sample.recpt1-channels-kanazawa pt1-c44e16dbb0e2/recpt1/channels/sample.recpt1-channels-nagoya pt1-c44e16dbb0e2/recpt1/channels/sample.recpt1-channels-tokyo pt1-c44e16dbb0e2/recpt1/decoder.c pt1-c44e16dbb0e2/recpt1/decoder.h pt1-c44e16dbb0e2/recpt1/mkpath.c pt1-c44e16dbb0e2/recpt1/mkpath.h pt1-c44e16dbb0e2/recpt1/recpt1.c pt1-c44e16dbb0e2/recpt1/recpt1.h [foltia@foltiadev ~]$ wget http://hg.honeyplanet.jp/pt1/archive/3eccf1ef4853.tar.bz2 --2010-03-20 16:59:36-- http://hg.honeyplanet.jp/pt1/archive/3eccf1ef4853.tar.bz2 hg.honeyplanet.jp をDNSに問いあわせています... 59.106.19.35 hg.honeyplanet.jp|59.106.19.35|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 Script output follows 長さ: 特定できません [application/x-tar] `3eccf1ef4853.tar.bz2' に保存中 [ <=> ] 47,121 287K/s 時間 0.2s 2010-03-20 16:59:36 (287 KB/s) - `3eccf1ef4853.tar.bz2' へ保存終了 [47121] [foltia@foltiadev ~]$ tar xvjf 3eccf1ef4853.tar.bz2pt1-3eccf1ef4853/.hg_archival.txt pt1-3eccf1ef4853/driver/Makefile pt1-3eccf1ef4853/driver/etc/99-pt1.rules pt1-3eccf1ef4853/driver/pt1_com.h pt1-3eccf1ef4853/driver/pt1_i2c.c pt1-3eccf1ef4853/driver/pt1_i2c.h pt1-3eccf1ef4853/driver/pt1_ioctl.h pt1-3eccf1ef4853/driver/pt1_pci.c pt1-3eccf1ef4853/driver/pt1_pci.h pt1-3eccf1ef4853/driver/pt1_tuner.c pt1-3eccf1ef4853/driver/pt1_tuner.h pt1-3eccf1ef4853/driver/pt1_tuner_data.c pt1-3eccf1ef4853/driver/pt1_tuner_data.h pt1-3eccf1ef4853/recpt1/COPYING pt1-3eccf1ef4853/recpt1/Makefile.in pt1-3eccf1ef4853/recpt1/autogen.sh pt1-3eccf1ef4853/recpt1/channels/sample.recpt1-channels-chiba pt1-3eccf1ef4853/recpt1/channels/sample.recpt1-channels-kanazawa pt1-3eccf1ef4853/recpt1/channels/sample.recpt1-channels-nagoya pt1-3eccf1ef4853/recpt1/channels/sample.recpt1-channels-tokyo pt1-3eccf1ef4853/recpt1/checksignal.c pt1-3eccf1ef4853/recpt1/configure.ac pt1-3eccf1ef4853/recpt1/decoder.c pt1-3eccf1ef4853/recpt1/decoder.h pt1-3eccf1ef4853/recpt1/mkpath.c pt1-3eccf1ef4853/recpt1/mkpath.h pt1-3eccf1ef4853/recpt1/pt1_dev.h pt1-3eccf1ef4853/recpt1/recpt1.c pt1-3eccf1ef4853/recpt1/recpt1.h pt1-3eccf1ef4853/recpt1/recpt1ctl.c pt1-3eccf1ef4853/recpt1/tssplitter_lite.c pt1-3eccf1ef4853/recpt1/tssplitter_lite.h [foltia@foltiadev ~]$ ls 3eccf1ef4853.tar.bz2 c44e16dbb0e2.tar.bz2 pt1-c44e16dbb0e2 Desktop pt1-3eccf1ef4853
解凍され、pt1-c44e16dbb0e2とpt1-3eccf1ef4853の2つのフォルダができていることが確認する。
PT2のドライバインストール
最新のバージョン(3eccf1ef4853)のドライバをインストール。
[foltia@foltiadev ~]$ cd pt1-3eccf1ef4853/driver [foltia@foltiadev driver]$ make revh=`hg parents --template '#define DRV_VERSION "r{rev}:{node|short}"\n#define DRV_RELDATE "{date|shortdate}"\n' 2>/dev/null`; \ if [ -n "$revh" ] ; then \ echo "$revh" > version.h; \ else \ printf "#define DRV_VERSION \""1.1.0"\"\n#define DRV_RELDATE \""2010-01-27"\"\n" > version.h; \ fi make -C /lib/modules/`uname -r`/build M=`pwd` V=0 modules make[1]: ディレクトリ `/usr/src/kernels/2.6.18-164.el5-i686' に入ります CC [M] /home/foltia/pt1-3eccf1ef4853/driver/pt1_pci.o CC [M] /home/foltia/pt1-3eccf1ef4853/driver/pt1_i2c.o CC [M] /home/foltia/pt1-3eccf1ef4853/driver/pt1_tuner.o CC [M] /home/foltia/pt1-3eccf1ef4853/driver/pt1_tuner_data.o LD [M] /home/foltia/pt1-3eccf1ef4853/driver/pt1_drv.o Building modules, stage 2. MODPOST CC /home/foltia/pt1-3eccf1ef4853/driver/pt1_drv.mod.o LD [M] /home/foltia/pt1-3eccf1ef4853/driver/pt1_drv.ko make[1]: ディレクトリ `/usr/src/kernels/2.6.18-164.el5-i686' から出ます [foltia@foltiadev driver]$ su - パスワード: [root@foltiadev ~]# cd /home/foltia/pt1-3eccf1ef4853/driver/ [root@foltiadev driver]# make install install -m 644 pt1_drv.ko /lib/modules/`uname -r`/kernel/drivers/video if [ -d /etc/udev/rules.d -a ! -f /etc/udev/rules.d/99-pt1.rules ] ; then \ install -m 644 etc/99-pt1.rules /etc/udev/rules.d ; \ fi depmod -a [root@foltiadev driver]# modprobe pt1_drv [root@foltiadev driver]# ls /lib/modules/2.6.18-164.el5/kernel/drivers/video/ backlight/ cyblafb.ko intelfb/ nvidia/ riva/ vga16fb.ko cirrusfb.ko i810/ kyro/ pt1_drv.ko savage/ vgastate.ko [root@foltiadev driver]# ls /etc/udev/rules.d/ 05-udev-early.rules 60-raw.rules 90-dm.rules 40-multipath.rules 60-wacom.rules 90-hal.rules 50-udev.rules 61-uinput-stddev.rules 95-pam-console.rules 51-hotplug.rules 61-uinput-wacom.rules 99-pt1.rules 60-net.rules 85-pcscd_ccid.rules bluetooth.rules 60-pcmcia.rules 90-alsa.rules [root@foltiadev driver]# exit logout
最後にpt1_drv.koと99-pt1.rulesがあることを確認する。
b25のインストール
暗号の解除を行うb25をインストールする。b25のソースは「c44e16dbb0e2」より新しいものには入っていないため、古いバージョンを用いてインストールする。
[foltia@foltiadev driver]$ cd /home/foltia/pt1-c44e16dbb0e2/arib25/src/ [foltia@foltiadev src]$ make gcc -MM arib_std_b25.c b_cas_card.c multi2.c ts_section_parser.c -Wall `pkg-config libpcsclite --cflags` -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 > Makefile.dep gcc -O2 -g -fPIC -Wall `pkg-config libpcsclite --cflags` -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c -o arib_std_b25.o arib_std_b25.c gcc -O2 -g -fPIC -Wall `pkg-config libpcsclite --cflags` -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c -o b_cas_card.o b_cas_card.c gcc -O2 -g -fPIC -Wall `pkg-config libpcsclite --cflags` -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c -o multi2.o multi2.c gcc -O2 -g -fPIC -Wall `pkg-config libpcsclite --cflags` -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c -o ts_section_parser.o ts_section_parser.c gcc -O2 -g -fPIC -Wall `pkg-config libpcsclite --cflags` -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c -o td.o td.c gcc -o b25 arib_std_b25.o b_cas_card.o multi2.o ts_section_parser.o td.o `pkg-config libpcsclite --libs` -lm gcc -shared -o libarib25.so arib_std_b25.o b_cas_card.o multi2.o ts_section_parser.o `pkg-config libpcsclite --libs` -lm -Wl,-soname,libarib25.so.0 [foltia@foltiadev src]$ su - パスワード: [root@foltiadev ~]# cd /home/foltia/pt1-c44e16dbb0e2/arib25/src [root@foltiadev src]# make install mkdir -p /usr/local/include/arib25 install -m644 arib_std_b25.h b_cas_card.h portable.h /usr/local/include/arib25 install -m755 b25 /usr/local/bin install -m755 libarib25.so /usr/local/lib/libarib25.so.0.2.4 ln -sf /usr/local/lib/libarib25.so.0.2.4 /usr/local/lib/libarib25.so.0 ln -sf /usr/local/lib/libarib25.so.0 /usr/local/lib/libarib25.so ldconfig [root@foltiadev src]# exit logout
recpt1のインストール
録画ツールのrecpt1をインストールする。これは最新のバージョン(3eccf1ef4853)のものからインストールする。
[foltia@foltiadev ~]$ cd /home/foltia/pt1-3eccf1ef4853/recpt1/ [foltia@foltiadev recpt1]$ ./autogen.sh Generating configure script and Makefiles for recpt1. Running aclocal ... Running autoheader ... Running autoconf ... [foltia@foltiadev recpt1]$ ./configure -enable-b25 checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking for create_arib_std_b25 in -larib25... yes checking for log10 in -lm... yes checking for pthread_kill in -lpthread... yes configure: creating ./config.status config.status: creating Makefile config.status: creating config.h [foltia@foltiadev recpt1]$ make revh=`hg parents --template 'const char *version = "r{rev}:{node|short} ({date|shortdate})";\n' 2>/dev/null`; \ if [ -n "$revh" ] ; then \ echo "$revh" > version.h; \ else \ echo "const char *version = \""1.1.0"\";" > version.h; \ fi gcc -MM recpt1.c decoder.c mkpath.c tssplitter_lite.c recpt1ctl.c -I../driver -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 > .deps gcc -O2 -g -pthread -I../driver -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c -o recpt1.o recpt1.c gcc -O2 -g -pthread -I../driver -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c -o decoder.o decoder.c gcc -O2 -g -pthread -I../driver -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c -o mkpath.o mkpath.c gcc -O2 -g -pthread -I../driver -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c -o tssplitter_lite.o tssplitter_lite.c gcc -o recpt1 recpt1.o decoder.o mkpath.o tssplitter_lite.o -lpthread -lm -larib25 gcc -O2 -g -pthread -I../driver -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c -o recpt1ctl.o recpt1ctl.c gcc -o recpt1ctl recpt1ctl.o gcc -O2 -g -pthread -I../driver -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c -o checksignal.o checksignal.c gcc -o checksignal checksignal.o -lpthread -lm [foltia@foltiadev recpt1]$ su - パスワード: [root@foltiadev ~]# cd /home/foltia/pt1-3eccf1ef4853/recpt1/ [root@foltiadev recpt1]# make install install -m 755 recpt1 recpt1ctl checksignal /usr/local/bin [root@foltiadev recpt1]# echo "/usr/local/lib" > /etc/ld.so.conf.d/recpt1.conf [root@foltiadev recpt1]# ldconfig [root@foltiadev recpt1]# exit logout
録画テスト
最後に録画テスト。使い方はヘルプをみるとわかりやすい。
[foltia@foltiadev recpt1]$ ./recpt1 -h Usage: recpt1 [--b25 [--round N] [--strip] [--EMM]] [--udp [--addr hostname --port portnumber]] [--device devicefile] [--lnb voltage] [--sid SID1,SID2] channel rectime destfile Remarks: if rectime is '-', records indefinitely. if destfile is '-', stdout is used for output. Options: --b25: Decrypt using BCAS card --round N: Specify round number --strip: Strip null stream --EMM: Instruct EMM operation --udp: Turn on udp broadcasting --addr hostname: Hostname or address to connect --port portnumber: Port number to connect --device devicefile: Specify devicefile to use --lnb voltage: Specify LNB voltage (0, 11, 15) --sid SID1,SID2,...: Specify SID number in CSV format (101,102,...) --help: Show this help --version: Show version --list: Show channel list Available Channels: 13-62: Terrestrial Channels 101ch: NHK BS1 102ch: NHK BS2 103ch: NHK BShi 141ch: BS Nittele 151ch: BS Asahi 161ch: BS-TBS 171ch: BS Japan 181ch: BS Fuji 191ch: WOWOW 192ch: WOWOW2 193ch: WOWOW3 200ch: Star Channel 211ch: BS11 Digital 222ch: TwellV C13-C63: CATV Channels CS2-CS24: CS Channels
チャンネルはエリアによって異なる。マスプロのチャンネル一覧を見てチャンネルを確認すること。ちなみに、PT2のチューナーとデバイスの対応は、/dev/pt1video0と/dev/pt1video1がBSデジタル/CS110、/dev/pt1video2と/dev/pt1video3が地デジとなる。今回は全国共通のBSデジタル(BS11 Digital)で録画テストを実行。
[foltia@foltiadev recpt1]$ ./recpt1 --b25 --strip --device /dev/pt1video0 211 20 /home/foltia/test.ts using B25... enable B25 strip using device: /dev/pt1video0 pid = 5158 C/N = 16.663467dB Recording... Recorded 20sec [foltia@foltiadev recpt1]$
録画したファイルをVLCで開くと、ちゃんと再生された!これで録画に関わる部分は完成。これを基本にして、次はfoltiaのインストールを掲載予定。