Linux Stromsparen: Unterschied zwischen den Versionen

Aus ThinkPad-Wiki
(Artikel erstellt)
 
(Überarbeitung)
Zeile 3: Zeile 3:
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).
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.
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 weit. 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 ==
== Linux Stromspar-Tipps ==


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


== Stromspar-Änderungen persistent machen ==
== Stromspar-Änderungen persistent machen ==


* im Startupscript etc/rc.local kann man die Einstellungen persistent machen:
Im Startupscript etc/rc.local kann man die Einstellungen persistent machen:
 
  # By default this script does nothing.
  # By default this script does nothing.
  # Trackpoint sensibler
  # Trackpoint sensibler (empfohlen für Trackpoint-Experten)
  echo -n 250 > /sys/devices/platform/i8042/serio1/sensitivity
  echo -n 250 > /sys/devices/platform/i8042/serio1/sensitivity
  # und schneller
  # und schneller
  echo -n 200 > /sys/devices/platform/i8042/serio1/speed
  echo -n 250 > /sys/devices/platform/i8042/serio1/speed
  # Wake on Lan aus
  # Wake-on-Lan aus
  ethtool -s eth0 wol d
  ethtool -s eth0 wol d
  # PCI Geräte stromsparen
  # PCI Geräte stromsparen
  for i in /sys/bus/pci/devices/*/power_level ; do echo 5 > $i ; done
  for i in /sys/bus/pci/devices/*/power_level ; do echo 5 > $i ; done
  # sound stromsparen nach 10 sec
  # Sound stromsparen nach 10 sec
  echo 10 > /sys/module/snd_hda_intel/parameters/power_save
  echo 10 > /sys/module/snd_hda_intel/parameters/power_save
  # xbacklight aktivieren (Workaround für einen Bug in Hardy-Alpha-6)
  # xbacklight aktivieren (Workaround für einen Bug in Hardy-Alpha-6)
  xrandr --output LVDS --set BACKLIGHT_CONTROL native
  # xrandr --output LVDS --set BACKLIGHT_CONTROL native
  # USB Autosuspenden
  # USB autosuspenden
  for i in `find /sys -name autosuspend -exec echo {} \;` ; do echo "1" > $i ; done
  for i in `find /sys -name autosuspend -exec echo {} \;` ; do echo "1" > $i ; done
  # Laptop Mode aktivieren
  # Laptop Mode aktivieren
Zeile 41: Zeile 42:
  exit 0
  exit 0


* Und unnötige Kernel-Module in die Blacklist /etc/modprobe.d/blacklist (Späteres manuelles Nachtladen der Module ist kein Problem):
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
  # module nicht laden wegen Wakeups
  blacklist pcmcia
  blacklist pcmcia
Zeile 52: Zeile 54:
  blacklist ieee1394
  blacklist ieee1394


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

Version vom 14. April 2008, 20:55 Uhr

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 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 weit. 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