ここ二ヵ月あまり、Palmとlaptopを連携できないかと思案していました。唯一繋げられるインターフェイスは赤外線のみ。Palm同士でソフトの交換ができるので大丈夫だろうと思いきや、赤外線を使ってHotSyncをするために必要なソフトを入れるのにクレードルが必要らしいという所まで突き詰め、結局無理じゃんという結論になりました。
ただし、今まで検証に使っていたpilot-toolパッケージは起動するとHotsyncをPalmで起動してねというメッセージを表示するだけで、実際赤外線のデバイスがはっきり動いているのかどうかもわかりませんでした。そこで、せめて赤外線デバイスの動作の様子を目で見えてわかる物を...という事でたどり着いたのがlircでした。リモコンでアプリが制御できる、これだけで十分赤外線のチェックになるだろうと思い、さっそく導入してみました。
まず最初に必要なパッケージをインストールします。今回は検証用にxmmsのプラグインもインストールします。
# 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(デーモン)を起動させます。
# setserial /dev/ttyS1 uart none # insmod lirc_sir # chmod 666 /dev/lirc # lircd
最初のsetserialには注意してください。理由はよくわかりませんが、こうしないとダメなんだそうです。ここからlircパッケージに入っているコマンドが利用できるようになります。まずmode2コマンドを実行してリモコンのボタンを押してみましょう。うまくいくとspaceとpulseという値がたくさんでてきます。これで赤外線が動いてる事が確認できます。
では、リモコンのボタンをlircdが任意に認識できるように設定をしましょう。これは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(.)で埋まるまで押すのと止めるなと指示がでてるので押しまくります。
................................................................................ <-押しまくります Found const length: 46174 Please keep on pressing buttons like described above. ................................................................................ <-まだ押しまくります Space/pulse encoded remote control found. ...
これでリモコンの情報が伝わったのであとはボタンを一つ一つ定義していきます。
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の設定は終了ですが、ちゃんと動くかチェックをしましょう。
# 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の例をとります。
$ cp /usr/share/doc/xmms-lirc/examples/lircrc ~/.lircrc $ vim ~/.lircrc
ここではbuttonという定義があり、この値を自分で定義した値に書き換えれば動作します。
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だとか突っ込みがきてますが、便利な事は変わりありません。導入も比較的簡単(だと思いたい)ので試してみてはいかかでしょうか?