Linux Stromsparen

Aus ThinkPad-Wiki
Version vom 14. April 2008, 21:33 Uhr von DerTonLebt (Diskussion | Beiträge) (Kategorie hinzugefügt)

Stromverbrauch Windows versus Linux

Linux lag bezüglich des Stromverbrauchs lange abgeschlagen hinter Windows. Daher war Linux auf Notebooks nicht besonders verbreitet. Diese Situation hat sich seit stromsparenden Änderungen am Linux-Kernel umgekehrt (insbesondere durch "dynticks" seit Kernel 2.6.21 vom April 2007). Linux hat die Zahl der Kernel-Interrupts und Übergänge in CPU-Sleep-States deutlich optimiert. Im Office-Betrieb erreicht man bei unter 100 CPU-Wakeuos über 95% C3-/C4-Sleep-States (dies lässt sich Dank PowerTOP ermitteln. Leider gibt es kein Tool für Windows, um das dort diese Werte zu ermittel und mit Linux genau zu vergleichen).

Aber die CPU macht nur einen kleinen Anteil des Gesamtstromverbrauchs aus. Er hängt auch stark von der spezifischen Hardware und an deren Treibern ab. Für ältere Hardware sind stromsparende Treiber oft nur für Windows vorhanden. Auf einem T40 hat man also schlechte Chancen, den Stromverbrauch mit Linux auf die Verbrauchswerte von Windows zu drücken. Für die neueren Modelle sind die Linux-Treiber aber recht stromsparoptimiert. Hier hat Linux in den letzten Monaten enorm aufgeholt. Insbesondere die NVIDIA-Grafikkarten werden gut unterstützt. Auf T60 und T61 bzw. den entsprechenden Modellen der R-Serie mit NVIDIA Karten verbraucht Linux daher etwas weniger als Windows (rund 1-2 Watt, je nach Last). Auch auf den ThinkPads mit Intel-Grafik, beispielsweise den Modellen der x-Serie, liegt der Stromverbreich leicht unterhalb von Windows. Allerdings sind dazu nachfolgende Tipps zu berücksichtigen.

Linux Stromspar-Tipps

  • Kernel >=2.6.24 (Standard in Ubuntu Hardy heron)
  • Festplatte mit Laptop Mode kontrollieren und zum Stromsparen abschalten (wird bei Office-Arbeiten oder zum Web-Surfen nicht benötigt)
  • PowerTOP starten und Stromspar-Vorschläge ausführen sowie die laufenden Tasks auf Wakeup-Übeltäter durchforsten und ggf. beenden
  • Optional: Undervolting (bringt Reduzierung des Stromverbrauchs bei höherer Last)

Stromspar-Änderungen persistent machen

Im Startupscript etc/rc.local kann man die Einstellungen persistent machen:

# By default this script does nothing.
# Trackpoint sensibler (empfohlen für Trackpoint-Experten)
echo -n 250 > /sys/devices/platform/i8042/serio1/sensitivity
# und schneller
echo -n 250 > /sys/devices/platform/i8042/serio1/speed
# Wake-on-Lan aus
ethtool -s eth0 wol d
# PCI Geräte stromsparen
for i in /sys/bus/pci/devices/*/power_level ; do echo 5 > $i ; done
# Sound stromsparen nach 10 sec
echo 10 > /sys/module/snd_hda_intel/parameters/power_save
# xbacklight aktivieren (Workaround für einen Bug in Hardy-Alpha-6)
# xrandr --output LVDS --set BACKLIGHT_CONTROL native
# USB autosuspenden
for i in `find /sys -name autosuspend -exec echo {} \;` ; do echo "1" > $i ; done
# Laptop Mode aktivieren
laptop_mode start
# governor auf ondemand
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# Stromsparenden Scheduler aktivieren
echo 1 > /sys/devices/system/cpu/sched_mc_power_savings
# AHCI Link Power Management. Auskommentiert wenn statt AHCI
# "Compatibility Mode" im Bios aktiviert ist
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy 
exit 0

Unnötige Kernel-Module in die Blacklist /etc/modprobe.d/blacklist (späteres manuelles Nachtladen der Module ist kein Problem):

# module nicht laden wegen Wakeups
blacklist pcmcia
blacklist yenta_socket
blacklist ehci_hcd
blacklist uhci_hcd
blacklist usbcore
blacklist ohci1394
blacklist sbp2
blacklist ieee1394

Einige Module werden schon während der initramfs-Phase geladen. Die blacklist auch dort durchsetzen durch:

update-initramfs

Links