This is an old revision of the document!
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.i915_enable_fbc=0 i915.lvds_downclock=1 i915.semaphores=1
( fbc führt (stand 04/2012) zu problemen - ist aber standardmäßig aus )
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: 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
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
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 http://www.heise.de/open/artikel/Kernel-Log-Hoeherer-Stromverbrauch-durch-BIOS-Bugs-1268394.html