さんぱくん外出(US-3POUT)は無改造でLinuxから扱えるが、DVBデバイスとしては使えず、専用の録画コマンドで扱うことになる。
udevルールの作成
US-3POUTのデバイスファイルを録画コマンドのrecfsusb2nで扱えるように、videoグループの所有としてパーミッションを適切に設定するudevルールを作成した後、再起動して適用する。
echo 'SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0511", ATTRS{idProduct}=="0045", MODE="0664", GROUP="video"' | sudo tee /etc/udev/rules.d/91-tuner.rules sudo reboot
libaribb25のインストール
録画コマンドのrecfsusb2nでスクランブル解除を行うためのライブラリであるlibaribb25(libarib25では無い)のソースを取得、ビルド、インストールする。ソースの取得やビルドおよび動作に必要なgit、make、gcc、g++、pkg-config、libpcsclite-dev、pcscdは予めインストールしておく。
sudo apt-get install -y git make gcc g++ pkg-config libpcsclite-dev pcscd git clone https://github.com/epgdatacapbon/libaribb25 cd libaribb25 make sudo make install cd ..
recfsusb2nのインストール
US-3POUTに対応した録画コマンドのrecfsusb2n(KTV-FSUSB2等で使う同名のコマンドとは異なるので注意)のソースを取得、CATVチャンネルのC13~C63に対応させるためにutils.c書き換え、BS11のチャンネルの誤りの修正とBS1_0~BS9_2をrecpt1と同じBS01_0~BS09_2となるようにrecfsusb2n.confを書き換えた後、B25=1(スクランブル解除対応)を指定してビルド、インストールを行う。
git clone https://github.com/epgdatacapbon/recfsusb2n cd recfsusb2n/src sed -i -e 's/^\t\tc = atoi(ptr);$/\t\tif(ptr[0] != '\''C'\'') {\n\t\t\tc = atoi(ptr);\n\t\t}else{\n\t\t\tc = atoi(ptr + 1);\n\t\t}/' utils.c sed -i -e 's/^\tif(13 <= c && c <= 62) {$/\tif(ptr[0] != '\''C'\'' \&\& 13 <= c \&\& c <= 62) {/' utils.c sed -i -e '/^\t}else if(101 <= c && c <= 150) {$/i\\t}else if(ptr[0] == '\''C'\'' && 13 <= c && c <= 21) {\n\t\t//# CATV (13, 14, .., 21)\n\t\targs->freq = (c - 13) * 6000 + 111143;\n\t}else if(ptr[0] == '\''C'\'' && c == 22) {\n\t\t//# CATV (22)\n\t\targs->freq = (c - 22) * 6000 + 167143;\n\t}else if(ptr[0] == '\''C'\'' && 23 <= c && c <= 63) {\n\t\t//# CATV (23, 24, .., 63)\n\t\targs->freq = (c - 23) * 6000 + 225143;' utils.c sed -i -e '/^BS11_/s/110/111/' recfsusb2n.conf sed -i -e 's/^BS\([0-9]\)_/BS0\1_/' recfsusb2n.conf make B25=1 sudo make install cd ../..
※libaribb25ではなく、libarib25を使う場合は、Makefileとdecoder.hでaribb25とある箇所とarib25に書き換える。
Mirakurunのチューナー設定
name:でチューナー名を任意に設定し、types:で地デジが受信できるならGR、BSが受信できるならBS、110度CSが受信できるならCSを設定、command:で録画コマンドのrecfsusb2nに--b25オプションでスクランブル解除を指定、最後にチャンネルを指定、続く「-」は録画秒数を無制限にする指定、末尾の「-」は録画先を標準出力にする指定。必要に応じて--b25でスクランブル解除せずに、decoder:でスクランブル解除コマンドを設定しても良い。
デバイスファイルを--dev /dev/bus/usb/001/002のように直接指定しても良いが、USBデバイスは毎回デバイスファイルの番号が変わる恐れがあるので指定していない。
cat << 'EOT' | sudo tee /usr/local/etc/mirakurun/tuners.yml - name: US-3POUT-1 types: - BS - CS - GR command: recfsusb2n --b25 <channel> - - EOT
スクランブル解除コマンドが必要な場合、libaribb25の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