<<
トップページへ
■概要
黒Friioを運良く入手できたのでこれをLinuxで運用するための
Tipsをまとめてみようと思います。
動作を確認できたのはCentOS5 2.6.18-53.1.14.el5です。
■実験の材料
最初にプログラム作成者に感謝です!
friioで録画するためのプログラム
up0493.zip recfriiobs
暗号解除のためのプログラム
up0404.zip b25
カードリーダー関連の必要なパッケージ
ここで注意するべき事は
el5純正のccid-1.0.1-6.el5で
はバージョンが古くてカードを認識しない事です。
pcsc-tools-1.4.8-1(pcsc-tools-1.4.8-1.src.rpmよりリビルド)
pcsc-perl-1.4.7-1
pcsc-lite-libs-1.3.3-1.rf
pcsc-lite-devel-1.3.3-1.rf
pcsc-lite-1.3.3-1.rf
pcsc-lite-doc-1.3.3-1.rf
ccid-1.2.1-1.fc7
■CentOS5 recfriiobsのコンパイル
CentOS5ではふつうにコンパイルするとエラーが出て途中でとまります。
ソースの修正を行います。
$ unzip up0493.zip
$ cd recfriiobsr1
$ make
g++ -O2 -g -Wall -pthread -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
`pkg-config --cflags glib-2.0` -c -o recfriiobs.o
recfriiobs.cpp
−−−−−−−−中略−−−−−−−−−
recfriiobs.cpp:471: 警告: ‘void tuner_claim(int, unsigned int)’ defined
but not used
recfriiobs.cpp:445: 警告: ‘int tuner_readts(int, uint8_t*, int)’ defined
but not used
make: *** [recfriiobs.o] エラー 1
ソースの修正
(1)29行目
修正前 #include <linux/usb/ch9.h>
修正後 #include <linux/usb
_ch9.h>
(2)840行目
std::cout << "Search friios from dir: "
<< base_dir << std::endl;
この行を削除
(3)
修正前LIBS = -lpthread -lboost_thread
-mt -lboost_filesystem
-lboost_regex `pkg-config --libs glib-2.0`
修正後LIBS = -lpthread -lboost_thread
-lboost_filesystem
-lboost_regex
`pkg-config --libs glib-2.0`
-mtを削除する。
再度コンパイルをしてみると
$ make
g++ -O2 -g -Wall -pthread -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
`pkg-config --cflags glib-2.0` -c -o recfriiobs.o
recfriiobs.cpp
recfriiobs.cpp:471: 警告: ‘void tuner_claim(int, unsigned int)’ defined
but not used
recfriiobs.cpp:445: 警告: ‘int tuner_readts(int, uint8_t*, int)’ defined
but not used
g++ -o ./recfriiobs recfriiobs.o -lpthread -lboost_thread
-lboost_filesystem -lboost_regex `pkg-config --libs glib-2.0`
コンパイルが成功するとrecfriiobsが生成されます。/usr/local/bin/の下にコピーしてパスを通しておきます。
$ unzip up0404.zip
$ cd marumolinuxr3/arib25v021/arib25/src
$ make
gcc -Wall -O2 -g `pkg-config libpcsclite --cflags` -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -c -o arib_std_b25.o arib_std_b25.c
gcc -Wall -O2 -g `pkg-config libpcsclite --cflags` -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -c -o b_cas_card.o b_cas_card.c
gcc -Wall -O2 -g `pkg-config libpcsclite --cflags` -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -c -o multi2.o multi2.c
gcc -Wall -O2 -g `pkg-config libpcsclite --cflags` -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -c -o td.o td.c
gcc -Wall -O2 -g `pkg-config libpcsclite --cflags` -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -c -o ts_section_parser.o
ts_section_parser.c
gcc `pkg-config libpcsclite --libs` -lm -o b25 arib_std_b25.o
b_cas_card.o multi2.o td.o ts_section_parser.o
$ cd marumolinuxr3/arib25v021
# cp libccid_Info.plist
/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist
# cp ./smartcard_list.txt /usr/share/pcsc/smartcard_list.txt
コンパイルが成功するとがmarumolinuxr3/arib25v021/arib25/srcの下にb25が生成されます。
/usr/local/bin/の下にコピーしてパスを通しておきます。
■カード認識
最初に行うべき作業は上記パッケージをインストールしてその後friioを接続してカードを認識できているかを確認する事です。
$ pcsc_scan
PC/SC device scanner
V 1.4.8 (c) 2001-2006, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.3.3
Scanning present readers
0: Alcor Micro AU9520 00 00
Sun May 11 11:06:36 2008
Reader 0: Alcor Micro AU9520 00 00
Card state: Card inserted,
ATR: 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99
ATR: 3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99
+ TS = 3B --> Direct Convention
+ T0 = F0, Y(1): 1111, K: 0 (historical bytes)
TA(1) = 12 --> Fi=372, Di=2, 186 cycles/ETU (19200 bytes/s at
3.57 MHz)
TB(1) = 00 --> VPP is not electrically connected
TC(1) = FF --> Extra guard time: 255 (special value)
TD(1) = 91 --> Y(i+1) = 1001, Protocol T = 1
-----
TA(2) = 81 --> Protocol to be used in spec mode: T=1 - Unable
to change - defined by interface bytes
TD(2) = B1 --> Y(i+1) = 1011, Protocol T = 1
-----
TA(3) = 7C --> IFSC: 124
TB(3) = 45 --> Block Waiting Integer: 4 - Character Waiting
Integer: 5
TD(3) = 1F --> Y(i+1) = 0001, Protocol T = 15 - Global
interface bytes following
-----
TA(4) = 03 --> Clock stop: not supported - Class accepted by
the card: (3G) A 5V B 3V
+ Historical bytes:
+ TCK = 99 (correct checksum)
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
■スクリプト
- 録画テスト及び再生確認スクリプト
$ cat TEST-friioBS
#!/bin/csh
echo""
echo "./recfriiobs 録画するチャンネル 録画秒数 出力先ファイル名" echo ""
/usr/local/recfriiobs/recfriiobs
echo ""
echo "Input CH-No"
set ch = $<
echo ""
echo "Input Time(s)"
set t = $< echo ""
set file = `date +%F-%H-%M-%S`
echo ""
echo "$file"
echo ""
# /usr/local/recfriiobs/recfriiobs $ch $t
$file
# set file2 = `echo $file`.ts echo "録画ファイル名" echo $file2 echo ""
/usr/local/recfriiobs/b25 $file $file2
sleep 2
/usr/bin/vlc $file2