Mirakurunのチューナー設定(PT3をchardev版ドライバで使う場合)

 DVBデバイスは処理的に重たいので、低スペックな環境でも使いやすいchardev版ドライバでPT3を使う。

pt3_drvのインストール

 pt3_drvLinuxカーネルが更新される度に再ビルドが必要になるので、これを自動的に行う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