Wer viel mobil arbeitet, schenkt seinem Notebook einen großen Akku – oder verringert die Stromaufnahme. Unter Linux gibt für Letzteres eine ganze Reihe von Möglichkeiten.
Wie sich die Laufzeit eines Notebooks mit schlechter Software verringern lässt, weiß man spätestens seit Windows Vista. Das Wunder-Betriebssystem aus Redmond benötigte auf den meisten Rechnern bis zu 30 Prozent mehr Strom als der Vorgänger Windows XP. Doch auch Linux kommt beim Stromspartest nicht immer sehr gut weg. Das ist schade, lässt sich doch die Akkulaufzeit über die folgenden drei einfachen Punkte schnell und wesentlich verbessern:
- Bildschirmhelligkeit und Grafiktreiber
- Prozessor- beziehungsweise Prozess-Management
- Ausschalten nicht genutzter Peripheriegeräte
Auf den meisten Notebooks lassen sich durch diese drei Punkte Stromeinsparungen von 5 bis 10 Watt erreichen, selbst Werte über 15 Watt sind keine Seltenheit. Anstatt zwei Stunden arbeitet der Akku dann drei, wie der Artikel im Folgenden zeigt.
Display und Grafiktreiber
Proprietär hin, proprietär her: Die Originaltreiber von ATI/AMD und Nvidia arbeiten deutlich effizienter als die freien Alternativen. Unter dem Aspekt des Stromsparens stellt die Installation der entsprechenden Treiber daher auf einem System mit ATI- oder Nvidia-Grafik ein Muss dar.
In unseren Tests mit einem rund zwei Jahre alten Notebook mit integrierter Radeon-3200-Grafik verbrauchte der proprietäre fglrx-Treiber rund 5 Watt weniger als der aktuelle radeonhd-Treiber. Auch auf einem bereits etwas älteren Notebook mit Nvidia-5200-Grafik lagen die Durchschnittswerte mit dem proprietären Kernelmodul nvidia um 3 bis 4 Watt tiefer als mit dem freien nv– oder nouveau-Treiber. Dies gilt auch für Desktop-Systeme, wie ältere Tests zeigen [1].
Neben dem Treiber spielt auch die Helligkeit des Displays eine sehr große Rolle: Zwischen dem Maximal- und Minimalwert liegen je nach Bildschirmgröße und verbauter Hardware ebenfalls bis zu 5 Watt. Anstatt bei voller Displayhelligkeit und voller Beleuchtung zu arbeiten, lohnt es sich deshalb, am Abend das Licht im Raum etwas zu dimmen und die Helligkeit des LCD-Displays herunterzufahren. Die meisten Distributionen unterstützen dies von Haus aus, nur bei sehr wenigen Notebooks (einige Macbooks, Amilo Mini) sorgt die Regelung der Hintergrundbeleuchtung für Probleme. Mit einem aktuellen Kernel und entsprechenden grafischen Tools (Abbildung 1) lässt sich die Bildschirmhelligkeit zudem auch per Software regulieren.

Abbildung 1: Bei den meisten Notebooks lässt sich die Hintergrundbeleuchtung auch per Software steuern.
Energiefressende Prozesse
Wer mit seinem Notebook arbeiten möchte, achtet dabei nicht vorrangig auf den Stromverbrauch. Doch manchmal werkeln Programme oder Programmteile im Hintergrund, die den Rechner belasten, ohne dass man es möchte. Kandidat Nummer 1 der stromfressenden Prozesse ist auf den meisten Rechnern der Webbrowser beziehungsweise das Flash-Player-Plugin. Es benötigt je nach Hardware zwischen 30 und 60 Prozent der CPU-Leistung und sorgt somit für einen permanenten Stromverbrauch. Achten Sie deshalb darauf, den Browser zu schließen oder einen Flashblocker einzusetzen, wenn Sie ohne Stromanschluss arbeiten und gerade nicht im Internet surfen. Ein kurzer Blick auf die Ausgabe von top verrät weitere potenzielle Sünder.
Der Stromverbrauch jeder Anwendung sinkt und steigt mit der Frequenz des Prozessors. Praktisch sämtliche Distributionen setzen die CPU in der Grundeinstellung auf ein dynamisches Taktverhalten: Wird mehr Power benötigt, schaltet die CPU hoch – benötigt der Rechner keine Leistung, taktet sie herunter. Bei Notebook-CPUs liegen zwischen den beiden Werten in der Regel nur ein paar Watt, bei Desktoprechnern mit Vier- oder sogar Achtkern-Prozessor beträgt der Unterschied schon mal über 20 Watt. Das dynamische Hoch- und Heruntertakten (auch Frequency Scaling oder Performance-State genannt) bringt somit auf den ersten Blick sehr große Einsparungen beim Stromverbrauch.
Doch auf aktuellen Linux-Systemen sind so viele Prozesse aktiv, dass die CPU auch bei dynamischem Verhalten zu rund zehn Prozent trotzdem auf der höchsten Energiestufe arbeitet, was einen Großteil der vermeintlich eingesparten Energie verpuffen lässt. Unseren Tests zufolge lohnt es sich deshalb nicht immer, im Akkubetrieb die CPU auf dynamischer Taktung zu belassen: KDE, Gnome und Co. bringen selbst bei einer permanent auf 600 MHz heruntergetakteten CPU noch mehr als genügend Leistung, um das flüssige Arbeiten im Editor zu ermöglichen, Sudoku zu spielen oder E-Mails zu beantworten.
Dynamisch arbeiten
Aktuelle Kernel-Versionen unterstützen bei AMD- und Intel-Prozessoren neben dem (veralteten) manuellen Setup der CPU-Frequenz drei Stromsparmodi. Diese aktiviert der Betriebssystemkern über entsprechende Scheduler (siehe Tabelle “Powersave-Governors”). Der einfachste Stromsparmodus nennt sich powersave. Er taktet die CPU auf die niedrigste Frequenz herunter und belässt sie in diesem Zustand. Daneben gibt es zwei dynamische Regler: ondemand und conservative. Während der Ondemand-Scheduler die CPU bei Bedarf sofort auf die höchste Frequenz taktet, arbeitet Conservative zunächst mit der niedrigsten Frequenz weiter und erhöht die Taktrate nur, falls der Bedarf an CPU-Leistung bestehen bleibt. Beim Heruntertakten verhalten sich die zwei Scheduler analog: Ondemand schaltet sofort wieder zur niedrigsten Frequenz, Conservative erst nach einer gewissen Zeit.
Powersave-Governors
| Governor | Erklärung | Kernel-Modul |
|---|---|---|
performance |
CPU arbeitet permanent auf höchster Frequenz | cpufreq_performance |
ondemand |
CPU schaltet bei Bedarf sofort auf die höchste Frequenz | cpufreq_ondemand |
userspace |
Die Frequenz lässt sich von Hand einstellen (veraltet) | cpufreq_userspace |
conservative |
CPU schaltet bei Bedarf zur nächst höheren Frequenz | cpufreq_conservative |
powersave |
CPU bleibt auf der niedrigsten Frequenz | cpufreq_powersave |
Bei AMD-Prozessoren sorgt der Conservative-Scheduler für die längsten Akkulaufzeiten; auch die Kernel-Dokumentation empfiehlt, ihn zu nutzen. Für Intel-CPUs dagegen soll laut Kernel-Entwickler Arjan van de Ven der Ondemand-Scheduler die erste Wahl sein [2]. In unseren Tests mit Intel- und AMD-Prozessoren aus der Mobil-Riege ließen sich jedoch keine signifikanten Unterschiede zwischen den zwei dynamischen Governors feststellen, die Verbrauchsdifferenz liegt unter 0,1 Watt. Hingegen wirkt sich der Governor je nach CPU auf den Lüfter aus: Bei Powersave-Einstellungen blieb dieser auf einem unserer Testrechner stets auf niedrigster Stufe, bei einem dynamischen Governor schaltete er von Zeit zu Zeit ein. Detaillierte Benchmarks mit RHEL 5.2 finden sich bei IBM [3].
Am einfachsten benutzen Sie für das Setup des gewünschten Schedulers ein grafisches Tool. Unter KDE klicken Sie zum Beispiel auf das Batteriesymbol der Energieverwaltung und wählen hier einen Eintrag unter Energieprofil aus. Über die Einstellungen finden Sie unter Profile ändern | Prozessor und System die verfügbaren Scheduler zur Auswahl (Abbildung 2). Mit Dynamisch (Energiesparend) schaltet das System auf Conservative, über Dynamisch (nach Bedarf) schalten Sie den Ondemand-Governor ein. Die einzelnen KDE-Energieprofile nehmen über den CPU-Scheduler hinaus noch zahlreiche weitere Einstellungen vor. So deaktiviert etwa das Profil Xtreme Powersave in der Grundeinstellung auch sämtliche Desktop-Effekte. In unseren Tests ergaben sich jedoch dadurch Desktop-Effekte keine messbaren Einsparungen beim Stromverbrauch (einen funktionierenden Grafiktreiber vorausgesetzt).

Abbildung 2: Der gewünschte CPU-Frequency-Governor lässt sich bequem über das KDE-Batterie-Applet einrichten.
Wer kein passendes grafisches Tool zur Hand hat, greift einfach zur Kommandozeile. Theoretisch bringt in aktuellen Linux-Distributionen jeder Governor ein eigenes Kernelmodul mit, in der Praxis hat sich jedoch das Setup über die Dateien unter /sys/devices/system/cpu/ durchgesetzt. Hier finden Sie pro Prozessor beziehungsweise pro Kern ein Verzeichnis cpuX (Abbildung 3), das wiederum Unterverzeichnisse enthält.

/sys-Dateisystem lässt sich der Governor auch per Kommandozeile einrichten.” width=”300″ height=”167″ />
Abbildung 3: Über Pseudodateien im/sys-Dateisystem lässt sich der Governor auch per Kommandozeile einrichten. Der Inhalt der Datei /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors verrät, welche der erwähnten CPU-Scheduler der Kernel beziehungsweise der Prozessor unterstützen. Über den Befehl echo Governor > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor richten Sie als Systemadministrator den gewünschten ein. Anstelle von Governor wählen Sie dabei einen der fünf Einträge aus der Tabelle “Powersave-Governors”. Vergessen Sie bei Mehrkern-Systemen nicht, den Befehl auch für cpu1, cpu2 und so weiter auszuführen, falls Sie auf der Konsole arbeiten.
Möchten Sie den Prozessor noch stromsparender arbeiten lassen, greifen Sie als letzten Trick noch zum sogenannten Undervolting. Dabei wird die CPU mit einer niedrigeren als der vom Hersteller angegebenen Spannung betrieben, was beispielsweise bei älteren Pentium-M-Prozessoren recht gut funktionieren soll [4]. Wer sich ans Undervolting macht, sollte sich allerdings darüber im Klaren sein, dass er dabei die CPU beschädigen kann.
Störenfriede
Performance-States (sogenannte P-States) stellen bei aktuellen Prozessoren nur eine Möglichkeit zum Stromsparen dar. Eine zweite besteht darin, den Prozessor in einen bestimmten CPU-Zustand (“C-State”) zu versetzen, der zusätzlich Strom spart – nicht zu verwechseln mit dem CPU-Throttling, das keine Energie spart. Während der Linux-Kernel bei aktuellen Intel- und AMD-CPUs den Umgang mit P-States gleichermaßen gut beherrscht, haben die Nutzer von aktuellen Turion-X2-Prozessoren in Sachen C-States das Nachsehen.
Zwar unterstützen diese CPUs die C-States C1E, C2, C3 und C4, es gibt jedoch dafür unter Linux bislang nur einen beschränkten Support [5]. So zeigt die Ausgabe von cat /proc/acpi/processor/CPU0/power bei den meisten AMD-Prozessoren als max_cstate lediglich C1 an. Das macht sich nicht nur in einem – gegenüber Windows – leicht erhöhten Stromverbrauch nachteilig bemerkbar. Zudem heizen sich die Systeme mehr auf, sodass der Lüfter ständig arbeitet.
C-States sparen Strom, indem der Prozessor für eine gewisse Zeit einfach nicht arbeitet. Im normalen Betrieb befindet sich der Prozessor im C0-Zustand. C1 bedeutet, dass die CPU komplett ausgeschaltet ist. Ab C2 beginnen dann die Stromsparmodi – je höher die Ziffer, desto mehr Bereiche legt der Prozessor still [6]. Wie gut das funktioniert, hängt nicht nur vom Kernel, sondern auch vom BIOS und den benutzten Anwendungen ab.
Ein wesentliches Element, das die CPU bislang unter Linux stets auf Trab hielt, war die innere Uhr des Kernels: die sogenannten Timer-Ticks. Auf aktuellen Linux-Systemen (ab Kernel 2.6.23) erfolgen aber auch diese Ticks nur noch bei Bedarf, dem Stromsparen sind somit kaum Grenzen gesetzt – theoretisch. In der Praxis wacht die CPU im Schnitt 50 bis 100 Mal pro Sekunde aus einem möglichen C-Zustand auf und verhindert so ein effizientes Stromsparen. Messen und veranschaulichen lässt sich dieser Vorgang mit dem Tool Powertop. Die Mainstream-Distributionen bringen es in ihren Standard-Repositories mit, den Quellcode gibt es auf Intels Stromsparseite Lesswatts.org [7].
Powertop zeigt in der oberen Fensterhälfte je nach Prozessor den aktiven C-State und P-State an. Der (meist rote) Balken darunter verrät, wie oft der Prozessor pro Sekunde aus dem erwünschten Schlaf erwacht (Abbildung 4). OpenSuse oder Ubuntu in der Standard-Konfiguration zeigen hier Werte über der 200er-Marke an, mit ein paar Tricks lassen sich aber Werte unter 20 erreichen (Abbildung 5). Der Balken färbt sich dann orange. Im unteren Bereich erscheint eine Liste der Prozesse, die den Kernel am häufigsten aus dem Schlaf reißen, ganz unten gibt das Programm Tipps, wie sich die Akkulaufzeit verbessern lässt.

Abbildung 4: Powertop zeigt die P- und C-States an und gibt Tipps zum Stromsparen. Das Beispiel zeigt einen Pentium-M-Prozessor von Intel.

Abbildung 5: Bei den meisten CPUs von AMD liefert der Kernel keine Informationen zu den C-States, wie hier am Beispiel eines Turion-X2-Prozessors zu sehen.
Powertop nutzen
Die aktuelle Version 11.1 von Powertop bringt rund zehn Funktionen mit, die sich gleich per Tastendruck aktivieren lassen. [S] beispielsweise schaltet den SATA-Stromsparmodus ein, [K] verhindert das Abfragen von CD/DVD-Laufwerken, [L] aktiviert den Laptop-Modus. Die in Entwicklung befindliche Version 1.12 schaltet zudem auch das Audio-System über HDMI ab.
Einige der Einstellungen nimmt Powertop permanent vor (zum Beispiel Udev-Regeln für das Polling von Laufwerken), bei anderen müssen Sie selbst dafür sorgen, sie nach jedem Systemstart zu aktivieren. Wenden Sie sämtliche Vorschläge von Powertop an, können Sie je nach Rechner bis zu 10 Watt an Strom sparen. Das Tool zeigt zur Kontrolle den aktuellen Stromverbrauch des Systems an. Das funktioniert jedoch nur, wenn der Rechner nicht am Stromnetz hängt.
Lassen Sie sich von den augenfälligen Resultaten von Powertop jedoch nicht darüber hinwegtäuschen, dass sich die besten Ergebnisse oft mit den einfachsten Mitteln erzielen lassen. So verbraucht etwa ein unnötig eingeschalteter Bluetooth-Adapter bis zu 6 Watt, da er auch das USB-Subsystem auf Draht hält. Je nachdem, ob Sie im Akku-Betrieb per LAN oder WLAN im Netz hängen, lohnt sich auch ein Blick auf das entsprechende Kernel-Modul, das sich per sudo modprobe -r Modulname ausschalten lässt. Bei vielen Net- und Notebooks können Sie WLAN und Bluetooth auch über entsprechende Funktionstasten ausschalten. Ob das fragliche Gerät dann auch tatsächlich inaktiv ist, zeigt allerdings nur der Blick auf den Stromverbrauch im Powertop-Fenster. Bei einigen WLAN-Chipsätzen lässt sich der Stromverbrauch auch im laufenden Betrieb reduzieren – Powertop zeigt hier an, welchen Befehl Sie dazu aufrufen müssen.
Auch die aktuelle Powertop-Version vernachlässigt nach wie vor das Audio-System. Benötigen Sie keinen Sound, sparen Sie mit dem Entladen sämtlicher Sound-Module rund 1 Watt. Als Spielverderber erwies sich in den Tests ein Fingerprint-Scanner am USB-Bus: Er verhinderte, das sich USB-Subsystem in den Suspend-Modus versetzen ließ. Auch hier kann man versuchen, sämtliche USB-Module (uhci_hcd, ehci_hcd) zu entladen, sofern man den Rechner nicht per USB-Tastatur bedienen möchte.
Festplatte?
Powertop bietet zwar an, den Laptop-Mode einzuschalten, wendet aber keine Stromsparfunktionen auf Festplatten an. Besitzen Sie zum Beispiel ein Notebook mit zwei Festplatten, dann lässt sich eine nicht benutzte Platte über hdparm -y /dev/sdb in den Standby-Modus versetzen, hdparm -Y /dev/sdb sorgt für einen Tiefschlaf, der den Stromverbrauch praktisch auf Null reduziert, was Powertop mit weiteren zwei gesparten Watt anzeigt. Um die Systemplatte schlafen zu legen oder zumindest ausruhen zu lassen, benötigt es zusätzlicher Feinarbeit: So muss zum Beispiel die Mount-Option noatime aktiv sein, der Writeback-Cache sollte auf mehr als fünf Sekunden gesetzt sein und der Syslog-Daemon darf nicht dazwischenfunken, da die Platte sonst ständig aus dem Stromsparmodus aufwacht.
Einen guten Ansatz bietet der Befehl hdparm -B 130 /dev/sda. Damit nutzt die Platte zwar alle möglichen Stromspar-Features, versetzt sich aber nicht in den Tiefschlaf. Zu viel Feintuning lohnt sich allerdings kaum: Obwohl aktuelle Notebook-Platten auch sehr viele Einschlaf/Aufwachzyklen aushalten, bleibt der Spareffekt eng begrenzt – im Dauerbetrieb benötigt das Laufwerk kaum mehr Strom als für das ständige Ein- und Ausschalten, zudem entfallen unangenehme Klacker-Geräuschen. Möchten Sie dennoch das Bestmögliche herausholen, dann hilft das Tool lm-profiler aus dem Paket laptop-mode beziehungsweise laptop-mode-tools beim Aufstöbern der Plagegeister, die die Festplatte nicht zur Ruhe kommen lassen.
Fazit
Mit einem optimalen Grafikkartentreiber, dem passenden CPU-Governor und dem Ausschalten nicht benötigter Hardware-Komponenten lassen sich bei praktisch jedem Notebook bis zu 10 Watt sparen. In den Tests verbrauchte ein AMD-Turion-System vor der Optimierung im Schnitt 32 Watt und hielt damit rund zwei Stunden fern des Stromnetzes aus, nach den Optimierungen lag der Verbrauch zwischen 20 und 22 Watt und die Akkulaufzeit bei über drei Stunden. Auch auf einem älteren Pentium-M-Rechner sank der Stromverbrauch von rund 22 auf 15 Watt. Beide Messungen nahmen wir bei mittlerer Bildschirmhelligkeit vor, die Minimalwerte liegen somit noch rund 2 Watt niedriger. Auch wenn das Feintuning von CPU-Schedulern oder C-States im Vergleich zu den Peripheriegeräten und der Grafik kaum etwas bringt, erwies sich Powertop bei den Tests als unentbehrlicher Helfer – Intels praktisches Werkzeug sollte also auf keinem Mobilrechner fehlen.
Infos
[1] Strom sparen durch Hardware-Optimierung: Marcel Hilzinger, “Abspecken”, LinuxUser 06/2008, S. 30, https://www.linux-community.de/artikel/15807
[2] Ondemand für Intel: http://www.bughost.org/pipermail/power/2007-May/000071.html
[3] Governor-Vergleich: http://www.ibm.com/developerworks/linux/library/l-cpufreq-3/index.html
[4] Undervolting: http://www.thinkwiki.org/wiki/Pentium_M_undervolting_and_underclocking
[5] C-States in Turion-Prozessoren: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/188739
[6] C-States erklärt: http://www.hardwaresecrets.com/article/611
[7] Powertop-Download: http://www.lesswatts.org/projects/powertop/download.php





