本BLOGはUbuntuによるEco Linuxサーバ構築記に移転しました。

PT3、UbuntuLinux12.04、epgrecで録画サーバを作る。

■■■ 更新履歴 ■■■

【2012/9/29】スマートカードリーダのバグや、電波状況による録画失敗対策を実施した結果を踏まえて加筆修正を行いました。

■■■ PT3関連記事 ■■■

PT3のLinux版ドライバが有志の方々の努力により開発を進められており、
その環境構築を行った際の覚書です。

■■ 事前に購入し、今回の構築で使ったもの。
今回のPT3サーバ構築にあたって下記のハードウェアを用意しました。
メモリを追加しても4万円以下と言う静かなPT3サーバとなりました。
メモリを追加しなければ3万円前後で構築可能です。

  • 富士通静音サーバ TX100 S3 (14000円程度)
  • PT3 (13600円程度)
  • ECCメモリ 8G (5000~8000円程度)
  • NTT-ME SCR3310-NTTCom or SCR3310/v2.0 (1500~2200円程度)
    (カードリーダはSCR3310の1000円程度の物もあったが、評価がさんざんだったので除外。)


※ちなみに、TX100 S3を買った時点で2Gのメモリがデフォルトでくっついています。
 普通に使うなら、メモリの増設は必要ありませんが、
 後で仮想化サーバ等も動かす予定なので、安いうちにメモリを追加購入した次第です。


■■ OS:Ubuntu Server 12.04 LTS
http://www.ubuntu.com/download/server

■■ epgrec関係のファイルをsourceforgeよりDLさせて貰う
ここから事前にDLさせて貰うファイル
・epgrec_20111001.tar.gz
・epgdumpr2_20111001.tar.gz

■ 事前に入手・購入しておいた物の再確認
・PT3を挿すサーバ本体
・PT3カード本体
・B-CASカード
・スマートカードリーダ

■ PT3が手に入ったら行う事
・PT3の回路の更新をPT3 wikiを参考に実施。
 回路更新だけはWindows環境で実施する必要がある。
 Windowsを持っていない場合には、
 WindowsServer2008R2の評価版でもDLしてきて、
 Windows7向けに書かれているwiki等を参考に必要カ所をWS2008R2に読み替えて実施。
 当方もWS2008R2で回路更新を実施し、問題なく完了する事を確認済みです。

■ ubuntuのインストール
今回はubuntu server 12.04で実施。
特別なことは一切せずに普通にインストールを実施。
※この時点で追加のインストールは一切行っていない。


■ 周辺パッケージのインストール
$ sudo apt-get install samba sshd-server git unzip pkg-config linux-headers-3.2.0-23-generic automake
$ sudo apt-get install build-essential

■ スマートカードリーダのバグ対策
ubuntu11.11の時もそうだったが、スマートカードリーダにバグがあるので回避する。
何も対策をせずにubuntu12.04をインストールして、SCR3310-NTTComを使おうとすると、録画に失敗する事がありますので、スマートカードリーダ関係のパッケージはバージョンを固定してインストールする必要があります。

■ もしも、pscsd等をインストールしてしまっていた場合には、下記を実行
$ sudo aptitude remove pcscd libpcsclite-dev libpcsclite1 libccid libpcsc-perl pcsc-tools

$ sudo vi /etc/apt/sources.list
下記をファイルの末尾に追加
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu maverick main universe
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu maverick main universe
deb http://security.ubuntu.com/ubuntu maverick-security main universe
deb-src http://security.ubuntu.com/ubuntu maverick-security main universe

$ sudo apt-get update
$ sudo apt-get install pcscd=1.5.5-3ubuntu2.1 libpcsclite1=1.5.5-3ubuntu2.1 libccid=1.3.11-1 pcsc-tools=1.4.16-1

■ バージョン固定したいライブラリは下記の通り
pcscd-1.5.5-3ubuntu2.1
libpcsclite1-1.5.5-3ubuntu2.1
libccid-1.3.11-1
pcsc-tools-1.4.16-1

■ スマートカードリーダ関係のライブラリのバージョン固定前の状態を確認
$ sudo dpkg --get-selections | grep hold

※新規インストール直後だと、何も結果が返ってこないはず。


■ 一応、インストール済みのパッケージを確認する
$ sudo dpkg --list | grep "pcscd\|libpcsclite1\|libccid\|pcsc-tools"
ii  libccid                           1.3.11-1                            PC/SC driver for USB CCID smart card readers
ii  libpcsclite1                      1.5.5-3ubuntu2.1                    Middleware to access a smart card using PC/SC (library)
ii  pcsc-tools                        1.4.16-1                            Some tools to use with smart cards and PC/SC
ii  pcscd                             1.5.5-3ubuntu2.1                    Middleware to access a smart card using PC/SC (daemon side)

■ バージョンを固定する為にwajigをインストール
$ sudo apt-get install wajig


■ バージョン固定する
$ sudo wajig hold pcscd
$ sudo wajig hold libpcsclite1
$ sudo wajig hold libccid
$ sudo wajig hold pcsc-tools

■ バージョン固定した結果を確認。
$ sudo dpkg --get-selections | grep hold
libccid                                         hold
libpcsclite1                                    hold
pcsc-tools                                      hold
pcscd                                           hold

※ holdになっていることを確認

■ パケージの更新時に固定したパッケージが含まれてしまわない事を確認
$ sudo apt-get update
$ sudo apt-get -s upgrade


以下のパッケージは保留されます:
  libccid libgnome2-0 libpcsclite1 linux-generic linux-image-generic pcsc-tools pcscd
以下のパッケージはアップグレードされます:
  accountsservice apt apt-transport-https apt-utils base-files bind9-host build-essential dbus dbus-x11 dconf-gsettings-backend dconf-service dnsutils fontconfig fontconfig-config ghostscript gnupg gpgv grub-common grub-pc grub-pc-bin
  grub2-common gvfs gvfs-common gvfs-daemons gvfs-libs imagemagick imagemagick-common isc-dhcp-client isc-dhcp-common language-pack-en language-pack-en-base language-pack-gnome-en language-pack-gnome-en-base libaccountsservice0
  libapache2-mod-php5 libapt-inst1.4 libapt-pkg4.12 libart-2.0-2 libbind9-80 libc-bin libc-dev-bin libc6 libc6-dev libcups2 libcupsimage2 libdbus-1-3 libdbus-1-dev libdconf0 libdns81 libexpat1 libexpat1-dev libfontconfig1
  libfontconfig1-dev libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libglu1-mesa libglu1-mesa-dev libgnome2-common libgnomevfs2-0 libgnomevfs2-common libgs9 libgs9-common libisc83 libisccc80 libisccfg82 liblwres80
  libmagickcore-dev libmagickcore4 libmagickcore4-extra libmagickwand-dev libmagickwand4 libnspr4 libnss3 libpq-dev libpq5 libpython2.7 libruby1.8 libsqlite3-0 libsqlite3-dev libssl-dev libssl-doc libssl1.0.0 libvirt-bin libvirt0
  libxml2 libxml2-dev libxml2-utils linux-firmware linux-libc-dev mesa-common-dev multiarch-support ntfs-3g openssl perl perl-base perl-modules php5 php5-cli php5-common php5-mysql policykit-1-gnome python-libvirt python-libxml2
  python2.7 python2.7-minimal qemu qemu-common qemu-kvm qemu-utils resolvconf sqlite3 tzdata ubuntu-keyring update-manager-core
アップグレード: 116 個、新規インストール: 0 個、削除: 0 個、保留: 7 個。
Inst base-files [6.5ubuntu6] (6.5ubuntu6.2 Ubuntu:12.04/precise-updates [amd64])



■ スマートカードリーダを使えるようにする。
$ sudo pcsc_scan

下記が出ていたらOK。
Japanese Chijou Digital B-CAS Card (pay TV)

■ arib25
wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip
unzip c44e16dbb0e2.zip
cd pt1-c44e16dbb0e2/arib25
make
sudo make install


■ recpt1
$ tar -zxvf pt1-drv_20111001.tar.gz
$ cd pt1-7662d0ecd74b/recpt1

# PT3を自動的に選択するようにする。
# PT2との共存を目指すなら、pt1videoの個所を半分ほど残しておけば良いかと。

$ vi pt1_dev.h

============== 修正前 ==============
char *bsdev[NUM_BSDEV] = {
    "/dev/pt1video1",
    "/dev/pt1video0",
    "/dev/pt1video5",
    "/dev/pt1video4",
    "/dev/pt1video9",
    "/dev/pt1video8",
    "/dev/pt1video13",
    "/dev/pt1video12"
};
char *isdb_t_dev[NUM_ISDB_T_DEV] = {
    "/dev/pt1video2",
    "/dev/pt1video3",
    "/dev/pt1video6",
    "/dev/pt1video7",
    "/dev/pt1video10",
    "/dev/pt1video11",
    "/dev/pt1video14",
    "/dev/pt1video15"
};

============== 修正後 ==============
char *bsdev[NUM_BSDEV] = {
    "/dev/pt3video1",
    "/dev/pt3video0",
    "/dev/pt3video5",
    "/dev/pt3video4",
    "/dev/pt3video9",
    "/dev/pt3video8",
    "/dev/pt3video13",
    "/dev/pt3video12"
};
char *isdb_t_dev[NUM_ISDB_T_DEV] = {
    "/dev/pt3video2",
    "/dev/pt3video3",
    "/dev/pt3video6",
    "/dev/pt3video7",
    "/dev/pt3video10",
    "/dev/pt3video11",
    "/dev/pt3video14",
    "/dev/pt3video15"
};

$ ./autogen.sh
$ ./configure --enable-b25
$ make
$ sudo make install


$ make clean; make ; sudo make install

■ pt3 driver
下記で公開して下さっています。
https://github.com/m-tsudo/pt3

<ドライバインストール時の注意事項>
Ubuntu 10.10 からは標準ドライバ(DVB版)が使われるようになったらしいのですが、
以前より使われているchardev版の方を利用します。

$ sudo echo "blacklist earth-pt1"  >> /etc/modprobe.d/blacklist.conf
$ git clone https://github.com/m-tsudo/pt3.git
$ cd pt3/
$ git log
$ make clean ; make
$ sudo make install

■ 一旦再起動
$ sudo reboot
$ ls -la /dev/pt* | grep video

下記のような感じになっていればOK。
crw-rw-rw- 1 root video 250, 0  8月  8 13:34 /dev/pt3video0
crw-rw-rw- 1 root video 250, 1  8月  8 13:34 /dev/pt3video1
crw-rw-rw- 1 root video 250, 2  8月  8 13:34 /dev/pt3video2
crw-rw-rw- 1 root video 250, 3  8月  8 13:34 /dev/pt3video3


■ 動作確認。下記のコマンドを実行してtest.tsが出来れば、動作確認完了。
recpt1 --b25 --strip 27 20 test.ts



■■ epgrecのインストール
sudo apt-get install apache2 php5 libapache2-mod-php5 php5-cli mysql-server php5-mysql

■ epgdumpr2(tsからepgデータを取得するコマンド)
cd epgdumpr2
make clean ; make
sudo cp epgdump /usr/local/bin

■ 事前確認
Apacheの録画管理ソフトから、Apacheの実行ユーザが
atコマンドを使って録画用のタスクを登録する。
しかし、at.denyにApache実行ユーザが書かれていた場合、
録画が出来ないことになるので、at.denyにApache実行ユーザが含まれていたら削除する。

$ sudo vi /etc/at.deny
『www-data』が含まれていたら削除


■ DBの用意
mysql -uroot -p
create database epgrec;
grant all on epgrec.* to epgrec@localhost identified by 'yourpassword';
FLUSH PRIVILEGES;

■ epgrecのインストール
epgrecを参照して実施。


$ sudo tar -zxvf epgrec_20111001.tar.gz  -C /var/www/
$ cd /var/www/epgrec
$ sudo chmod -R 777 cache
$ sudo chmod -R 777 templates_c
$ sudo chmod -R 777 video
$ sudo chmod -R 777 thumbs
$ sudo chmod -R 777 settings
$ sudo chmod -R 755 Smarty
$ sudo chmod -R 755 cron.d
$ sudo chmod -R 755 imgs
$ sudo chmod -R 755 install
$ sudo chmod -R 755 js
$ sudo chmod -R 755 start
$ sudo chmod -R 755 templates
$ sudo chmod 755 do-record.sh*
$ sudo chmod 755 do-record.sh.friio*
$ sudo chmod 755 do-record.sh.test*
$ sudo chmod 755 do-record.sh.pt1*
$ sudo chmod 755 getepg.php*
$ sudo chmod 755 recomplete.php*
$ sudo chmod 755 gen-thumbnail.sh

$ sudo mv config.php.sample config.php
$ sudo vi config.php
 上記でチャンネル設定などを適度に編集する。
$ sudo mv do-record.sh.pt1 do-record.sh

で、ブラウザで下記のURLを開いて必要情報を設定する。
(IPアドレス部分はこのLinuxサーバに適度に変えてください。)
http://192.168.100.100/epgrec


■ 番組表の更新の為のcronの登録
$ sudo cp cron.d/getepg /etc/cron.d/

2013年9月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30