ACPI action script for battery events
This is an example ACPI action script that makes Power Management adjustments according to if you are on battery or on AC. Usually this is saved as /etc/acpid/actions/battery.sh.
#!/bin/sh
# I' using this on FC2 and FC3
# cpu throttling off as FC does thisout-of-the-box
# turning swap off is only for those that feel comfortable
# doing something this nasty.
#
# pcfe, 2004-11-15
# cpu throttling
# cat /proc/acpi/processor/CPU0/throttling for more info
ACAD_THR=0
BATT_THR=2
# spindown time for HD (man hdparm for valid values)
# I prefer 2 hours for acad and 2 min for batt
ACAD_HD=244
BATT_HD=24
# Power management level
# 255 (off) on AC
# 128 (medium) on batt
# lowered to 32, pcfe, 2004-06-23
# upped to 64, pcfe, 2004-07-14
# upped to 96, pcfe, 2004-10-20
ACAD_PM=255
BATT_PM=96
# ac/battery event handler
status=`awk '/^state: / { print $2 }' /proc/acpi/ac_adapter/AC/state`
case $status in
"on-line")
logger "Running /sbin/laptop_mode stop"
/sbin/laptop_mode stop
logger "Setting HD spindown for AC mode with hdparm -S $ACAD_HD /dev/hda."
/sbin/hdparm -S $ACAD_HD /dev/hda > /dev/null 2>&1
logger "Setting HD powersaving for AC mode with hdparm -B $ACAD_PM /dev/hda."
/sbin/hdparm -B $ACAD_PM /dev/hda > /dev/null 2>&1
#logger "Turning on swap."
#/sbin/swapon -a
#echo -n $ACAD_CPU:$ACAD_THR > /proc/acpi/processor/CPU0/limit
exit 0
;;
"off-line")
#logger "Turning off swap."
#/sbin/swapoff -a
logger "Running /sbin/laptop_mode start"
/sbin/laptop_mode start
logger "Setting HD spindown for battery mode with hdparm -S $BATT_HD /dev/hda."
/sbin/hdparm -S $BATT_HD /dev/hda > /dev/null 2>&1
logger "Setting HD powersaving for battery mode with hdparm -B $BATT_PM /dev/hda."
/sbin/hdparm -B $BATT_PM /dev/hda > /dev/null 2>&1
#echo -n $BATT_CPU:$BATT_THR > /proc/acpi/processor/CPU0/limit
exit 0
;;
esac