電源管理はありますか?

パピーリナックスを初めて使う方

モデレータ: 暇人, YoN, nyu

angkor_h
記事: 135
登録日時: 08/11/30(日) 23:50
お住まい: 関東

電源管理はありますか?

投稿記事 by angkor_h »

ノートpcなんですが、電源管理はどこからできますか?

先日、電池残量低下で、突然終了してしまいました。
ある程度まできたら、通知をして欲しいのです。
−−−−FMVRE70;pup431〜lupu520でEth0認識せず、lupu528upでやっと認識した//B915
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 by jake »

トレイの脇に%表示がありませんか?
例: 画像
この例では43%残っている。
angkor_h
記事: 135
登録日時: 08/11/30(日) 23:50
お住まい: 関東

投稿記事 by angkor_h »

[quote="jake"]さんに返信
ありがとうございます。
>トレイの脇に%表示がありませんか?
表示は出ていますが、見落としの無いように、メッセージや音を出すとか、輝度を下げるとかの注意喚起を施したいのですが。
実際のところ、どの値になったらシャットダウンされるのかもわかりません。
−−−−FMVRE70;pup431〜lupu520でEth0認識せず、lupu528upでやっと認識した//B915
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 by jake »

angkor_hさん さんが書きました:実際のところ、どの値になったらシャットダウンされるのかもわかりません。
私は下記のPCとeeepcの2台を使っていますが、いずれも残量5%くらいまでは大丈夫です。それまでにアダプタにつなぐので、シャットダウンしてしまったことはありません。ただ、機種やバッテリの種類、へたりかたによって差はあると思います。
angkor_hさん さんが書きました:メッセージや音を出すとか、輝度を下げるとかの注意喚起を施したいのですが。
メッセージを出すことはできます。バッテリの仕様や残量は、/proc/acpi/battery/BAT0内にあるので、そこから情報を読み出せばよいのです。少し、考えてみます。
アバター
サボり魔
記事: 294
登録日時: 07/12/06(木) 12:28
お住まい: 関東

投稿記事 by サボり魔 »

管理の仕方は分かりませんが、とりあえず実験。
へたりかたによって差はあると思います。
へたり気味のバッテリを完全放電させてみようと、XPで「バッテリ切れ」表示が出た後にCD起動をして初期状態で放置してみました。
バッテリ残量表示が0になると表示欄が空欄になりましたが、その後1時間ほどgxineで動画を楽しめました。 :shock:

ちなみにPuppyでの残量表示は、直前にWindowsXPで表示されていたのとほぼ同じ数字でした(3%とか)。
HDDが動くWin環境では怖くて実験してません。表示が0になった途端に切れるのかなぁ?
サボり魔
Precise-550JP & Precise-571JP & Tahr-Puppy
frugal install (USB)
8GB ASUS H97I-PLUS Core-i5 4690S
8GB ASRock Z68M-ITX/HT Core-i7 2600k with Win7
16GB ASROCK H170M-ITX/ac Core-i5 6600
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 by jake »

Liイオン電池だと充電や放電を時間で決めているので、長い期間使用していると時間計測による推定残量と実際の残量との間にずれが生じて、実際にはまだたくさん残っているのにPCが電池がないと勝手に判断してシャットダウンしてしまうというような話は聞いたことがあります。しかし、1hrも余分に動くとは驚きです。
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 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だったりすることもあるようで、その場合は書き直さなければなりません。
最後に編集したユーザー jake [ 08/12/14(日) 12:25 ], 累計 2 回
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 by jake »

少々、「初心者のヘルプ」の域を越えたようなので、もう少し解説します。まず、roxファイラーで/root/Startupを開きます。その中の空白部分で右クリックをしてメニューを出します。その中から、「新規作成」=>「Script」(下から2つ目)を選びます。「Script」は名前を変えてもいいでしょう。「battery」とでもします。そして、この作ったばかりの実行ファイル「battery」を右クリックして、「テキストとして開く」で開きます。1行目はすでに書かれていますので、その次に上のCodeの2行目以降をコピペします。保存してできあがりです。
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 by jake »

買ったばかりのeeePCで実験してみたら、ほぼ0%になった時点で電源が落ちてしまいました。サボり魔さんのように、「バッテリ残量表示が0になると表示欄が空欄になり」、ということは見られませんでした。
angkor_h
記事: 135
登録日時: 08/11/30(日) 23:50
お住まい: 関東

投稿記事 by angkor_h »

jakeさんに返信

ありがとうございます。
お教えいただいたスクリプトファイルをStartupに保存して再起動してみたんですが、なんの変化もなく、03%まできてしまいました。

私にはプログラミングのスキルがなく(大昔にbasicやpascalをかじったくらい)、デバッグはできません。せっかくお教えいただいたのに申し訳ありません。あきらめます。

最後に教えていただきたいのですが、"バッテリ残量が10%を下回ると"の10%を判断する部分はどの構文にあたりますか?
−−−−FMVRE70;pup431〜lupu520でEth0認識せず、lupu528upでやっと認識した//B915
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 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) 端末で、

コード: 全て選択

ps
と入力して、得られる結果の中に、"/bin/sh /root/Startup/(このスクリプトファイルの名前)"はありますか?
2) /proc/acpi/battery/にあるフォルダ名は何ですか?
3) /proc/acpi/ac_adapter/にあるフォルダ名は何ですか?
4) 仮りにスクリプトファイルをbatteryとしたとき、端末で

コード: 全て選択

/root/Startup/battery
と入力して何かエラーは出ますか?
最後に編集したユーザー jake [ 08/12/14(日) 12:40 ], 累計 1 回
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 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つつないで作動させるとかいうことがなければ大丈夫だと思いますが...。
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 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 (上記のコマンドを実行するように訂正)
最後に編集したユーザー jake [ 09/01/09(金) 10:30 ], 累計 3 回
angkor_h
記事: 135
登録日時: 08/11/30(日) 23: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%に設定しているのですが。
−−−−FMVRE70;pup431〜lupu520でEth0認識せず、lupu528upでやっと認識した//B915
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 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 。
注意レベル(一回出して、消されたら(確認したら)表示停止)
警告レベル(処置するまで継続表示)
御意見ありがとうございます。たしかに、警告レベルを自由に設定できた方がよいですね。
返信する