Difference between revisions of "ACPI action script for battery events"
Sewerbeing (Talk | contribs) (formatting) |
m |
||
(3 intermediate revisions by one other user not shown) | |||
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 {{path|/etc/acpid/actions/battery.sh}}. | Usually this is saved as {{path|/etc/acpid/actions/battery.sh}}. | ||
− | |||
#!/bin/sh | #!/bin/sh | ||
Line 10: | Line 9: | ||
# 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 | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
# 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 | ||
Line 36: | Line 30: | ||
if [ "$status" = "off-line" ] | if [ "$status" = "off-line" ] | ||
then | then | ||
− | logger "Running /sbin/laptop_mode | + | logger "Running /sbin/laptop_mode start" |
+ | /sbin/laptop_mode start | ||
+ | logger "Setting HD spindown for BATT mode with hdparm -S $BATT_HD /dev/hda." | ||
+ | /sbin/hdparm -S $BATT_HD /dev/hda > /dev/null 2>&1 | ||
+ | logger "Setting HD powersaving for BATT mode with hdparm -B $BATT_PM /dev/hda." | ||
+ | /sbin/hdparm -B $BATT_PM /dev/hda > /dev/null 2>&1 | ||
+ | logger "Turning off swap." | ||
+ | /sbin/swapoff -a | ||
+ | /usr/bin/cpufreq-set -g conservative | ||
+ | else | ||
+ | logger "Turning on swap." | ||
+ | /sbin/swapon -a | ||
+ | logger "Running /sbin/laptop_mode start" | ||
/sbin/laptop_mode stop | /sbin/laptop_mode stop | ||
logger "Setting HD spindown for AC mode with hdparm -S $ACAD_HD /dev/hda." | logger "Setting HD spindown for AC mode with hdparm -S $ACAD_HD /dev/hda." | ||
Line 42: | Line 48: | ||
logger "Setting HD powersaving for AC mode with hdparm -B $ACAD_PM /dev/hda." | 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 | /sbin/hdparm -B $ACAD_PM /dev/hda > /dev/null 2>&1 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
/usr/bin/cpufreq-set -g ondemand | /usr/bin/cpufreq-set -g ondemand | ||
fi | fi | ||
+ | |||
+ | On archlinux you might need to add an event like a file e.g. saved as {{path|/etc/acpi/events/battery_event}} with following lines in it: | ||
+ | |||
+ | event=battery.* | ||
+ | action=/etc/acpi/actions/battery.sh | ||
+ | |||
+ | Note also on archlinux the acpi actions and events are located in {{path|/etc/acpi}} (not {{path|/etc/acpid}} as in gentoo) | ||
+ | |||
+ | After restarting your acpi daemon the script should be activated on switching the power supply on/off. You could check your logs to be sure that everything works as expected. | ||
[[Category:Scripts]] | [[Category:Scripts]] |
Latest revision as of 23:54, 8 January 2009
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 # 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 start" /sbin/laptop_mode start logger "Setting HD spindown for BATT mode with hdparm -S $BATT_HD /dev/hda." /sbin/hdparm -S $BATT_HD /dev/hda > /dev/null 2>&1 logger "Setting HD powersaving for BATT mode with hdparm -B $BATT_PM /dev/hda." /sbin/hdparm -B $BATT_PM /dev/hda > /dev/null 2>&1 logger "Turning off swap." /sbin/swapoff -a /usr/bin/cpufreq-set -g conservative else logger "Turning on swap." /sbin/swapon -a logger "Running /sbin/laptop_mode start" /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 /usr/bin/cpufreq-set -g ondemand fi
On archlinux you might need to add an event like a file e.g. saved as /etc/acpi/events/battery_event with following lines in it:
event=battery.* action=/etc/acpi/actions/battery.sh
Note also on archlinux the acpi actions and events are located in /etc/acpi (not /etc/acpid as in gentoo)
After restarting your acpi daemon the script should be activated on switching the power supply on/off. You could check your logs to be sure that everything works as expected.