SL-C3000のUSBジョイスティック

SL-C3000は大抵のUSB機器なら何もしなくても接続するだけで必要なUSBモジュールをロードしてくれるんだけど、USBジョイスティックは汎用に作られてないので特定のジョイスティック以外はモジュールをロードしてくれない。
てな訳で、USB機器が接続された際に自動的に動く /etc/hotplug/usb.agent の設定ファイル /etc/hotplug/usb.handmap を書き換える。
19行目にUSBマウスクラスならばマウスとして判別する指定があるので、これを直下にコピーしてUSBジョイスティッククラスならばジョイスティックとして判別するように書き換える。
先頭のmousedevはマウスのUSBモジュール名なので、これをジョイスティックのUSBモジュールであるjoydevに書き換える。次にUSBマウスクラスであることを示す、0x03 0x01 0x02(それぞれクラス、サブクラス、プロトコルの番号を表す)があるので、これをUSBジョイスティッククラスであることを示す、0x03 0x00 0x00に書き換える。
本当ならば、これだけでUSBジョイスティックを接続した瞬間にjoydevが読み込まれるはずなんだけど、SL-C3000に最初から入っているUSBジョイスティックのモジュールjoydev.oはカーネルバージョンが異なるのでinsmod joydevしても読み込めない。
insmodコマンドなら-fオプションでカーネルバージョンを無視してくれるんだけど、ここにはそんな指定はないし、そもそもusb.agentでモジュールをロードする際に使っているhotplug.functionsではmodprobeコマンドでモジュールを読み込んでいる。modprobeコマンドにはカーネルバージョンを無視する指定は無いらしい。
そこで、/etc/modules.confを作成する。「install joydev insmod -f joydev」の1行だけでいい。早い話が、joydevをインストールする際にinsmod -f joydevってコマンドで読み込めってこと。
以下、USBジョイスティックを使うための便利なツールの紹介と、そのリンク先。

空の駅.net(2005/04/23の記事)
http://www.soranoeki.net/
思いつき倉庫(joy2key-z)
http://hr0.at.infoseek.co.jp/