[Server-devel] [PATCH] Add a portable (if slow) check for power
martin.langhoff at gmail.com
martin.langhoff at gmail.com
Mon Jun 16 13:46:35 EDT 2008
From: Martin Langhoff <martin at laptop.org>
This patch adds a fallback portable check for
power using HAL. This adds ~100ms on XO-1 HW.
---
ds_backup.sh | 33 +++++++++++++++++++++++++++++++--
1 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/ds_backup.sh b/ds_backup.sh
index ceea99a..98547d1 100755
--- a/ds_backup.sh
+++ b/ds_backup.sh
@@ -15,8 +15,37 @@
#
# Author: Martin Langhoff <martin at laptop.org>
#
-B_LEVEL=`cat /sys/class/power_supply/olpc-battery/capacity`
-AC_STAT=`cat /sys/class/power_supply/olpc-ac/online`
+
+if [ -e /sys/class/power_supply/olpc-battery/capacity \
+ -a -e /sys/class/power_supply/olpc-ac/online ]
+then
+ # OLPC HW
+ B_LEVEL=`cat /sys/class/power_supply/olpc-battery/capacity`
+ AC_STAT=`cat /sys/class/power_supply/olpc-ac/online`
+else
+ # Portable, but 100ms slower on XO-1
+ # Note - we read the 1st battery, and the 1st AC
+ # TODO: Smarter support for >1 battery
+ B_HAL=`hal-find-by-capability --capability battery | head -n1`
+ AC_HAL=`hal-find-by-capability --capability ac_adapter`
+ if [ -z $B_HAL -o -z $AC_HAL ]
+ then
+ # We do expect a battery & AC
+ exit 1;
+ fi
+
+ B_LEVEL=`hal-get-property --udi $B_HAL --key battery.charge_level.percentage`
+ AC_STAT=`hal-get-property --udi $AC_HAL --key ac_adapter.present`
+
+ # hal reports ac adapter presence as 'true'
+ # ... translate...
+ if [ AC_STAT = 'true' ]
+ then
+ AC_STAT=1
+ else
+ AC_STAT=0
+ fi
+fi
# If we are on battery, and below 30%, leave it for later
if [ $AC_STAT == "0" -a $B_LEVEL -lt 30 ]
--
1.5.4.34.g053d9
More information about the Server-devel
mailing list