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

From ThinkWiki
Jump to: navigation, search
(formatting)
Line 4: Line 4:
  
 
  #!/bin/sh
 
  #!/bin/sh
# Tried on Gentoo
+
# Tried on Gentoo
# cpu throttling is in here it is the cpufreq-set lines
+
# cpu throttling is in here it is the cpufreq-set lines
# turning swap off is only for those that feel comfortable
+
# turning swap off is only for those that feel comfortable
# doing something this nasty.
+
# doing something this nasty.
# comment out the laptop_mode line if you don't have it installed
+
# comment out the laptop_mode line if you don't have it installed
# pcfe, 2008-10-28
+
# pcfe, 2008-10-28
 
                                                                                                                                      
 
                                                                                                                                      
# cpu throttling
+
# cpu throttling
# cat /proc/acpi/processor/CPU0/throttling for more info
+
# cat /proc/acpi/processor/CPU0/throttling for more info
ACAD_THR=0
+
ACAD_THR=0
BATT_THR=2
+
BATT_THR=2
 
                                                                                                                                      
 
                                                                                                                                      
# spindown time for HD (man hdparm for valid values)
+
# spindown time for HD (man hdparm for valid values)
# I prefer 2 hours for acad and 2 min for batt
+
# I prefer 2 hours for acad and 2 min for batt
ACAD_HD=244
+
ACAD_HD=244
BATT_HD=24
+
BATT_HD=24
 
                                                                                                                                      
 
                                                                                                                                      
# Power management level
+
# Power management level
# 255 (off) on AC
+
# 255 (off) on AC
# 128 (medium) on batt
+
# 128 (medium) on batt
# lowered to 32, pcfe, 2004-06-23
+
# lowered to 32, pcfe, 2004-06-23
# upped to 64, pcfe, 2004-07-14
+
# upped to 64, pcfe, 2004-07-14
# upped to 96, pcfe, 2004-10-20
+
# upped to 96, pcfe, 2004-10-20
ACAD_PM=255
+
ACAD_PM=255
BATT_PM=96
+
BATT_PM=96
 
                                                                                                                                      
 
                                                                                                                                      
# ac/battery event handler
+
# ac/battery event handler
 
                                                                                                                                      
 
                                                                                                                                      
status=`awk '/^state: / { print $2 }' /proc/acpi/ac_adapter/AC/state`
+
status=`awk '/^state: / { print $2 }' /proc/acpi/ac_adapter/AC/state`
 
                                                                                                                                      
 
                                                                                                                                      
if [ "$status" = "off-line" ]
+
if [ "$status" = "off-line" ]
then
+
then
 
               logger "Running /sbin/laptop_mode stop"
 
               logger "Running /sbin/laptop_mode stop"
 
               /sbin/laptop_mode stop
 
               /sbin/laptop_mode stop
Line 45: Line 45:
 
               /sbin/swapon -a
 
               /sbin/swapon -a
 
      /usr/bin/cpufreq-set -g conservative         
 
      /usr/bin/cpufreq-set -g conservative         
else   
+
else   
 
               logger "Turning off swap."
 
               logger "Turning off swap."
 
               /sbin/swapoff -a
 
               /sbin/swapoff -a
Line 55: Line 55:
 
               /sbin/hdparm -B $BATT_PM /dev/hda > /dev/null 2>&1
 
               /sbin/hdparm -B $BATT_PM /dev/hda > /dev/null 2>&1
 
               /usr/bin/cpufreq-set -g ondemand
 
               /usr/bin/cpufreq-set -g ondemand
fi
+
fi
  
 
[[Category:Scripts]]
 
[[Category:Scripts]]

Revision as of 19:31, 28 October 2008

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
# Tried on Gentoo
# cpu throttling is in here it is the cpufreq-set lines
# turning swap off is only for those that feel comfortable
# doing something this nasty.
# comment out the laptop_mode line if you don't have it installed
# pcfe, 2008-10-28
                                                                                                                                   
# 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`
                                                                                                                                    
if [ "$status" = "off-line" ]
then
              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

/usr/bin/cpufreq-set -g conservative

else   
              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
              /usr/bin/cpufreq-set -g ondemand
fi