Stromspar-Tipps

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Wiki ‹ Notebooks und spezielle Geräte ‹ Stromspar-Tipps



Baustelle.png Baustelle: Dieser Artikel ist eine Baustelle. Das heißt, jemand hat sich dieses Artikels angenommen und überarbeitet ihn gerade.


Einleitung

Bei vielen Notebooks ist die Akkulaufzeit unter Debian GNU/Linux ohne weitere Maßnahmen deutlich niedriger als bei anderen Betriebssystemen. Mit etwas Aufwand erreicht man aber meist einen niedrigeren Energieverbrauch und damit eine etwas konkurrenzfähigere Akkulaufzeit.

Viele der Maßnahmen lassen sich auf unterschiedlichste Art und Weise umsetzen, zB als Kernelparameter, als Moduloptionen, als udev-Regeln oder mittels sysctl oder Debianpackage.png sysfsutils. Oft ist die am einfachsten erscheinende Variante nicht die sinnvollste, zum Beispiel weil beim Systemstart mittels sysctl gesetzte Optionen bei einem Suspend verloren gehen können oder Änderungen am sysfs mit den Debianpackage.png sysfsutils, die erst später angeschlossene Geräte (z.B USB-Geräte) betreffen, beim Systemstart noch gar nicht vorgenommen werden können. Daher wird sich dieser Artikel möglichst auf Kernelparameter, Moduloptionen und udev-Regeln beschränken.


Baustelle.png Baustelle: Dieser Artikel ist eine Baustelle. Das heißt, jemand hat sich dieses Artikels angenommen und überarbeitet ihn gerade.


Konfiguration

…mit Hilfe von powertop

powertop

Debianpackage.png powertop ist ein sehr nützliches Werkzeug, das mögliche Maßnahmen zeigt. Es bietet mehrere Bildschirmseiten zwischen denen man mit TAB umschalten kann. Interessant ist zuallererst die letzte Seite "Tunables", die auf den meisten Systemen bereits eine ganze Reihe Vorschläge macht, die man, indem man sie mit Up und Down auswählt und mit Enter aufruft auch gleich umsetzen kann. Nach dem nächsten Neustart sind die Änderungen aber wieder weg. Die dauerhafte Umsetzung wird in den folgenden Abschnitten besprochen.

NMI Watchdog deaktivieren

An oberster Stelle findet sich bei den Vorschlägen von Debianpackage.png powertop auf den meisten Debiansystemen der Vorschlag den NMI Watchdog zu deaktivieren. Dieser Watchdog soll bei manchen Arten von System-/Kernelhängern helfen, dem Autor dieser Zeilen ist er allerdings noch nie positiv aufgefallen, weswegen die Hemmungen ihn zu deaktivieren nicht groß waren. Am einfachsten geschieht das mit der Kerneloption,

nmi_watchdog=0

die man in »/etc/default/grub« bei GRUB_CMDLINE_LINUX_DEFAULT, mit einem Leerzeichen von den anderen Optionen getrennt eintragen und dann mit

root@debian:~# update-grub

von Grub übernehmen lassen kann. Nach einem Neustart ist der Watchdog nicht mehr aktiv.

Schreibvorgänge

Auf einem normalen System werden regelmäßig und zwar üblicherweise alle fünf Sekunden (500 Hundertstel) fällige Daten auf die Blockgeräte (Festplatten, SSDs, Speicherkarten, USB-Sticks) geschrieben. vm.dirty_writeback_centisecs legt das Intervall fest in dem das passiert und bestimmt damit wieviel „Arbeit“ schlimmstenfalls verloren gehen kann, wenn das System abstürzt, z.B. weil die Stromversorgung ausfällt.

Debianpackage.png powertop setzt den Wert beim Aufruf dieser Option mit

root@debian:~# echo 1500 > /proc/sys/vm/dirty_writeback_centisecs

auf 15 Sekunden. Dauerhaft verankern kann man diese Einstellung indem man unter »/etc/sysctl.d« eine .conf-Datei, zum Beispiel »/etc/sysctl.d/98-powersaving.conf« anlegt und

vm.dirty_writeback_centisecs = 1500

hineinschreibt. Ein Wert von 0 würde bedeuten, dass das System Festplatten und dergleichen überhaupt nicht mehr regelmäßig aufweckt um die Daten zu schreiben.

Stromsparfunktionen verschiedener Geräte

Als nächstes folgt in Debianpackage.png powertop meistens eine ganze Liste weiterer Geräte bei denen sich Stromsparfunktionen aktivieren lassen. Vor allem geht es hier um die Stromsparmodi von

  • PCI-Geräten
  • USB-Geräten
  • und das SATA Link Power Management von SATA-Controllern.

Hier muss man nicht jedes einzelne Gerät getrennt behandeln sondern kann mit jeweils einer udev-Regel alle Geräte einer Klasse abdecken. Für irgendein PCI-Gerät schlägt Debianpackage.png powertop möglicherweise so etwas wie

root@debian:~# echo auto > /sys/bus/pci/devices/0000:00:00.0/power/control

vor. Stattdessen erstellt man nun eine Datei, zB »/etc/udev/rules.d/71-powersaving.rules« mit der verallgemeinerten Regel

ACTION=="add", SUBSYSTEM=="pci", TEST=="power/control", ATTR{power/control}="auto"

Für USB-Geräte sieht diese Regel fast gleich aus

ACTION=="add", SUBSYSTEM=="usb", TEST=="power/control", ATTR{power/control}="auto"

und man kann sie zur selben Datei hinzufügen. Auch bei SATA-Geräten läuft es nach dem selben Muster ab. Hier wird zB so etwas wie

root@debian:~# echo min_power > /sys/class/scsi_host/host0/link_power_management_policy

vorgeschlagen, das verallgemeinert als udev-Regel so aussieht

ACTION=="add", SUBSYSTEM=="scsi_host", TEST=="link_power_management_policy", ATTR{link_power_management_policy}="min_power"


Hinweis.png Hinweis: Stromsparfunktionen mancher Geräte können Probleme verursachen


Weil manche Geräte bei aktivierten Stromsparfunktionen Probleme verursachen und nicht mehr stabil funktionieren, ein Beispiel wären abreißende WLAN-Verbindungen und weil es bei manchen Geräten von vornherein eher unerwünscht sein kann, dass sie sich abschalten, zum Beispiel USB-Eingabegeräte, ist es manchmal wünschenswert einzelne Geräte von den obigen udev-Regeln auszunehmen.

Dazu ist es als erstes notwendig die Hersteller- und Produkt-ID herauszufinden. Mit lsusb bzw. lspci aus Debianpackage.png usbutils bzw. Debianpackage.png pciutils kann man sich eine Liste der Geräte ausgeben lassen.

user@debian:~$ lsusb
user@debian:~$ lspci -nn

Als Beispiel hier zwei Zeilen der Ausgaben dieser Befehle, wobei es sich bei der ersten Zeile um eine USB-Maus und bei der zweite um eine PCIe-Soundkarte:

Bus 003 Device 005: ID 046a:b092 Cherry GmbH
04:00.0 Multimedia audio controller [0401]: VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller [1412:1724] (rev 01)

Nun verwendet man die IDs aus diesen Ausgaben dazu die Stromsparregeln zu überspringen. Für dieses Beispiel sieht die »/etc/udev/rules.d/71-powersaving.rules« dann komplett so aus

# Blacklist
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="046a", ATTR{idProduct}=="b092", GOTO="power_saving_rules_end"
ACTION=="add", SUBSYSTEM=="pci", ATTR{idVendor}=="1412", ATTR{idProduct}=="1724", GOTO="power_saving_rules_end"

# eigentliche Stromsparregeln
ACTION=="add", SUBSYSTEM=="pci", TEST=="power/control", ATTR{power/control}="auto"
ACTION=="add", SUBSYSTEM=="usb", TEST=="power/control", ATTR{power/control}="auto"
ACTION=="add", SUBSYSTEM=="scsi_host", TEST=="link_power_management_policy", ATTR{link_power_management_policy}="min_power"

# Ende
LABEL="power_saving_rules_end"


Baustelle.png Baustelle: Dieser Artikel ist eine Baustelle. Das heißt, jemand hat sich dieses Artikels angenommen und überarbeitet ihn gerade.