Power saving

From ArchWiki
Revision as of 01:30, 24 October 2012 by Thestinger (Talk | contribs) (see also)

Jump to: navigation, search


By default, audio power saving is turned off by most drivers. It can be enabled by setting the power_save parameter to a time (in seconds) to go in idle.

Note: Toggling the audio card's power state can cause a popping sound or noticeable latency on some broken hardware.
options snd_hda_intel power_save=1
options snd_ac97_codec power_save=1


Blacklist the hci_usb module if the driver is loaded automatically.

Disabling NMI watchdog

The NMI watchdog is a debugging feature to catch hardware hangs and cause a kernel panic. On some systems it can generate a lot of interrupts, causing a noticeable increase in power usage.

kernel.nmi_watchdog = 0

or add nmi_watchdog as a kernel parameter.

Disabling Wake-on-LAN

Wake-on-LAN can be a useful feature, but if you're not making use of it then it's simply draining extra power waiting for a magic packet while in suspend.

Disabling for one interface:

ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth0" RUN+="/usr/sbin/ethtool -s eth0 wol d"

Disabling for all interfaces:

ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*" RUN+="/usr/sbin/ethtool -s %k wol d"

PCI Runtime Power Management

ACTION=="add", SUBSYSTEM=="pci", ATTR{power/control}="auto"

Wireless power saving

Enabling for a specific interface:

ACTION=="add", SUBSYSTEM=="net", KERNEL=="wlan0" RUN+="/usr/sbin/iw dev wlan0 set power_save on"

Enabling for all interfaces:

ACTION=="add", SUBSYSTEM=="net", KERNEL=="wlan*" RUN+="/usr/sbin/iw dev %k set power_save on"

Writeback Time

Increasing the VM dirty writeback time can help to aggregate I/O together - reducing disk writes, and decreasing power usage:

vm.dirty_writeback_centisecs = 1500

To do the same for journal commits with ext4 and some other filesystems, use commit=15 as a parameter in fstab or with the rootflags kernel parameter.

Laptop Mode

vm.laptop_mode = 5

See also

From powertop, needs to be cleaned up and merged

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements.Tango-edit-clear.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Power saving#)

SATA Active Link Powermanagement

echo min_power > /sys/class/scsi_host/host0/link_power_management_policy

USB Autosuspend

To enable USB autosuspend after 2 seconds of inactivity:

for i in `find /sys/bus/usb/devices/*/power/control`; do echo auto > $i; done;
for i in `find /sys/bus/usb/devices/*/power/autosuspend`; do echo 2 > $i; done;

Device Power Management

echo auto | tee /sys/bus/i2c/devices/*/power/control > /dev/null
echo auto | tee /sys/bus/spi/devices/*/power/control > /dev/null

View Power Setings

This function shows various power settings. Note you either must be root or you must have sudo.

function aa_power_settings ()
  sudo bash -c '
    for i in `find /sys/devices -name "bMaxPower"`;
        for ii in `find $i -type f`;
            bd=`dirname $ii`;
            busnum=`cat $bd/busnum`;
            devnum=`cat $bd/devnum`;
            title=`lsusb -s $busnum:$devnum`;
            echo -e "\n\n+++ $title\n  -$bd\n  -$ii";
            for ff in `find $bd/power -type f ! -empty 2>/dev/null`;
                v=`cat $ff 2>/dev/null|tr -d "\n"`;
                [[ ${#v} -gt 0 ]] && echo -e " `basename $ff`=$v";
            done | sort -g;
    echo -e "\n\n\n+++ Kernel Modules\n";
    for m in `command lspci -k|sed -n "/in use:/s,^.*: ,,p"|sort -u`;
        echo "+ $m";
        systool -v -m $m 2> /dev/null | sed -n "/Parameters:/,/^$/p";