Difference between revisions of "ACPI action script for battery events"

From ThinkWiki
Jump to: navigation, search
 
Line 1: Line 1:
 
This is an example ACPI action script that makes Power Management adjustments according to if you are on battery or on AC.
 
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 <tt>/etc/acpid/actions/battery.sh</tt>.
+
Usually this is saved as {{path|/etc/acpid/actions/battery.sh}}.
  
 
  #!/bin/sh
 
  #!/bin/sh

Revision as of 03:59, 6 October 2005

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