Messung der Leistungsaufnahme unter Linux

Aus ThinkPad-Wiki

Einleitung

Zur Messung der Leistungsaufnahme bei Laptops werden die Informationen der Elektronik im Akkupack ausgewertet. Zur Bestimmung des aktuellen Ladezustands führt die Akkuelektronik über jeden Lade- und Entladevorgang Buch und mißt zu diesem Zweck laufend Akkustrom und -spannung.

Die ermittelten Daten werden regelmäßig an den Laptop übermittelt und lassen sich über das ACPI-BIOS abfragen. Das ACPI-BIOS führt allerdings bei der Ausgabe eine gleitende Mittelwertbildung durch, sodaß der echte Momentanwert nicht zugänglich ist. Nahezu alle für Linux und die verschiedenen Desktopumgebungen verfügbaren Programme zeigen diese ACPI-Werte an.

Bei ThinkPads besteht darüber hinaus die Möglichkeit, über das Kernelmodul tp_smapi direkt auf die Rohdaten des "Embedded Controller" zuzugreifen.

"Meßinstrumente"

Wichtig: aus der Einleitung folgt, daß eine Verbrauchsermittlung nur im Akkubetrieb möglich ist.

Powertop

Das beim Chiphersteller Intel entwickelte Programm Powertop steht in allen Distributionen über die Paketquellen zur Verfügung (Paketname powertop).

Hinweis: powertop ist mit Root-Rechten aufzurufen.

Neben dem aktuellem Verbrauch [W] und der Restlaufzeit [h] (Werte auf Basis des ACPI-BIOS) werden weitere prozessorbezogene Kenndaten angezeigt:

  • Verweildauer in den Schlafzuständen (C-States) [%]
  • Verweildauer in den Taktstufen (P-States) [%]
  • Wakeups [1/s]
  • Verursacher von Wakeups, d.h. Programme die den Prozessor aufwecken

tp_smapi

Der Weg über das Kernelmodul tp_smapi eignet sich besonders zur exakten Ermittlung des momentanen Verbrauchs (s.o.). Für den Hauptakku kann man der Wert über die Datei /sys/devices/platform/smapi/BAT0/power_now abfragen (für den Ultrabayakku ist BAT0 durch BAT1 zu ersetzen). Der Wert aus power_now ist in mW angegeben und hat ein negatives Vorzeichen, da Strom entnommen wird.

Für eine kontinuierliche Anzeige im Sekundentakt kann man folgendes Shell-Kommando verwenden (Abbruch mit Str+C):

while true; do cat /sys/devices/platform/smapi/BAT0/power_now; sleep 1; done

Randbedingungen für Vergleichbarkeit

Wenn eine Vergleichbarkeit der Messwerte - z.B. für einen Forumsthread - gewünscht wird, ist es wichtig reproduzierbare bzw. wiederholbare Randbedingungen einzuhalten. Folgendes Vorgehen ist dabei hilfreich:

  • Akkubetrieb
  • Leerer Desktop, d.h. keine Anwendungen gestartet
  • WLAN an und verbunden
  • Bluetooth und WWAN(UMTS) aus
  • Keine externen USB-Geräte angeschlossen
  • Keine Prozess- und Plattenaktivität im Hintergrund
  • Minimale LCD-Helligkeit
  • Notebook > 5 min nicht anfassen

Hinweis: die so gewonnenen Meßwerte stellen nicht den typischen Verbrauch des Notebooks im Betrieb dar!

Links

  • Powertop - Anleitung bei ubuntuusers.de
  • Powertop - Projektseite (englisch) - Vorsicht: die Hinweise auf der Seite "Tips & Tricks" sind hoffnungslos veraltet.
  • LessWatts.org - Webseite von Intel zum Thema "Stromsparen mit Linux" (englisch) - auch hier teilweise veraltete Hinweise.