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環境をつくるか。
戻る