Aufmacher

Staying Alive

Energie sparen

01.08.2007 Intels Analyse-Tool Powertop zeigt Ihnen, welche Stromfresser das Betriebssystem beherbergt. Mit diesem Wissen verlängern Sie die Laufzeit des Notebooks.

Betreiben Sie Windows und Linux parallel auf einem Notebook, fällt meist eines negativ auf: Unter Windows hält der Akku länger als unter Linux. In diesem Fall beginnt üblicherweise das Feintuning: Sie entladen Module für stromfressende Hardware, ändern ACPI-Einstellungen und verdunkeln das Display. Zunehmend widmen sich aber auch Kernel-Entwickler und Distributoren Ihrem Energieproblem: Dank neuer Kernel-Features senken Sie den Stromverbrauch Ihres Systems. Powertop [1] analysiert die Veränderungen.

Gewöhnlich fallen Prozessoren in einen Stromsparmodus, sobald der Benutzer tatenlos vor dem Gerät sitzt. Zumindest theoretisch – denn in den bisherigen Kerneln meldet sich die innere Uhr, der statische Timer Tick, rund tausend Mal pro Sekunde. Diesen Puls nutzt die CPU zur Zeitmessung; beim Nichtstun stört er allerdings und reißt sie aus dem Stromsparmodus.

Seit Kernel-Version 2.6.21 gibt es daher die Dynticks: Timer Ticks erfolgen nur dann, wenn der Kernel sie auch wirklich braucht. Nutzer von 64-Bit-Systemen dürfen sich ab Kernel 2.6.23 über dieses Feature freuen.

Powertop offenbart die Auswirkungen der Dynticks – und einiges mehr. Es zeigt in einer Konsole an, wie lange der Kernel statistisch im Energiesparmodus verharrt (Abbildung 1). Zudem verrät das Werkzeug, welche Softwarekomponenten den Kernel in seiner Ruhepause stören, und hilft dem Anwender beim Optimieren des Systems. Denn nicht nur Timer Ticks unterbrechen die Kernel-Siesta, auch wenig optimierte Softwarekomponenten – etwa Gksu – wecken den Kernel unnötig oft auf. Aber Vorsicht: Optimieren macht süchtig!

Abbildung 1

Abbildung 1: Powertop im Einsatz: Das Tool zeigt an, wie oft der Prozessor in den Energiesparmodus geht und welche Programme ihn aus dem Schlaf reißen.

Kernel-Panik

Für Einsteiger dürfte abschreckend wirken, dass man den Kernel 2.6.21 benötigt, um Powertop zu nutzen – andernfalls zeigt das Tool bestenfalls die C-States an und verschweigt den Energieverbrauch durch einzelne Systemkomponenten.

Es gibt allerdings bereits Distributionen, die den Kernel 2.6.21 mitbringen: Neben Debian "Sid" gehört das Debian-Derivat Sidux dazu – zwei eher experimentelle Linuxe. Open Suse 10.2 und Ubuntu 7.04 "Feisty Fawn" führen den Kernel bisher nicht als Update. Es bietet sich an, direkt einen eigenen, neuen Kernel zu kompilieren. Erscheint Ihnen der Aufwand zu hoch, warten Sie einfach auf Open Suse 10.3 bzw. Ubuntu 7.10 "Gutsy Gibbon" – sie bringen dann nicht nur einen neuen Kernel mit, sondern vermutlich auch Pakete für Powertop.

Entscheiden Sie sich für das Kompilieren eines brandneuen Kernels, erhalten Sie diesen über Kernel.org [2] oder benutzen Version 2.6.21.5 von der Heft-DVD. Ein Beispiel zeigt im Folgenden, wie Sie einen Kernel für Ubuntu kompilieren. Der Weg unterscheidet sich von Distribution zu Distribution ein wenig. Hilfe bieten ein LinuxUser-Artikel [3] und die Dokumentationen zu den einzelnen Distributionen (für Open Suse etwa [4]). Sie sollten aber wissen, was Sie tun: Im schlimmsten Fall startet Ihr System anschließend nicht mehr.

Kernel für Powertop

Die folgende Anleitung funktioniert für "Edgy Eft" und "Feisty Fawn". Sie folgt im Wesentlichen dem Wiki von Ubuntuusers.de [5].

Zunächst installieren Sie die Pakete build-essential, kernel-package, xmlto, libncursesw5-dev sowie libncurses5-dev. Dann laden Sie einen aktuellen Kernel mit der Endung tar.bz2 von Kernel.org [2] herunter oder kopieren die Version 2.6.21.5 von der Heft-DVD in ein Verzeichnis Ihrer Wahl.

Wechseln Sie dorthin und entpacken Sie den Kernel über sudo tar xvjf linux-2.6.21.5.tar.bz2 -C /usr/src, wobei Sie 2.6.21.5 gegebenenfalls durch die von Ihnen verwendete Kernel-Version ersetzen. Im Verzeichnis /usr/src und legen Sie einen symbolischen Link namens linux an, der auf das Verzeichnis mit dem entpackten neuen Kernel zeigt:

sudo ln -s /usr/src/linux-2.6.21.5 /usr/src/linux

Wechseln Sie nun nach linux. Der Kernel liest üblicherweise eine Konfigurationsdatei, um zu erfahren, welche Kernel-Optionen Sie nutzen wollen und welche nicht. Für den neuen Kernel verwenden am besten die Konfigurationsdatei des aktuellen Kernel, die Sie unter dem Präfix config-AktuellerKernel im Verzeichnis /boot finden. Das Kommando sudo cp /boot/config-AktuellerKernel .config kopiert die alte Konfiguration und legt sie als versteckte Datei im Verzeichnis /usr/src/linux ab – das Kommando ls -la zeigt sie nun dort an (Abbildung 2).

Abbildung 2

Abbildung 2: Sie kopieren die Konfigurationsdatei des alten Kernels in das Verzeichnis /usr/src/linux und bearbeiten die Kernel-Optionen später über die Datei .config.

Der neue Kernel bringt auch neue Konfigurationseinstellungen mit. Der Befehl sudo make oldconfig fragt, wie Sie mit jeder einzelnen neuen Option umgehen wollen. Am besten übernehmen Sie über [Eingabe] jeweils die vorgesehenen Standardwerte, die dann automatisch in der Datei .config landen. Diese bearbeiten Sie anschließend mit Root-Rechten, indem Sie – gemäß der FAQ von der Powertop-Seite [6] – verschiedene Kernel-Optionen aktivieren und deaktivieren. Welche das sind, beschreibt der Kasten "Kernel-Optionen" . Um etwa die Option CONFIG_NO_HZ einzuschalten, verwandeln Sie den Eintrag # CONFIG_NO_HZ is not set in CONFIG_NO_HZ=y (Abbildung 3). Umgekehrt funktioniert das auch – vergessen Sie beim Auskommentieren aber die Raute nicht.

Abbildung 3

Abbildung 3: In der Datei .config passen Sie vor dem Übersetzen des Kernels einige Optionen an.

Kernel-Optionen

Folgende Optionen sollten Sie laut FAQ in der neuen Konfigurationsdatei aktivieren:

  • CONFIG_NO_HZ
  • CONFIG_TIMER_STATS
  • CONFIG_HIGH_RES_TIMERS
  • CONFIG_HPET
  • CONFIG_CPU_FREQ_GOV_ONDEMAND
  • CONFIG_USB_SUSPEND
  • CONFIG_SND_AC97_POWER_SAVE

Diese Features sollten Sie hingegen ausschalten:

  • CONFIG_IRQBALANCE
  • CONFIG_ACPI_DEBUG

Nach dem Speichern der modifizierten .config-Datei, übersetzen Sie den Kernel mit dem Befehl

sudo make-kpkg --initrd --revision=i686ver1 binary

Er erzeugt DEB-Pakete, die Sie auf dem gewohnten Weg installieren und deinstallieren. Der Prozess zieht sich gewöhnlich in die Länge – auf langsamen Rechnern dauert er mitunter Stunden. Ein sudo make-kpkg clean räumt anschließend überflüssige Dateien aus dem Weg. Nun wechseln Sie in das darüber liegende Verzeichnis und installieren den neuen Kernel über sudo dpkg -i kernel-image-version.deb. Der Befehl aktualisiert zugleich den Boot-Manager Grub.

Erscheint nach einem Neustart die grafische Oberfläche nicht, ändern Sie in der Datei /etc/X11/xorg.conf unter Section "Device" den Eintrag nvidia zu nv oder fglrx zu ati und starten den Display-Manager neu (Abbildung 4). Der neue Kernel braucht nämlich wieder neue Treiber, um die 3D-Beschleunigung der Grafikkarten zu nutzen. Eventuell müssen Sie Module für WLAN- oder Grafikkarten von Hand nachkompilieren und Patches einspielen. Aber auch wenn der neu kompilierte Kernel nicht sämtliche Hardware unterstützt, erfahren Sie über ihn, welche Software besonders viel Energie abzapft. Sie notieren sich dann einfach die Delinquenten und optimieren diese anschließend unter dem alten Kernel.

Abbildung 4

Abbildung 4: Erscheint nach dem Neustart mit dem neuen Kernel die grafische Oberfläche nicht mehr, nehmen Sie eine kleine Änderung in der Datei /etc/X11/xorg.conf vor.

Powertop einspielen

Nun kopieren Sie noch Powertop von der Heft-DVD auf Ihren Rechner oder laden die neueste Version aus dem Netz herunter, da die Entwicklung momentan recht rasant verläuft. Sie entpacken das Archiv, wechseln ins das neue Unterverzeichnis und geben make ein, um die Software zu übersetzen. Anschließend starten Sie diese direkt aus dem Verzeichnis über sudo ./powertop.

Guck mal, wer da saugt

Glaubt man Intel, läuft Powertop am besten auf Notebooks mit Intel-Prozessoren. C-State-Informationen (siehe Kasten C-States) gibt es nur für mobile CPUs auf Laptops. AMD- und Desktop-Nutzer können aber zumindest den Stromverbrauch einzelner Programme messen.

Powertop zeigt verschiedene Werte an (Abbildung 1). Ganz oben sehen Sie, wie lange die CPU in einem bestimmten C-State (siehe Kasten "C-States") verharrt. Das gibt Aufschluss darüber, wie gut die gewählten Kernel-Optionen wirken. Idealerweise sollte die CPU 95 Prozent der Zeit im C3- oder C4-Zustand mit einer Average Residency von 50 Millisekunden verbringen – so die Powertop-Webseite.

C-States

Gewöhnlich kennt die CPU verschiedene C-States: Je höher die Nummer, desto weniger Strom konsumiert die CPU. Es gibt vier C-States, wobei sich die höchsten beiden Zuständen C3 und C4 – der Schlafmodus – nur wenig voneinander unterscheiden.

Im Bereich darunter steht eine rot unterlegter Wert neben Wakeups-from-idle: Er zeigt an, wie oft pro Sekunde der Prozessor aufwacht. Diesen Wert gilt es möglichst niedrig zu halten. Hier behauptet die Webseite, man könne einen dreistelligen Wert in einen einstelligen verwandeln. Theoretisch funktioniert das auch, allerdings brauchen Sie dazu eine Menge Patches und Workarounds. Im Test senkten wir 205 Wakeups auf immerhin 29 Wakeups pro Sekunde (Abbildung 5 und 6). Die Zeile unter den Wakeups offenbart, wie lange die Batterien des Notebooks noch halten – vorausgesetzt es arbeitet gerade im Batteriemodus. Die Laufzeit der tragbaren Rechner verlängert sich, je mehr Stromfresser Sie abschalten.

Abbildung 5

Abbildung 5: Auf einem nicht optimierten System weckt die Software den Kernel etwa 205 Mal pro Sekunde auf, was Energie kostet.

Abbildung 6

Abbildung 6: Nach dem Optimieren wacht der Prozessor nur noch 29 Mal aus der Siesta auf. Die Laptop-Batterie hält schon etwas länger.

Mit am interessantesten erscheint die Liste von Programmen, die Powertop im unteren Bereich aufführt (Abbildung 5 und 6). Sie zeigt hierarchisch sortiert, welche Programme die CPU prozentual am häufigsten stören.

In der Fußleiste zeigt Powertop mitunter einen dritten schwarzen Balken an, der einen Buchstaben und daneben einen laufenden Prozess anzeigt, der viele Wakeups verursacht. Drücken Sie den Buchstaben, sendet Powertop ein Kill-Signal an diesen Prozess. Mitunter helfen schon kleine Einträge in einer Konfigurationsdatei, um die Charts der großen Energieverbraucher aufzumischen. Meist spielen Sie aber spezielle Patches ein, um den Energiebedarf eines Programms zu senken. Schreiben Sie etwa Option "NoDRI" in die Datei /etc/X11/xorg.conf in die Section "Device", verschwindet der Eintrag <interrupt> i915@pci aus der Liste der größten Stromfresser.

Vor der Beseitigung der Probleme steht aber die Frage: Welches Programm verbirgt sich zum Beispiel hinter i8042? In solchen Fällen bieten die Mailing-Liste [7] und die Rubrik Tipps & Tricks [8] der Powertop-Webseite Hilfe an. Im Fall von i8042 hilft die FAQ [6] weiter und verrät, dass es sich um den Kernel-Treiber für Maus und Tastatur handelt – kein Wunder also, dass dieser Eintrag auftaucht, sobald Sie am Computer arbeiten.

Glossar

ACPI

Advanced Configuration und Power Interface. Einen offener Industriestandard, der sich um die Energieverwaltung von neueren Rechnern kümmert. Die einzelnen Hardwarekomponenten des Systems müssen dabei ACPI-kompatibel sein, etwa die Hauptplatine, das BIOS und die CPU.

C-States

Leerlaufzustände bei ACPI-fähigen CPUs. Sie gliedern sich in vier Phasen von C1 (Leerlauf) bis C4 (Verarbeitungsstopp). Core-Duo-Prozessoren kennen darüber hinaus noch den Status Deep C4.

Infos

[1] Powertop: http://www.linuxpowertop.org

[2] Frische Linux-Kernel: ftp://ftp.kernel.org/pub/linux/kernel/v2.6

[3] Kernel kompilieren: Peter Kreussel, "Kerngeschäft", LinuxUser 06/2006, S. 88, http://www.linux-user.de/ausgabe/2006/06/088-kernel-kompilieren/index.html

[4] Kernel kompilieren unter Open Suse: http://www.thomashertweck.de/kernel26.html

[5] Ubuntuwiki zum Kernel: http://wiki.ubuntuusers.de/Kernel

[6] Die Powertop-FAQ: http://www.linuxpowertop.org/faq.php

[7] Mailingliste von Powertop: http://www.bughost.org/mailman/listinfo/power

[8] Tipps und Tricks zu Powertop: http://www.linuxpowertop.org/known.php

Tip a friend    Druckansicht beenden Bookmark and Share
Kommentare