To my suprise when I ran powertop on my fresh fedora 17 install, powertop reported all tunables bad and fedora doesn't seem to have any laptop power saving features enabled by default, nor does it have any of the pm-utils power saving scripts in /usr/lib64/pm-utils/power.d or /etc/pm/power.d.
These scripts may have varying degrees of success on different hardware, but they work perfeclty for me. Ubuntu has enabled a few of these by default in 12.04. I was able to easily save a few watts of power on battery and show all "good" in powertop by doing the following:
Download the upstream pm-utils source from here:
http://pm-utils.freedesktop.org/rele...s-1.4.1.tar.gz
Once extracted you can find various power saving scripts in: pm-utils-1.4.1/pm/power.d. Take the scripts you wish to use, and drop them into /etc/pm/power.d and make them executable. This will enable a good amount of the powertop recommended tunables automatically when you are on battery.
After doing this I did a few additional things to get the remaining powertop recommendations set to 'good'.
I added a script called "device_pm" (Using a script I found on the arch forums:
https://bbs.archlinux.org/viewtopic.php?pid=860231). to enable runtime pm for all my pci devices:
Code:
#!/bin/sh
device_pm() {
for dpcontrol in /sys/bus/{pci,spi,i2c}/devices/*/power/control; do
[ -w "$dpcontrol" ] || continue
echo $1 > "$dpcontrol"
done
}
case "$1" in
true)
echo "**device power management ON"
device_pm auto
;;
false)
echo "**device power management OFF"
device_pm on
;;
esac
exit 0
I added a script called usb_pm (taken from the arch wiki:
https://wiki.archlinux.org/index.php...utils_Settings) to enable usb autosuspend and disable nmi_watchdog:
Code:
#!/bin/sh
case "$1" in
true)
# USB powersaving
for i in /sys/bus/usb/devices/*/power/autosuspend; do
echo 1 > $i
done
for i in /sys/bus/usb/devices/*/power/control; do
echo auto > $i
done
sysctl kernel.nmi_watchdog=0
;;
false)
for i in /sys/bus/usb/devices/*/power/autosuspend; do
echo 2 > $i
done
for i in /sys/bus/usb/devices/*/power/control; do
echo on > $i
done
sysctl kernel.nmi_watchdog=1
;;
esac
exit 0
I added a simpler script for intel audio power saving (taken from a script on the crunchbang forums:
http://crunchbanglinux.org/forums/to...pt-for-debian/) that worked better on my machine than the pm-utils one:
Code:
#!/bin/sh
# A script to enable intel audio power saving on fedora
case "$1" in
true)
# Enable some power saving settings while on battery
# Intel power saving
echo Y > /sys/module/snd_hda_intel/parameters/power_save_controller
echo 1 > /sys/module/snd_hda_intel/parameters/power_save
;;
false)
#Return settings to default on AC power
echo N > /sys/module/snd_hda_intel/parameters/power_save_controller
echo 0 > /sys/module/snd_hda_intel/parameters/power_save
;;
esac
exit 0
and lastly, increase the vm_writeback value on battery (taken from arch wiki:
https://wiki.archlin...-utils_Settings)
Code:
#!/bin/sh
case "$1" in
true)
# Less VM disk activity. Suggested by powertop
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
;;
false)
#Return settings to default on AC power
echo 500 > /proc/sys/vm/dirty_writeback_centisecs
;;
esac
exit 0
And here are the results
http://i.imgur.com/ZLXQw.png
http://i.imgur.com/GzFPI.jpg