Difference between revisions of "Power saving"

From ArchWiki
Jump to: navigation, search
(reorder)
(merged to Power management, redirecting there)
 
(196 intermediate revisions by 38 users not shown)
Line 1: Line 1:
[[Category:Power management]]
+
#REDIRECT [[Power management]]
 
 
==Audio==
 
 
 
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.}}
 
 
 
;Intel
 
 
 
{{hc|/etc/modprobe.d/audio_power_save.conf|2=options snd_hda_intel power_save=1}}
 
 
 
;ac97
 
 
 
{{hc|/etc/modprobe.d/audio_power_save.conf|2=options snd_ac97_codec power_save=1}}
 
 
 
== Bluetooth ==
 
[[Kernel_modules#Blacklisting|Blacklist]] the {{ic|hci_usb}} module if the driver is loaded automatically.
 
 
 
==Disabling NMI watchdog==
 
The [[Wikipedia:Non-maskable interrupt|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.
 
 
 
{{hc|/etc/sysctl.d/disable_watchdog.conf|2=kernel.nmi_watchdog = 0}}
 
 
 
or add {{ic|nmi_watchdog}} as a [[kernel parameter]].
 
 
 
==Disabling Wake-on-LAN==
 
 
 
[[Wikipedia: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:
 
 
 
{{hc|/etc/udev/rules.d/disable_wol_eth0.rules|2=ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth0" RUN+="/usr/sbin/ethtool -s eth0 wol d"}}
 
 
 
Disabling for all interfaces:
 
 
 
{{hc|/etc/udev/rules.d/disable_wol.rules|2=ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*" RUN+="/usr/sbin/ethtool -s %k wol d"}}
 
 
 
 
 
== PCI Runtime Power Management ==
 
 
 
{{hc|/etc/udev/rules.d/pci_pm.conf|2=ACTION=="add", SUBSYSTEM=="pci", ATTR{power/control}="auto"}}
 
 
 
==Wireless power saving==
 
 
 
Enabling for a specific interface:
 
 
 
{{hc|/etc/udev/rules.d/wlan0_power_save.rules|2=ACTION=="add", SUBSYSTEM=="net", KERNEL=="wlan0" RUN+="/usr/sbin/iw dev wlan0 set power_save on"}}
 
 
 
Enabling for all interfaces:
 
 
 
{{hc|/etc/udev/rules.d/wifi_power_save.rules|2=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:
 
 
 
{{hc|/etc/sysctl.d/dirty_writeback.conf|2=vm.dirty_writeback_centisecs = 1500}}
 
 
 
To do the same for journal commits with ext4 and some other filesystems, use {{ic|1=commit=15}} as a parameter in [[fstab]] or with the {{ic|rootflags}} [[kernel parameter]].
 
 
 
== Laptop Mode ==
 
 
 
{{hc|/etc/sysctl.d/laptop_mode.conf|2=vm.laptop_mode = 5}}
 
 
 
==From [[powertop]], needs to be cleaned up and merged==
 
{{poor writing}}
 
 
 
=== 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.
 
 
 
{{bc|<nowiki>function aa_power_settings ()
 
{
 
  sudo bash -c '
 
    for i in `find /sys/devices -name "bMaxPower"`;
 
    do
 
        for ii in `find $i -type f`;
 
        do
 
            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`;
 
            do
 
                v=`cat $ff 2>/dev/null|tr -d "\n"`;
 
                [[ ${#v} -gt 0 ]] && echo -e " `basename $ff`=$v";
 
                v=;
 
            done | sort -g;
 
        done;
 
    done;
 
    echo -e "\n\n\n+++ Kernel Modules\n";
 
    for m in `command lspci -k|sed -n "/in use:/s,^.*: ,,p"|sort -u`;
 
    do
 
        echo "+ $m";
 
        systool -v -m $m 2> /dev/null | sed -n "/Parameters:/,/^$/p";
 
    done
 
  ';
 
}</nowiki>}}
 

Latest revision as of 12:30, 23 April 2015

Redirect to: