DVBデバイスは処理的に重たいので、低スペックな環境でも使いやすいchardev版ドライバでPT3を使う。
pt3_drvのインストール
pt3_drvはLinuxカーネルが更新される度に再ビルドが必要になるので、これを自動的に行うdkmsとビルドに必要なlinux-headers、pt3_drvのソースを取得するのに必要なgitをインストールして、pt3_drvのソースを取得、pt3_drvをdkmsに登録してビルドとインストールを行うスクリプトを実行する。
sudo apt-get install -y git dkms linux-headers-`uname -r` git clone https://github.com/m-tsudo/pt3.git cd pt3 sudo bash ./dkms.install
PT3のDVB版ドライバであるearth-pt3が起動時に読み込まれないように設定を追加して、再起動する。
echo 'blacklist earth-pt3' | sudo tee -a /etc/modprobe.d/blacklist.conf sudo reboot
libarib25のインストール
pt3_drvで使う録画コマンドでスクランブル解除を行うためのライブラリであるlibarib25は、pt1_drvのソースの古いリビジョンにしか含まれていないので、ソースを古いリビジョンに戻した後、最新のリビジョンに更新して取得する。取得後、ビルドとインストールを行う。ソース取得やビルドおよび動作に必要なmercurial、make、gcc、pkg-config、libpcsclite-dev、pcscdは予めインストールしておく。
sudo apt-get install -y mercurial make gcc pkg-config libpcsclite-dev pcscd cd pt1 hg revert -r c44e16dbb0e2 --all hg revert -r tip --all cd arib25/src make sudo make install cd ../../..
recpt1のインストール
pt3_drvで使う録画コマンドのrecpt1はpt1_drvのソースに含まれている。pt3_drvのデバイスファイルである/dev/pt3video0~/dev/pt3video15をBS/110度CSと地デジのチャンネル選択時に自動選定されるようにpt1_dev.hに設定を追加する。autogen後にconfigureでlibarib25を使う指定を行い、ビルドとインストールを行う。ビルドに必要なmake、gcc、autoconf、automakeは予めインストールしておく。
sudo apt-get install -y make gcc autoconf automake cd pt1/recpt1 sed -i -e '/^char \*bsdev\[NUM_BSDEV\] = {$/a\ "\/dev\/pt3video1",\n "\/dev\/pt3video0",\n "\/dev\/pt3video5",\n "\/dev\/pt3video4",\n "\/dev\/pt3video9",\n "\/dev\/pt3video8",\n "\/dev\/pt3video13",\n "\/dev\/pt3video12",' pt1_dev.h sed -i -e '/^char \*isdb_t_dev\[NUM_ISDB_T_DEV\] = {$/a\ "\/dev\/pt3video2",\n "\/dev\/pt3video3",\n "\/dev\/pt3video6",\n "\/dev\/pt3video7",\n "\/dev\/pt3video10",\n "\/dev\/pt3video11",\n "\/dev\/pt3video14",\n "\/dev\/pt3video15",' pt1_dev.h ./autogen.sh ./configure --enable-b25 make sudo make install cd ../..
※--deviceでデバイスファイル名を直接指定する場合はpt1_dev.hを書き換える必要は無い。また、recpt1をPT3でしか使用しない場合は「sed -i -e 's/pt1video/pt3video/g' pt1_dev.h」でPT3のデバイスファイルのみに書き換えても良い。
Mirakurunのチューナー設定
name:でチューナー名を任意に設定し、types:で地デジが受信できるならGR、BSが受信できるならBS、110度CSが受信できるならCSを設定、command:で録画コマンドのrecpt1に--b25オプションでスクランブル解除を指定、--deviceで/dev/pt1video0から始まるチューナーのデバイスファイルを指定、アンテナへの電源供給が必要な場合はBS/110度CSの場合に「--lnb 15」を加えると良い、最後にチャンネルを指定、続く「-」は録画秒数を無制限にする指定、末尾の「-」は録画先を標準出力にする指定。必要に応じて--b25でスクランブル解除せずに、decoder:でスクランブル解除コマンドを設定しても良い。
下記はPT3を1枚使う例。pt3_drvのデバイスファイルの番号はBS/110度CSが2チューナー続いた後に地デジが2チューナー続くようになっている。
cat << 'EOT' | sudo tee /usr/local/etc/mirakurun/tuners.yml - name: PT3-S1 types: - BS - CS command: recpt1 --b25 --device /dev/pt1video0 <channel> - - - name: PT3-S2 types: - BS - CS command: recpt1 --b25 --device /dev/pt1video1 <channel> - - - name: PT3-T1 types: - GR command: recpt1 --b25 --device /dev/pt1video2 <channel> - - - name: PT3-T2 types: - GR command: recpt1 --b25 --device /dev/pt1video3 <channel> - - EOT
スクランブル解除コマンドが必要な場合、libarib25のb25コマンドを使うシェルスクリプトを作成すると「decoder: arib-b25-stream」のように指定して使うことが出来る。
cat << 'EOT' | sudo tee /usr/local/bin/arib-b25-stream #!/bin/sh sh -c cat | b25 -v 0 /dev/stdin /dev/stdout | cat EOT sudo chmod +x /usr/local/bin/arib-b25-stream