KURO-RSD

2011.03.06 by sirius



 KURO-RS(Buffalo の PC-OP-RS1)用の daemon プログラムです。
バックグラウンドで動作し、赤外線信号を受信し、あらかじめ定義された信号であった場合、その定義にある動作を行います。
おそらく Linux 汎用です。特に変わったことはしていません。
動作は、玄箱/HG にインストールした Fedora12 で確認しています。

[機能]
  • KURO-RS が受信したリモコン信号でホストをコントロールする。
  • KURO-RS が受信したリモコン信号で他の機器をコントロールする。
  • 定義は設定ファイルから読み込むので定義等の追加が楽。
  • セットになったコマンドを使うことで、リモコンデータを受信して保存したり、コマンドラインからリモコンのデータを送信したりするときにいちいち daemon を終了させる必要がない。
  • 他のマシンからリモコンのデータの送受信ができる。
  • 設定ファイルの書き方で、リモコンのボタンに複数の動作をさせることができる。
[インストール]
 インストールは、root で
# make install-all
でインストールされます。
デフォルトでは、コマンド類は /usr/local/bin へ、設定ファイルは /usr/local/etc へ起動スクリプトは、/etc/init.d へコピーします。
コピーされるものは次の通りです。
  • /usr/local/bin/kuro-rsd
  • /usr/local/bin/kuro-rsd-chkconf
  • /usr/local/bin/kuro-rs-hash
  • /usr/local/bin/kuro-rs-gen
  • /usr/local/bin/kuro-rs-rec
  • /usr/local/bin/kuro-rs-reset
  • /usr/local/bin/kuro-rs-send
  • /usr/local/etc/kuro-rsd.conf
  • /etc/init.d/kuro-rsd
 設定ファイルの書き方は、kuro-rsd.conf のコメントを見てください。
 設定ファイルを書き換えたら、設定ファイルチェックプログラム (kuro-rsd-chkconf) を使って必ずチェックしてください。kuro-rsd プログラム自体はエラーチェック処理をあまりしませんので間違った設定ファイルを使うとうまく動きません。チェックして、
Check the configuration file is complete.
と出れば設定ファイルは正常です。

インストール先を変更する場合は、Makefile を直接書き換えてください。
インストール先を変更した場合は、適宜、設定ファイル (kuro-rsd.conf) や起動スクリプト (kuro-rsd) のパスも適切に書き換えてください。

あまりチェックはやっていないので設定によっては動かないと思います。そのときは設定ファイルの見直し、ソースの修正、または、諦めてください。

[起動]
 起動スクリプトで、
# /etc/init.d/kuro-rsd start
で起動します。
終了は、
# /etc/init.d/kuro-rsd stop
設定ファイルを書き換えた場合は、
# /etc/init.d/kuro-rsd reload
で設定ファイルを再読み込みします。ただし、ネットワークに関しては再読み込みでは設定の変更は反映されません。再起動してください。
起動は、udev で行うのが正しいと思いますが、デバイスファイルを見て待つようにしたので普通のデーモンと同様にシステム起動時に動かして問題ありません。また、起動中に KURO-RS を取り外しても大丈夫です。再接続すればまた使えます。

[ハッシュ値]
 送られてきた赤外線信号はそのままでは比較できないのでハッシュを計算して比較しています。(といってもデコードしているだけですが) 中にはうまく計算できない信号もあるようです。うまくいかなかったら諦めてください。自分は、地デジチューナーの HDUSF に付属していたリモコンを使ってみましたがうまくいきました。
 ハッシュの一覧を作成するには、一度リモコンの全ボタンの信号をファイルに保存して、ファイルのあるディレクトリで次のようにします。

# for i in *; do echo "$i=`kuro-rs-hash $i`,,"; done > ../list
 そうすると一つ上のディレクトリに list という名前で次のような内容のファイルが作成されます。
1=50ef8976,,
10=50ef09f6,,
11=50ef03fc,,
12=50ef837c,,
2=50ef49b6,,
3=50efc936,,
4=50ef29d6,,
5=50efa956,,
6=50ef6996,,
7=50efe916,,
8=50ef19e6,,
9=50ef9966,,
  :
 この内容を設定ファイルのデータセクションにコピーすると楽だと思います。

[その他]
** 隠しコマンド
kuro-rsd に SIGINT を送るとデバイスを開きなおします。