Difference between revisions of "Power saving"

From ArchWiki
Jump to navigation Jump to search
(static naming)
(merged to Power management, redirecting there)
 
(191 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:
 
 
 
{{Note|This should be combined with [[udev#Network device|static naming]] of devices, the eth* names are not static.}}
 
 
 
{{hc|/etc/udev/rules.d/disable_wol_eth0.rules|2=ACTION=="add", SUBSYSTEM=="net", KERNEL=="net0" RUN+="/usr/sbin/ethtool -s net0 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:
 
 
 
{{Note|This should be combined with [[udev#Network device|static naming]] of devices, the eth* names are not static.}}
 
 
 
{{hc|/etc/udev/rules.d/wlan0_power_save.rules|2=ACTION=="add", SUBSYSTEM=="net", KERNEL=="wifi0" RUN+="/usr/sbin/iw dev wifi0 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}}
 
 
 
== See also ==
 
 
 
* [[CPU Frequency Scaling]]
 
 
 
==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: