MythTVでスカパーを録画している。
今までは1チャンネルしか契約していなかったのでチャンネルを変更できなくても問題なかったが
アルペンスキーを録画するためにJ Sportsを契約したのでチャンネルを変更する必要が出てきた。

PC-OP-RS1

ちょっと調べたところBuffalo RemoteStation PC-OP-RS1がLinuxで動かしてる人がいる事が分かったので早速購入。



デバイス認識

USBで接続してftdi_sioモジュールを読み込み

# modprobe ftdi_sio vendor=0x0411 product=0x00b3

しかしデバイスファイルが出来ない。
dmesgを見ていると次のメッセージがあった。

"rejected 1 configuration due to insufficient available bus power"

キーボードのusbポートに刺してたけどもしかして本体に刺さないとだめ?
今度は本体に刺したら"ttyUSB0"が出来た。
とりあえず準備はできた。

動作確認

赤外線リモコンを Linux からコントロールのperlスクリプトをとりあえずそのまま実行。

"-r"オプションでリモコンのデータを受信する。
"aPower"でなんかデータを送信する。
とりあえず動いてるみたい。

カスタマイズ

このままだと使いづらいのでちょっと修正。

irrcをMythTVで使う場合引数としてチャンネル番号が渡される。
その全てのパターンを準備しても良いんだけど0-9のデータを準備してチャンネル番号を分解して1,2,3と送るようにした。
実際は4チャンネルしか使用しないので個別に用意したほうが手間はかからなかったかも。
データファイルを"/usr/local/share/irrc"下に.txtの拡張子で置いておく。
最初に{コマンド全体の文字}.txtを探してなければ文字を分解してファイルを探す。
ファイルの中には送信データを1行ごと複数置ける。

送信データは"irrc -r > 1.txt"とした後リモコンの"1"キーを押すを繰り返して地道に作る。

123.txtというファイルを準備して1,2,3のデータをまとめてセットしてもOK。

あとBUFFALOの学習リモコンPC-OP-RS1をLinuxで使うの情報から初回タイムアウトになるので0のダミーデータを送るのを追加。

udevの設定

モジュールを自動で読み込ませるための設定。
以前は/etc/hotplugあたりにusb.usermap見たいのがあったきがするけどないのでudevのルールを作る。

usb接続でベンダー0411、プロダクト00b3のときにftdi_sioを読み込んでttyUSB*のデバイスファイルのパーミッションを666にセットする。

/etc/udev/rules.d/50-ir.rules
------------------
#
# load for BUFFALO RemoteStation PC-OP-RS1 module
#
SUBSYSTEM=="usb",ATTRS{idVendor}=="0411",ATTRS{idProduct}=="00b3", \
RUN+="/sbin/modprobe -Qb ftdi_sio vendor=0x0411 product=0x00b3"

# set permission
KERNEL=="ttyUSB*", MODE="0666"
------------------

MythTV

今度はMythTVの設定。
mythtv-setupを実行してソースの接続で外部チャンネルコマンドに/usr/local/bin/irrcを設定する。

後はmythfrontendでTV放送を見てチャンネルが正常に切り替わるか確認する。

失敗した事

実際にirrcを実行するのはmythbackendなのでmythbackend実行ユーザーの/dev/ttyUSB0への権限を確認する。
irrcに渡されるチャンネル番号はチャンネル番号ではなく周波数が渡される。
これが分からずにソースを追ってしまった。

これでスカパーの録画も大丈夫。

先にPC-OP-RS1の動作確認やスクリプトを書いてくださった方に感謝します。
Secret

TrackBackURL
→http://gsxr.blog8.fc2.com/tb.php/225-87e73e7d
  1. 無料アクセス解析