コピペでできる録画サーバー on Linux with PT2 (recpt1 録画編)
※2015/5/9更新
CentOS7で再構築した際に追加した手順を追記
※2013/6/16更新
recpt1を公式版から各種パッチ用の適用や機能の追加が行われているSTZ版に変更しました。
またPT3ドライバ導入手順も追加しました。
前回でOSのインストールは終了しました。
いよいよ録画の設定に入ります。
この章ではコマンドからPT2を利用して番組を録画して、その番組を他のWindowsPCから再生できるようにします。
がその前に最低限のOSの設定をしておきましょう。
ここからはLinuxの設定に入っていきますが、環境によってはエラーなどが発生するかもしれません。
その場合はコメントに実行したコマンドとエラー出力を貼り付けていただければ、解決のお手伝いをさせて頂きます。
基本的に作業はrootユーザーで行います。
su -
httpとsambaのポートに対して同一サブネットからアクセスできるように設定します。(だいぶ先で使います)
- A INPUT -s 192.168.1.0/24 -j SUBNETの部分は、自宅のサブネットに合わせて変更してください。
192.168.0.Xだったら、-A INPUT -s 192.168.0.0/24 -j SUBNETになります。
cat << '_EOF_' > /etc/sysconfig/iptables *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] :SUBNET - [0:0] # lo -A INPUT -i lo -j ACCEPT # SUBNET -A INPUT -s 192.168.1.0/24 -j SUBNET # All -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited # SUBNET -A SUBNET -p tcp -m tcp --dport 80 -j ACCEPT -A SUBNET -p tcp -m tcp --dport 445 -j ACCEPT COMMIT _EOF_ /etc/init.d/iptables restart
32bitライブラリを削除
yum -y remove *-devel.i386
updateから32bit関連を除外
echo "exclude=*-devel.i386" >> /etc/yum.conf
update
yum -y update
とりあえず再起動
reboot
ここからはとうとうPT2関連の設定に入ってきます。
ICカードリーダー
/etc/init.d/pcscd start chkconfig pcscd on
ICカードリーダー動作確認ツール
mkdir -p /usr/local/src/PT2/scan cd /usr/local/src/PT2/scan 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.x86_64.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.x86_64.rpm rpm -ivh pcsc-perl-1.4.6-2.fc8.x86_64.rpm --nodeps rpm -ivh pcsc-tools-1.4.10-1.fc8.x86_64.rpm --nodeps wget http://ludovic.rousseau.free.fr/softwares/pcsc-tools/smartcard_list.txt --output-document=/root/.smartcard_list.txt pcsc_scan
pcsc_scanで以下の記述が見つかればICカードリーダーは正常に動作しています。
Sun Dec 12 19:15:34 2010
Reader 0: SCM SCR 3310 NTTCom
Card state: Card inserted,
OSがPT2を認識しているか確認
lspci |grep Multimedia
こんな感じに表示されていればOK
- PT2
05:00.0 Multimedia controller: Xilinx Corporation Unknown device 222a (rev 01)
- PT3
20:00.0 Multimedia controller: Altera Corporation Device 4c15 (rev 01)
gitのインストール
yum -y install git
DVB版ドライバを無効化
- 今回利用するのはchardev版ですが、現在のLinuxにはDVB版のドライバが標準で搭載されているので、これを無効化します。
echo "blacklist earth-pt1" >> /etc/modprobe.d/blacklist.conf
ドライバのインストール
- PT1,PT2の場合
cd /usr/local/src/PT2/ git clone https://github.com/stz2012/recpt1.git cd recpt1/driver/ make make install modprobe pt1_drv echo "/usr/local/lib" > /etc/ld.so.conf.d/usr.conf
- PT3の場合
yum -y install kernel-devel.x86_64 cd /usr/local/src/PT2/ git clone https://github.com/m-tsudo/pt3.git cd pt3 make make install modprobe pt3_drv echo "/usr/local/lib" > /etc/ld.so.conf.d/usr.conf
CentOS7.1では以下の作業も実施しました。
yum -y install epel-release yum -y install dkms chmod +x dkms.install ./dkms.install
pt1_thread runとなっていればOK
- PT2の場合
[root@pt2 ~]# dmesg |grep pt1 pt1-pci.c: 1.1.0 2010-01-27 pt1_thread run
- PT3の場合
[root@pt3 pt3]# dmesg |grep pt3 PT3: pt3_drv 0.0.1rev99 2013-08-05 pt3_drv 0000:20:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 pt3_drv 0000:20:00.0: setting latency timer to 64
暗号化解除b25 arib25
法律改正によって暗号を解除して記録することが違法?になったようです。
紹介も幇助と受け取られかねないので省略させて頂きます。
暗号化したまま保存をしておき再生時にデコードするためには、Marumo ISDB splitterを使いましょう。
これでTVと同じ仕組みとなります。
以降暗号を解除しない場合には--b25オプションを削ってください。
必要なライブラリをインストール
yum -y install ld-linux.so.2 yum -y install autoconf automake
PT2録画ツールのインストール
cd /usr/local/src/PT2/recpt1/recpt1 sh autogen.sh ./configure --enable-b25 make make install
地上波録画テスト
cd ~ cat << '_EOF_' > record.sh #!/bin/sh for ((i=10;i<40;i++)) do echo 5 seconds recording channel $i /usr/local/bin/recpt1 --b25 --strip --sid hd $i 5 test$i.ts done _EOF_ sh record.sh
録画中にこんな表示がされる場合もあるけど無視でOK
/usr/local/bin/recpt1: unrecognized option `--b25'
/usr/local/bin/recpt1: unrecognized option `--strip'
こんな感じに録画できていればOK
[root@pt2 ~]# ls *.ts test17.ts test20.ts test22.ts test24.ts test26.ts test28.ts test32.ts test18.ts test21.ts test23.ts test25.ts test27.ts test30.ts
コマンド解説 b25で暗号解除、27ch(NHK)を10秒ハイビジョン放送だけ録画する
recpt1 --b25 --strip --sid hd 27 10 test.ts
以上でコマンドから録画できるようになりました。
サーバ側がCUIしかインストールしていない場合、これでは再生できないのでWindowsにファイルを渡すためのファイル共有の設定をします。
SELinuxの無効化
perl -pi -e 's|^SELINUX(.)+|SELINUX=disabled|' /etc/selinux/config
再起動
reboot
こうなればOK
[root@pt2 ~]# getenforce Disabled
Sambaのインストール
yum -y install samba3x or yum -y install samba
ユーザーの作成
Linuxの一般ユーザーを作成していない場合はuseraddで作成
useradd ユーザー名 passwd パスワード入力
次にsamba用のユーザーをpdbeditで作成
pdbedit -a ユーザー名 パスワード入力
共有フォルダの作成
mkdir -p /home/services/samba chmod 777 /home/services/samba
Sambaの設定
netbios nameには、環境に合わせてhostnameを設定してください。hosts allowもクライアントのサブネット環境に統一してください。クライアントのIPアドレスが192.168.0.1ならhosts allowは、hosts allow = 127. 192.168.0.となります。
cat << '_EOF_' > /etc/samba/smb.conf [global] workgroup = WORKGROUP server string = Samba Server Version %v smb ports = 445 netbios name = pt2 hosts allow = 127. 192.168.1. security = user passdb backend = tdbsam wins support = yes load printers = no # for Mac config unix extensions = no wide links = yes [public] comment = Public Stuff path = /home/services/samba public = yes writable = yes _EOF_
起動
/etc/init.d/smb start chkconfig smb on
WindowsからLinuxを参照
Windowsのエクスプローラを開き ツール -> ネットワークドライブの割り当て -> \\サーバのIPアドレス\でWindowsから/home/services/sambaを参照できるようになります。