やっぱモバイルだし〜、apm 入れないとね ... [1998/05/31]
ここの所このページの更新をサボっていたら、昨日のお茶会で
「このページ最近全然かわってないじゃん」
という神奈川弁の突っ込みを入れられてしまったので、しょがないから書く
ことにする。そもそもAPM自体はリブにLinuxを入れてXが動いた時
点でFVWM95のカスタマイズついでに xapm をランチャに組み込んでた
ので、何か書くのが面倒になっていました。(^^;
※ちなみにインストール方法
0.詳しいドキュメントは、Battery Powered Linux Mini-HOWTOとかにある
のでちゃんと目を通して下さい。
1.目を通さないそそっかしい人、apmdパッケージはこことかにあります。
2.PCMCIA関連のパッチなんかもあるので、やっぱりドキュメントは
ちゃんと見た方がいいと思いますよ。とりあえずとってきたら、カーネ
ルのリコンフィグです。
make config で
:
:
Advanced Power Management BIOS support: Yes
Ignore USER SUSPEND: No
Enable PM at boot time: Yes
Make CPU Idle calls when idle: Yes
Enable console blanking using APM: Yes
Power off on shutdown: Yes
:
:
|
の様にしなさい、とありますが、まぁ好きにして下さい。
3.カーネルコンパイルしてリブートをしたあとは、私の場合、例によって
/usr/src/ 以下にパッケージを展開したので、
lib100:/usr/src/apmd-2.4-patched# make
でバイナリができました。
4.あとは、たとえばX上で xapm & とかやったら、バッテリーインジケー
ターがぴょこっと現れます。私の場合、これをランチャに組み込んだの
で、.fvwm95rc のランチャの設定の所に
:
:
# Define the buttons to use.....
*FvwmButtons xclock clock.xpm Swallow "xclock" Exec xclock -bg \#c3c3c3 -geometry -1500-1500 -padding 0 &
*FvwmButtons (2x1) load NULL Swallow "xload" Exec nice -16 xload -nolabel -bg grey60 -update 5 -geometry -1500-1500
*FvwmButtons (2x1) xapm NULL Swallow "xapm" Exec nice -16 xapm -nolabel -bg grey60 -update 5 -geometry -1500-1500
*FvwmButtons xterm rterm.xpm Exec "XTerm" color_xterm -ls -sb -fn 7x13 -title "Color xterm" &
*FvwmButtons Kterm rterm.xpm Exec "KTerm" kterm -ls -sb -fn 7x14 -title "kterm" &
*FvwmButtons Mule textedit.xpm Exec "Mule" mule &
*FvwmButtons netscape nscape.xpm Exec "Netscape" /usr/local/netscape/netscape -geometry 720x420+0+0
*FvwmButtons kill rbomb.xpm Destroy
*FvwmButtons (2x1) - whatever SwallowModule Exec "Desktop" FvwmPager 0 0
:
:
|
のようにして常時表示させるようにしました。
でも...
今まで気にも止めなかったのですが、apmdの実験を昨日していたときに
何かちゃんと動いてくれず、どうしてもあのやーなはいばねーしょんが動い
て、ファイルシステムをぶち壊して(といっても大した被害ではないが)く
れるので、自分でスクリプトをかいちゃいました。あまり美しくないですが
(だってPerlをいちいち呼び出すし)まぁハイバネーションで大事な情
報が壊れるよりはマシでしょう。(^^;;;
lib100:~# more checkapm.pl
#!/usr/bin/perl
#
# Battery check program T.Kabu (kabu@fwnet.or.jp)
#
$apm = '/usr/src/apmd-2.4-patched/apm';
#
open(APM, "$apm -m |");
while()
{
chop $_;
if ($_ =~ /on-line/)
{
print("Battery OK! AC-Supply!\n");
last;
}
if ($_ =~ /: (.*)\% \((.*) min\)/)
{
$par = $1;
$min = $2;
if ($min < 3)
{
print("Battery NG! $par\% \[$min min\]\n");
system("shutdown -h -t 0 1");
}
else
{
print("Battery OK! $par\% \[$min min\]\n");
}
}
}
close(APM);
exit;
|
こいつを手頃なディレクトリにぶち込んで、/usr/spool/cron/crontab/root
にでも書いて一定時間毎に回しておけば、バッテリがやばくなると突然
Broadcast message from root (ttyp2) Sun May 31 20:18:37 1998...
The system is going DOWN for system halt in 1 minutes !!
|
とかほざいて電源を落としてくれます。これだけだと、そそっかしい自分は
懲りずに電源を入れてしまう
ので、/etc/rc.d/rc.local の中からも一度呼ぶようにしました。
lib100:~# more /etc/rc.d/rc.local
#!/bin/sh
#
# /etc/rc.d/rc.local: Local system initialization script.
#
# Put any local setup commands in here:
# Running gpm
echo "Running gpm..."
gpm -t ps2
#
# start SKK server
#
if [ -f /usr/local/lib/skk/skkserv ]; then
/usr/local/lib/skk/skkserv;
fi
# call canna
/etc/rc.d/rc.canna start
# check battery
/root/checkapm.pl
|
これで起動時にバッテリがやばいと、立ち上がる間もなく勝手に冬眠状態に
入ってくれるという優れものです。(大丈夫なら起動時にバッテリの残量が
ちゃんと表示されるという嬉しい気配り)
#でもこんなもん、Perlいちいち呼んでいたらでんこちゃんに怒られ
ちゃうなぁ...
|