ページ 1 / 3
電源管理はありますか?
Posted: 08/12/07(日) 15:28
by angkor_h
ノートpcなんですが、電源管理はどこからできますか?
先日、電池残量低下で、突然終了してしまいました。
ある程度まできたら、通知をして欲しいのです。
Posted: 08/12/08(月) 19:07
by jake
トレイの脇に%表示がありませんか?
例:

この例では43%残っている。
Posted: 08/12/11(木) 00:21
by angkor_h
[quote="jake"]さんに返信
ありがとうございます。
>トレイの脇に%表示がありませんか?
表示は出ていますが、見落としの無いように、メッセージや音を出すとか、輝度を下げるとかの注意喚起を施したいのですが。
実際のところ、どの値になったらシャットダウンされるのかもわかりません。
Posted: 08/12/11(木) 20:40
by jake
angkor_hさん さんが書きました:実際のところ、どの値になったらシャットダウンされるのかもわかりません。
私は下記のPCとeeepcの2台を使っていますが、いずれも残量5%くらいまでは大丈夫です。それまでにアダプタにつなぐので、シャットダウンしてしまったことはありません。ただ、機種やバッテリの種類、へたりかたによって差はあると思います。
angkor_hさん さんが書きました:メッセージや音を出すとか、輝度を下げるとかの注意喚起を施したいのですが。
メッセージを出すことはできます。バッテリの仕様や残量は、/proc/acpi/battery/BAT0内にあるので、そこから情報を読み出せばよいのです。少し、考えてみます。
Posted: 08/12/12(金) 13:21
by サボり魔
管理の仕方は分かりませんが、とりあえず実験。
へたりかたによって差はあると思います。
へたり気味のバッテリを完全放電させてみようと、XPで「バッテリ切れ」表示が出た後にCD起動をして初期状態で放置してみました。
バッテリ残量表示が0になると表示欄が空欄になりましたが、その後1時間ほどgxineで動画を楽しめました。
ちなみにPuppyでの残量表示は、直前にWindowsXPで表示されていたのとほぼ同じ数字でした(3%とか)。
HDDが動くWin環境では怖くて実験してません。表示が0になった途端に切れるのかなぁ?
Posted: 08/12/12(金) 18:49
by jake
Liイオン電池だと充電や放電を時間で決めているので、長い期間使用していると時間計測による推定残量と実際の残量との間にずれが生じて、実際にはまだたくさん残っているのにPCが電池がないと勝手に判断してシャットダウンしてしまうというような話は聞いたことがあります。しかし、1hrも余分に動くとは驚きです。
Posted: 08/12/12(金) 19:37
by jake
バッテリのモニタリングには、トレイにあるasapmというプログラム以外にbatmonというプログラムもあるようです。警告メッセージも表示できるようなことが書かれています。(
http://www.murga-linux.com/puppy/viewto ... 4&start=75)
もっとも、比較的簡単にプログラムを書くこともできます。例えば、
コード: 全て選択
#!/bin/sh
while [ 1 ];do
ACX=`ls /proc/acpi/ac_adapter` #ACアダプタの種類
ACADAPTER=`cat /proc/acpi/ac_adapter/$ACX/state | grep "state" | cut -d":" -f2 ` #ACアダプタの状態
if [ $ACADAPTER = on-line ];then #AC接続中
sleep 30
else #バッテリ駆動中
BATX=`ls /proc/acpi/battery` #バッテリの種類
echo `cat /proc/acpi/battery/$BATX/info | grep "design capacity warning" | cut -d":" -f2 ` > /tmp/batterydesigncapacity
sed -i -e 's% mAh%%g' /tmp/batterydesigncapacity
BATTERY0=`cat /tmp/batterydesigncapacity` #バッテリの警告レベル
echo `cat /proc/acpi/battery/$BATX/info | grep "design capacity low" | cut -d":" -f2 ` > /tmp/batterylowcapacity
sed -i -e 's% mAh%%g' /tmp/batterylowcapacity
BATTERY1=`cat /tmp/batterylowcapacity` #バッテリの下限レベル
echo `cat /proc/acpi/battery/$BATX/state | grep "remaining capacity" | cut -d":" -f2` > /tmp/batteryremaincapacity
sed -i -e 's% mAh%%g' /tmp/batteryremaincapacity
BATTERY=`cat /tmp/batteryremaincapacity` #バッテリの残量
if [ $BATTERY -gt $BATTERY0 ];then #バッテリの警告レベル以上
sleep 30
else
if [ $BATTERY -gt $BATTERY1 ];then #バッテリの下限レベル以上、警告レベル以下
sleep 30 | gxmessage -center -timeout 20 -bg "pink" -button "" "バッテリ残量が警告ラインに達しました。ACアダプタを接続してください。"
else #バッテリの下限レベル以下
sleep 15 | gxmessage -center -timeout 10 -bg "red" -button "" "バッテリ残量がほとんどありません。ACアダプタを接続してください。"
fi
fi
fi
done
(12/14 12:25修正)
という具合です。これを/root/Startupに入れておけば、起動時に読み込まれバッテリ残量を監視して、警告を出します。上のものではバッテリ残量が10%を下回ると最初の警告が出ます。ただ、注意しておきたいのは、上の例では、ACアダプタ接続時およびバッテリ駆動時の状態が、それぞれ、/proc/acpi/ac_adapter/AC0/state、/proc/acpi/battery/BAT0/stateであることで、PCによっては、BAT0がBAT1だったりすることもあるようで、その場合は書き直さなければなりません。
Posted: 08/12/12(金) 20:29
by jake
少々、「初心者のヘルプ」の域を越えたようなので、もう少し解説します。まず、roxファイラーで/root/Startupを開きます。その中の空白部分で右クリックをしてメニューを出します。その中から、「新規作成」=>「Script」(下から2つ目)を選びます。「Script」は名前を変えてもいいでしょう。「battery」とでもします。そして、この作ったばかりの実行ファイル「battery」を右クリックして、「テキストとして開く」で開きます。1行目はすでに書かれていますので、その次に上のCodeの2行目以降をコピペします。保存してできあがりです。
Posted: 08/12/12(金) 21:16
by jake
買ったばかりのeeePCで実験してみたら、ほぼ0%になった時点で電源が落ちてしまいました。サボり魔さんのように、「バッテリ残量表示が0になると表示欄が空欄になり」、ということは見られませんでした。
Posted: 08/12/13(土) 22:51
by angkor_h
jakeさんに返信
ありがとうございます。
お教えいただいたスクリプトファイルをStartupに保存して再起動してみたんですが、なんの変化もなく、03%まできてしまいました。
私にはプログラミングのスキルがなく(大昔にbasicやpascalをかじったくらい)、デバッグはできません。せっかくお教えいただいたのに申し訳ありません。あきらめます。
最後に教えていただきたいのですが、"バッテリ残量が10%を下回ると"の10%を判断する部分はどの構文にあたりますか?
Posted: 08/12/14(日) 09:34
by jake
angkor_hさん さんが書きました:"バッテリ残量が10%を下回ると"の10%を判断する部分はどの構文にあたりますか?
厳密にいうと10%というのは私のPCの場合で、PCによっては10%でないかもしれません。私のPCでは警告レベル(/proc/acpi/battery/BAT0/infoの"design capacity warning")がバッテリ容量の10%となっています。このスクリプトでは残量が警告レベルを割り込むと最初のメッセージが出ることになっています。
コード: 全て選択
echo `cat /proc/acpi/battery/BAT0/info | grep "design capacity warning" | cut -d":" -f2 ` > /tmp/batterydesigncapacity
sed -i -e 's% mAh%%g' /tmp/batterydesigncapacity
BATTERY0=`cat /tmp/batterydesigncapacity` #バッテリの警告レベル
の3行でこの警告レベルを読み取ります。同じような文が下のほうにあってバッテリの残量を読み取って警告レベルとの大小を比較するというものです。
スクリプトが動作しないのはいろいろ理由が考えられますが、面倒でなかったら以下のことを確認して報告してもらえればさいわいです。
1) 端末で、
と入力して、得られる結果の中に、"/bin/sh /root/Startup/(このスクリプトファイルの名前)"はありますか?
2) /proc/acpi/battery/にあるフォルダ名は何ですか?
3) /proc/acpi/ac_adapter/にあるフォルダ名は何ですか?
4) 仮りにスクリプトファイルをbatteryとしたとき、端末で
コード: 全て選択
/root/Startup/battery
と入力して何かエラーは出ますか?
Posted: 08/12/14(日) 12:35
by jake
ACアダプタやバッテリは思っていた以上に機種依存性があるようです。私は下記のLenovoのノートPCとASUS-EeePCを使っていますが、例えば、/proc/acpi/ac_adapter以下では、前者はACAD、後者はAC0、同じく/proc/acpi/battery以下でも、前者はBAT1、後者はBAT0です。また、警告レベルにしても、前者はフルの8%ほど、後者は10%、下限レベルもそれぞれ、3%、5%という具合です。ということで上記のスクリプトを一部修正して、可能なかぎり機種依存性がないようにしました。私の環境では動作確認済みですが、なにせバッテリ切れ寸前という実験環境を繰り返し得るのはなかなか難しいのでバグがあるかもしれません。バッテリパックが2つ以上あるとか、ACアダプタを2つつないで作動させるとかいうことがなければ大丈夫だと思いますが...。
Posted: 08/12/14(日) 13:48
by jake
どれほど需要があるのかわかりませんし、完成度も高くないと思いますが、一応、petパッケージにしてみました。
考えてみれば、PDAでも携帯でも電池が少なくなれば事前に警告があるものだから、Puppyにもあったほうが便利です。そして、できれば、いきなり電源が落ちるよりは、電池切れ寸前にサスペンドモードに入ってしばらくはセッションをメモリに残しておいてくれたほうがありがたいです。(ザウルスではそうでした。)
http://www014.upp.so-net.ne.jp/puppylin ... -0.2.1.pet
(右クリックで、リンク先を保存、としてください。)
2008/12/14 battery-0.1
2008/12/15 battery-alarm-0.1 (/sbin/bttery-alarmを追加)
2008/12/18 battery-alarm-0.2 (電池切れ寸前にコマンドを追加できる)
2009/01/09 battery-alarm-0.2.1 (上記のコマンドを実行するように訂正)
Posted: 08/12/14(日) 17:50
by angkor_h
[quote="jake"]さんに返信
ありがとうございます。いろいろご配慮いただき、恐縮です。
前回はこちらのミスで、和文名で保存したのがいけなかったようです。英文で保存したら表示されました。
ただ、残量50%未満(右下表示)で下記でした。
"バッテリ残量がほとんどありません。ACアダプタを接続してください。"
これで、検出閾値と下記が設定できると万全と思います(暗にお願いm ( _ _ )m 。
注意レベル(一回出して、消されたら(確認したら)表示停止)
警告レベル(処置するまで継続表示)
ご参考
2) /proc/acpi/battery/にあるフォルダ名は何ですか?
→”BAT1”です。
3) /proc/acpi/ac_adapter/にあるフォルダ名は何ですか?
→”ADP1”です
PETファイルはこれから試してみます。
>なにせバッテリ切れ寸前という実験環境を繰り返し得るのはなかなか難しいので
…ご苦労さまです。
ところで、閾値はwindowsでの設定値が利用されるのでしょうか(でもなさそうです)。わたしは、10%、3%に設定しているのですが。
Posted: 08/12/14(日) 20:47
by jake
angkor_hさん さんが書きました:ただ、残量50%未満(右下表示)で下記でした。
"バッテリ残量がほとんどありません。ACアダプタを接続してください。"
これはどうしたことでしょう!?ちなみに、/proc/acpi/battery/BAT1/infoにバッテリのスペックがいろいろ書かれていて、その中の”design capacity warning”を/proc/acpi/battery/BAT1/stateの”remaining capacity”が下回ると最初の警告が出るようになっています。トレイの%表示もこのあたりの数字を使っているはずです。
angkor_hさん さんが書きました:閾値はwindowsでの設定値が利用されるのでしょうか(でもなさそうです)。わたしは、10%、3%に設定しているのですが。
上記のバッテリのスペックはバッテリ本来のものと思っていましたが、このへんのことは実はよくわからないのです。Windowsで設定できる(?)ということすら知らなかったのです。(長年、Windowsを使っていたのですが)
angkor_hさん さんが書きました:これで、検出閾値と下記が設定できると万全と思います(暗にお願いm ( _ _ )m 。
注意レベル(一回出して、消されたら(確認したら)表示停止)
警告レベル(処置するまで継続表示)
御意見ありがとうございます。たしかに、警告レベルを自由に設定できた方がよいですね。