Linux Stromsparen

Aus ThinkPad-Wiki
Version vom 14. April 2008, 20:48 Uhr von Pibach (Diskussion | Beiträge) (Artikel erstellt)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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 ist inzwischen nah am Optimum was Kernel-Interrupts und CPU-States angeht. Im Office-Betrieb hat man >95% C3/C4-Sleep-States. Mehr holt da auch kein Windows raus (leider gibt es kein Tool, um das auf Windows genauer festzustellen).

Aber die CPU macht nur einen kleineren Anteil des Gesamtstromverbrauchs aus. Er hängt auch sehr stark von der spezifischen Hardware und an deren Treibern ab. Für älteren Hardware sind stromsparende Treiber oft nur für Windows vorhanden. Auf einem T40 hat man also schlechte Karten, den Stromverbrauch unter Linux auf die Verbrauchswerte von Windows zu drücken. Für die neueren Modelle sind die Linux-Treiber aber recht weit. Hier hat Linux in den letzten Monaten enorm aufgeholt. Insbesondere die NVIDIA-Grafikkarten werden gutunterstützt. Auf T60 und T61 bzw. den entsprechenden Modellen der R-Serie mit NVIDIA Karten verbraucht Linux daher etwas weniger als Windows. Auch auf den ThinkPads mit Intel-Grafik, beispielsweise 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)
  • Festplatte mit Laptop Mode kontrollieren und zum Stromsparen abschalten (wird bei Office Arbeiten oder surfen nicht benötigt)
  • mit PowerTOP die laufenden Tasks auf Wakeup-Übeltäter durchforsten und ggf. beenden
  • Optional: Undervolting

Stromspar-Änderungen persistent machen

  • im Startupscript etc/rc.local kann man die Einstellungen persistent machen:
# By default this script does nothing.
# Trackpoint sensibler
echo -n 250 > /sys/devices/platform/i8042/serio1/sensitivity
# und schneller
echo -n 200 > /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
  • Und 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 aber schon während der initramfs-Phase geladen. Die blacklist auch dort durchsetzen durch:

update-initramfs