Powered by SmartDoc

lirc:Linuxでリモコンを使おう- SMON Debian Tips

Taro Matsuzawa aka btm
btm@at.wakwak.com
http://www.at.wakwak.com/~btm/

はじめに

ここ二ヵ月あまり、Palmとlaptopを連携できないかと思案していました。唯一繋げられるインターフェイスは赤外線のみ。Palm同士でソフトの交換ができるので大丈夫だろうと思いきや、赤外線を使ってHotSyncをするために必要なソフトを入れるのにクレードルが必要らしいという所まで突き詰め、結局無理じゃんという結論になりました。

ただし、今まで検証に使っていたpilot-toolパッケージは起動するとHotsyncをPalmで起動してねというメッセージを表示するだけで、実際赤外線のデバイスがはっきり動いているのかどうかもわかりませんでした。そこで、せめて赤外線デバイスの動作の様子を目で見えてわかる物を...という事でたどり着いたのがlircでした。リモコンでアプリが制御できる、これだけで十分赤外線のチェックになるだろうと思い、さっそく導入してみました。

インストール作業

まず最初に必要なパッケージをインストールします。今回は検証用にxmmsのプラグインもインストールします。

apt-get
# apt-get install lirc lirc-modules-source xmms-lirc
      

この時、lircの設定も同時に行われます。今回は赤外線を使うのでデバイスは"Select your driver" -> "IrDA hardware" -> "SIR IrDA (built-in IR ports)"を選びます。

次にカーネルモジュールの構築、インストールを行います。

カーネルモジュール
# cd /usr/src/kernel-2.4.xx/
# make-kpkg --revision hoge modules-image      
# dpkg -i /usr/src/lirc-modules-2.4.19_0.6.6-2+hoge_i386.deb
# depmod -a
      

以上でインストール作業は終了です。

起動と設定

lircでは家庭用のリモコンの定義などはあらかじめ用意されていません。そのため、自分で定義を決める必要があります。まずは以下の手順でlircd(デーモン)を起動させます。

lircdの起動
# setserial /dev/ttyS1 uart none
# insmod lirc_sir
# chmod 666 /dev/lirc
# lircd

最初のsetserialには注意してください。理由はよくわかりませんが、こうしないとダメなんだそうです。ここからlircパッケージに入っているコマンドが利用できるようになります。まずmode2コマンドを実行してリモコンのボタンを押してみましょう。うまくいくとspaceとpulseという値がたくさんでてきます。これで赤外線が動いてる事が確認できます。

では、リモコンのボタンをlircdが任意に認識できるように設定をしましょう。これはirrecordというコマンドを使って行います。

irrecord起動
# irrecord test.conf

irrecord -  application for recording IR-codes for usage with lirc

Copyright (C) 1998,1999 Christoph Bartelmus(lirc@bartelmus.de)
...
Press RETURN to continue.

(Enterを押す)
Now start pressing buttons on your remote control.

...
Don't stop pressing buttons until two lines of dots (2x80) have been
generated.

Press RETURN now to start recording.
(Enterを押す)

注意書きにあるように二行分dot(.)で埋まるまで押すのと止めるなと指示がでてるので押しまくります。

irrecordリモコンボタンの登録
................................................................................ <-押しまくります
Found const length: 46174
Please keep on pressing buttons like described above.
................................................................................ <-まだ押しまくります
Space/pulse encoded remote control found.
...

これでリモコンの情報が伝わったのであとはボタンを一つ一つ定義していきます。

irrecord リモコンボタンの定義
Now enter the names for the buttons.

Please enter the name for the next button (press <ENTER> to finish recording)
power(Enter)

Now hold down button "power".
(リモコンのボタンを押す。"power"と指定したので電源ボタンなど)
Please enter the name for the next button (press <ENTER> to finish recording)
1

Now hold down button "1".
(リモコンのボタンを押す。"1"なので1chなど)
Please enter the name for the next button (press <ENTER> to finish recording)
...(同じ用に繰り返す)

Please enter the name for the next button (press <ENTER> to finish recording)
(Enter)
Checking for toggle bit.
Please press an arbitrary button repeatedly as fast as possible (don't hold
it down!).
.............................. <- またもやボタンを押しまくり
Invalid toggle bit.
Successfully written config file.

これでlircdの設定は終了ですが、ちゃんと動くかチェックをしましょう。

lircdのチェック
# kill xxxx(lircdを終了)
# lircd test.conf
# irw
0000000000000001 00 power test.conf
0000000000000002 00 1 test.conf
0000000000000004 00 3 test.conf
...

irwを実行してリモコンのボタンがirrecordで指定した物の同じ表示が出てきたら成功です。

アプリケーションの設定

アプリケーション側は$HOME/.lircrcの設定を読みます。ここではxmms-lircの例をとります。

$HOME/.lircrcの設定
$ cp /usr/share/doc/xmms-lirc/examples/lircrc ~/.lircrc
$ vim ~/.lircrc

ここではbuttonという定義があり、この値を自分で定義した値に書き換えれば動作します。

$HOME/.lircrc
begin xmms
  begin
    prog = xmms
    button = 1 <- 自分で定義したボタンの名前
    config = PLAY
  end
...
  begin
    prog = xmms
    button = power
    config = QUIT
    flags = mode
  end
end xmms

xmmsを起動して汎用プラグインの"LIRC Plugin 1.x[liblirc.so]"を有効にすれば準備OK。.lircrcに割り当てたボタンを押してみて動いたらOKです。

xmmsの他にもvlcやbttvなどがlircに対応しています。どっかからCanbeだとか突っ込みがきてますが、便利な事は変わりありません。導入も比較的簡単(だと思いたい)ので試してみてはいかかでしょうか?


all content created by Smellman AKA btm(btm@at.wakwak.com)
smellman on net
メイン techno Linux diary mozilla BBS profile link