USL-5Pのボタンを使う

USL-5PのオリジナルのCFには、/usr/local/bin/buttondという、 ボタンの操作をつかさどっていると思われるバイナリがあるが、 当然のごとくGPLではないのでソースはない。 そこでバイナリだけ持ってきて動かすことを考える。 (とりあえず電源SWを押したらシャットダウンするようにしたい)

カーネルの構築

buttondをそのまま持ってくるだけだと、 LANDISK用カーネルでは、関連シンボルがいくつかみつからないので アイ・オー・データで配布しているUSL-5Pのソースコードから USL-5P用カーネルをつくる。 設定は、ほぼ同じ。(気が向いたら.configを載せよう・・・)

ファイルのコピー

USL-5PのオリジナルCFから、以下の3つをコピーしてくる。
/usr/local/bin/buttond
/usr/local/sbin/btndrv_{load,unload}
/usr/lib/liblandisk.so  (-> /home/LANDISK/liblandisk.so)

いざbuttond

まずbuttondで使うモジュールをロードしてみる。
# ./btndrv_load
Warning: loading /lib/modules/noversion/btndrv.o will taint the kernel: non-GPL
license Button driver initialized.
- I-O DATA
  See http://www.tux.org/lkml/#export-tainted for information about tainted modules
Warning: loading /lib/modules/noversion/btndrv.o will taint the kernel: forced load
Module btndrv loaded, with warnings
# lsmod
Module                  Size  Used by    Tainted: PF
btndrv                  4120   0  (unused)
#
とりあえずロードできたっぽい。 /etc/init.d/S99button_daemon start などで buttondを起動しようとすると、 glibc-2.3が必要、となった。(あたりまえといえばあたりまえ) 現在使っている環境がglibc-2.2環境なので、とりあえず中座。残念。 ゼロからglibc-2.3環境をつくるか。
戻る