
Clie を買い、久しぶりに HotSync が出来るようになったので、 Debian/GNU Linux 上で HotSync ボタン一つで HotSync 出来るように設定をしてみた。 HotSync そのものには J-Pilot 付属の jpilot-sync を使う。 かつてこの設定を行なったことはあったのだが、 半年も HotSync 出来ない間に udev やらの変更があったようで若干手直しが必要だった。 例えば、以前は hotplug というパッケージがあったがいつの間にか消えていた。 今は udev で一括して管理するようになっているようだ。
あらかじめ /etc/udev/udev.rules の KERNEL の指定を直しておく。 Debian の udev 0.076-3 だと KERNEL=="ttyUSB*" となっているが、 これだと ttyUSB0 に pilot への symlink が張られてしまうことがある。
BUS=="usb", KERNEL=="ttyUSB[13579]", SYSFS{product}=="Palm Handheld*", \
SYMLINK+="pilot"
そして、/etc/udev/rules.d/custom.rules というファイルをでっち上げ、以下を記述する。 SUBSYSTEM の指定がないと、二つの tty 向けを含めて三重にスクリプトが呼ばれてしまうようだ。 それゆえ、/etc/udev/udev.rules の記述とは別に用意してみた。
SUBSYSTEM="usb_device", SYSFS{product}=="Palm Handheld*", RUN+="/etc/hotplug/usb/clie"
実際に呼ばれるスクリプトは、以前 「USB をシリアルコンソールに」を参考にして良く調べもせず適当に用意したものを、 /etc/hotplug/usb/clie として使い回した。 PAM がらみの問題があるとかないとかいう話もあったようだが、 私の環境では問題ないようだ。
#!/bin/sh
if [ "${ACTION}" = "add" ]
then
su yendo -c jpilot-sync
if [ "X$REMOVER" != "X" ]
then
echo '' > $REMOVER
echo '#!/bin/sh' >> $REMOVER
echo 'killall jpilot-sync' >> $REMOVER
chmod +x $REMOVER
fi
fi
exit 0
ただ、もうこんな記述はいらないかもしれない。 もう面倒なので確認していないが、udev の rules に、 RUN+="su yendo -c jpilot-sync" とだけ書いても 大丈夫なのかも。
結局 udev については面倒くさすぎてまともにマニュアルを読んでいないけど、 「udevルールの書き方」 は参考になるかも。 ようやく HotSync は Windows 並にまでなった。はぁ、しかし面倒くさい。 gnome-volume-manager あたりが面倒を見てくれないかな。 HotSync という概念そのものが obsolete になってくれてもいいけど。
2006/01/16 (Mon) 23:16 | タグ: computer jpilot palm