« NetFrontのホームページ | メイン | VFATとext3 »
2005年01月24日
バッテリ残量をより詳しく
LinuxZaurus/Kernel
SL-C3000のバッテリ残量ですが
100% → 75% → 50% → 25% → 5% → 0%
とかなりおおまかな値で減っていきます。
そのため、あとどれぐらい使えるのか判断しづらく、
50%残っているかと思ったら10分もせずにバッテリが無くなることもありました。
また逆に100%といっても本当に満充電されているのか判断しづらいです。
そもそもこのバッテリ残量は正確なのでしょうか?
気になりましたので以下のような実験をしてみました。
満充電のSL-C3000を無線LANに接続し、以下のスクリプトを実行する。
そのままバッテリがなくなるまでサスペンドせず、LCDは点いたままにする。#!/bin/sh -f
while [ -e /proc/apm ]; do
cat /proc/apm;
date;
sleep 10;
done
以下がスクリプトのログをとり集計した結果です。

縦軸がバッテリ残量、横軸が経過時間を表してます。
本来であれば左上から右下に比例的に変化していくべきなのですが、
理想とはかけ離れた結果になってます。
そこでカーネルの一部を修正し、100%〜0%まで2.5%刻みで変化するように修正しました。
このときバッテリ残量とバッテリ電圧が比例するように設定してあります。
以下がこのカーネルでの実験結果です。

かなり理想に近くなりましたが、35%付近で急激にバッテリ残量が無くなってます。
そこでバッテリ残量とバッテリの関係を非線形に設定してみました。
以下が結果です。

まだ理想とは違っていますが、今回はこれでよしとしておきます。
時間があればさらに調整して、残時間を算出できるようにしたいと考えてます。
ちなみに今回修正したカーネルでもバッテリアプレットは正常に動作しました。
![]()
一応以下に今回の成果物を残しておきます。
- 最終的なパッチ
patch_batplus_20050123.patch
- 以前のカーネルにパッチを当てたもの
zImage_batplus_20050123
- てつさんのspecial kernel(17f)にパッチを当てたもの
zImage_17f_batplus_20050123
(念のため)
今回のカーネルの修正はバッテリの保ちを長くするとかそういった修正はしてません。
また今回の実験は私の個人的な実験であり、上記パッチ、カーネルを利用したことによる
不具合など一切責任は負いかねます。
一応私のところでは順調に動いてますが今回私の持ってるSL-C3000に合わせて
設定しているためたとえ同じSL-C3000であっても個体差、バッテリのへたりなどにより
バッテリ残量の表示が98%から始まるなどの現象が出るかもしれません。
SL-C3000色々いじりがいがあって面白いです。
投稿者 tattsuu : 2005年01月24日 00:37
トラックバック
このエントリーのトラックバックURL:
http://tattsuu.com/mt/mt-tb.cgi/16