wmapm の ACPI化


VAIO で wmapm っていうアプリを使っていて,こいつは asapmxbatt 同様, APM の情報からバッテリの残量を表示してくれてとっても お便利だった. でも Libretto L2 には APM が無いので wmapm を使ってもバッテリの 残量はわからない. しょうがないなぁ. ってことで 誰かもうやってるかも知れないけど wmapm を ACPI化してみた.

最新版は wmapm-3.1.tar.gzらしいので,まず持って来て展開.

source をつらつら読むと, wmapm.c の apm_read() の部分を sysctl(3) を使って hw.acpi.ふがほげ を読み出すように変更すれば 簡単にできそうなのでいじってみる. ってことでパッチ作成. 手抜きして sysctlbyname(3) を使ったのであっさりできた.

ついでに polling の間隔を長め(30秒)に変更して,マウスカーソルが wmapm に入った時にもバッテリの情報を取得する(xbatt と同じ動作) パッチも作成. 1秒毎に polling してたら無駄だしね.

ってことでパッチはこれ. かなりいい加減に作ったので FreeBSD 5-current w/ ACPI (w/o APM) じゃないと動かないです. すんません.

Photo ほんでコンパイルの仕方.
    % tar xvzf wmapm-3.1.tar.gz
    % patch < wmapm-3.1.acpi.mouse_notify.patch
    % cd wmapm-3.1/wmapm
    % gmake
    # gmake install
   
wmapm を起動したらちゃんと ACPI から情報を取ってきて 表示されたよ. ACアダプタにつないでいるときはこんな感じ.
Photo ACアダプタを引っこ抜いたらバッテリの残量と残り時間を表示. うむ. とりあえずちゃんと動いているね.
げ, Libretto L2 ってデカバッテリでも 8時間弱しかもたないの!? ちょっとショック.

日記の感想はこちらへどーぞ.

Generated with mkdiary.pl
Back to my diary