====== Stromsparen unter Linux ====== Gerade bei den Distributionen bei denen man selbst Hand anlegen muss, braucht es ein paar Handgriffe bis die Hardware nicht sinnlos Energie in Wärme umwandelt. ===== CPU ===== Die CPU ist mittlerweile recht einfach zum Stromsparen zu überreden. Im Kernel müss dafür unter anderem folgendes aktiviert (und falls als modul gebaut auch geladen) werden: * CONFIG_CPU_FREQ * CONFIG_X86_ACPI_CPUFREQ * CONFIG_CPU_IDLE * CONFIG_INTEL_IDLE Die Wirksamkeit der Einstellung kann man entweder durch blick in /proc/cpuinfo oder powertop überprüfen ===== Grafik ===== ==== Intel ==== Die Stromsparfunktionen einer Intel-GPU werden über die Optionen des Kernelmodules gesteuert, am wichtigsten ist RC6. i915.i915_enable_rc6=1 i915.lvds_downclock=1 Mittlerweile sind die Probleme gefixt, ab 3.4 sollte der "normale" RC6 zustand Aktiviert sein - "deep" und "deepest" RC6 können dann über i915.i915_enable_rc6=3 bzw. i915.i915_enable_rc6=7 aktiviert werden. Von der Nutzung von deepest RC6 raten die Intel Entwickler allerdings ab. Weitere Informationen siehe: [[Artikel auf heise open|http://www.heise.de/open/meldung/Linux-3-4-nutzt-Intels-GPU-Stromspartechnik-RC6-1501110.html]] Um zu überprüfen ob die GPU ihren Takt ändert hilft watch -n1 'cat /sys/kernel/debug/dri/0/i915_cur_delayinfo' ==== Nouveau ==== FIXME schwer zu schreiben ohne Nvidia-Karte im Haus :( ==== Radeon ==== Zum aktivieren der Dynamischen Taktung der radeon Treiber genügt ein: echo "dynpm" > /sys/class/drm/card0/device/power_method Allerdings kann es bei manchen Karten beim umschalten der Frequenzen zu einem leichten Bildflackern kommen. Möchte man den zustand der Karte selbst regeln, so kann man auf Profilbasierte Regelung umstellen: echo "profile" > /sys/class/drm/card0/device/power_method; echo "low" > /sys/class/drm/card0/device/power_profile Verfügbare Werte sind (bei der hd3850): high, mid, low Möchte man überprüfen ob die Karte ihren Takt verändert, kann man die aktuellen Einstellungen mit cat /sys/kernel/debug/dri/0/radeon_pm_info ansehen. ===== Sonstiges ===== Hilfreich für die Einstellungen der WLAN Karte oder der Festplatten-Parameter sind die Tipps von "powertop". Sachen die davon nicht abgedeckt werden sollen hier erklärt werden. ==== Aktivieren des Energiesparmodi für jedes Gerät ==== Ob ein Gerät automatisch Energie spart wird in Linux über die "power/control" variable geregelt, die für jedes Gerät im /proc Verzeichnisbaum liegt. Der letze "Tab" in powertop bemängelt dabei auch immer den Zustand der Variabeln mit "Good" oder "Bad". Um im Akkubetrieb hier nur "Good" stehen zu haben, genügt es ein kleines Skript zu schreiben das das Programm "pm-powersave" (aus dem gentoo-Paket sys-power/pm-utils) dann aufruft. pm-powersave wird standardmäßig von acpid verwendet (einstellbar in der /etc/acpi/default.sh ) um je nach zustand des Netzsteckers einige Stromsparmasnahmen zu aktivieren oder deaktivieren. Das neue Skript sollte (je nach Distribution) im Verzeichnis /usr/lib64/pm-utils/power.d (oder ähnlich) gespeichert werden. #!/bin/sh # enables the runtime powermanagement for every device found runtime_pm() { for i in `find /sys -path "*/power/*" -name "control" -print`; do echo "auto" > $i done # Device: 0003:046D:C52B.0003: hiddev0,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] # seems to dislike autosuspend - lagging mouse etc echo "on" > /sys/bus/hid/devices/0003:046D:C52B.0003/power/control } case "$1" in true) echo "**runtime powermanagement ON" runtime_pm ;; false) echo "**runtime powermanagement unchanged" ;; esac exit 0 ==== PCIE-ASPM ==== Vor 3.2 hat sich der Linux-Kernel auf die BIOS-Informationen verlassen, um die PCI-Express Stromsparmaßnahmen zu steuern. Dies führte meist dazu, das kein Strom gespart wird. Um auf diesen Kerneln ASPM dennoch zu nutzen benötigte man einen Bootparameter pcie_aspm=force Ab der Version 3.2 nutzt Linux die Informationen aus den Windows-Gerätetreibern, um die Optimalen Einstellungen zu setzen. Auf manchen Laptops führt das erzwingen von ASPM mit dem Bootparameter zu Abstürzen - dann einfach einen neueren Kernel verwenden ;) Weitere Informationen, siehe [[Artikel auf heise open|http://www.heise.de/open/artikel/Kernel-Log-Hoeherer-Stromverbrauch-durch-BIOS-Bugs-1268394.html]]