TLP - Linux Stromsparen

Aus ThinkPad-Wiki

Wozu TLP?

Mit jedem Release werden in Ubuntu weitere Verbesserungen des Stromverbrauchs beim Einsatz auf Laptops implementiert, so daß mit einer einfachen Standardinstallation bereits recht gute Verbrauchswerte zu erzielen sind.

Die danach noch verbleibenden Möglichkeiten des Stromsparens sind recht leicht im WWW mittels einer Suchmaschine aufzufinden. Das Auswählen und Anwenden der jeweils zur eigenen Hardware und Ubuntu-Version passenden Einstellungen aus der gebotenen Vielfalt von Wiki-, Blog- und Foren-Beiträgen, fordert dem Anwender hingegen oft fortgeschrittene Linux- bzw. Ubuntu-Kenntnisse ab.

Hier soll TLP Abhilfe schaffen, indem es Ubuntu die Feinheiten des Stromsparens beibringt, ohne daß der Anwender allzuviel Detailwissen mitbringen muß.

TLP ist für alle Laptops geeignet, einige wenige Einstellungsmöglichkeiten sind nur für IBM/Lenovo ThinkPads verfügbar.

Da der Programmautor nur über Testmöglichkeiten auf ThinkPads verfügt, sind Rückmeldungen und Fragen zu anderen Fabrikaten willkommen (s. Support).

Funktionen

Einstellungen in Abhängigkeit von der Stromquelle

Folgende Einstellungen, die auch die relevanten Empfehlungen des Werkzeugs Powertop umfassen, werden in Abhängigkeit von der aktiven Stromquelle (Akku/Netzteil) automatisch vorgenommen:

  • Kernel-Laptop-Mode und Timeouts für das Zurückschreiben der Dateisystempuffer auf die Festplatte
  • APM Level für die Festplatte(n)
  • Wake on LAN (nur deaktivieren)
  • SATA Link Power
  • WLAN Power Save für Intel 5100/5300 unter Ubuntu 10.04 / Kernel 2.6.32
  • Sound Power Save für Intel HDA- und AC97-Sound
  • USB Autosuspend mit der Möglichkeit einer Geräte-Blacklist
  • PHC-Einstellungen für Undervolting (erfordert einen Kernel mit PHC-Patch)
  • Akku-Ladeschwellen **TP
  • Optisches Laufwerk in Wechselschacht bzw. UltraBay ausschalten (beim Wechsel zum Akkubetrieb)

Hinweis **TP : so gekennzeichnete Einstellungen erforderen tp-smapi und funktionieren daher nur bei ThinkPads, nicht jedoch bei der SL-, L- und Edge-Baureihe.

Einstellungen beim Systemstart

  • Integriertes Bluetooth, WLAN und WWAN (UMTS) lassen sich selektiv beim Systemstart bzw. vor dem Herunterfahren deaktivieren
  • Der Schaltzustand Ein/Aus des integrierten WWAN wird nach Suspend und Hibernation automatisch wiederhergestellt

Abgrenzung

Folgende Themen berücksichtigt TLP (absichtlich) nicht:

  • Lüftersteuerung (Lösungen sind bereits vorhanden: thinkfan (universe) oder ThinkPad Fan Control
  • Grafikkarten-Stromsparmodi (Lösungswege sind stark treiberabhängig)
  • Einschränkung bzw. Beinflussung der Prozessor-Taktfrequenzen (senkt den Stromverbrauch nicht, die Ubuntu-Standardeinstellung Ondemand-Governor ist bereits optimal, sagt Kernel-Entwickler Matthew Garrett in seinem Blog. Zusammenfassung in Deutsch siehe hier).

Installieren

Voraussetzungen

  • Die Laptop-Mode-Tools (siehe hier und hier) sind deaktiviert per ENABLE_LAPTOP_MODE=false in /etc/default/acpi-support; andernfalls verweigert TLP den Start.
  • Eigene Stromspar-Einstellungen oder -Skripte z.B. in /etc/rc.local sind deaktiviert, ansonsten sind schwer vorhersagbare Resultate zu erwarten.
  • Das TLP-PPA wurde in den Ubuntu-Paketquellen eingetragen per
sudo add-apt-repository ppa:linrunner/tlp
sudo apt-get update

Pakete installieren - Ubuntu 10.04

  • tlp (PPA)

Hinweis: es wird automatisch das Ubuntu-Paket pm-utils-powersave-policy deinstalliert, da es die Stromsparfunktion von TLP stören kann.

  • tp-smapi-dkms (universe) - optional **TP, ermöglicht das Einstellen der Akkuladeschwellen und erweiterte Statusanzeigen.
  • smartmontools (main) - optional, ermöglicht die Anzeige von SMART-Daten für die Festplatte(n) durch tlp-stat.

Pakete installieren - Ubuntu 9.10

  • tlp (PPA)

Hinweis: es werden automatisch die Pakete devicekit-power und libdevkit-power-gobject1 in Version 013 aus dem PPA installiert, da die in Ubuntu enthaltene Version 012 fehlerhaft ist (ruft die Skripte beim Wechsel der Stromquelle nicht zuverlässig auf).

  • tp-smapi-source (universe) - optional **TP, ermöglicht das Einstellen der Akkuladeschwellen und erweiterte Statusanzeigen.

Hinweis: nach der Installation von tp-smapi-source müssen noch die Kernelmodule erzeugt werden mit

sudo m-a a-i tp-smapi

Der Befehl ist zudem nach jedem Kernel-Update erneut auszuführen.

  • smartmontools (main) - optional, ermöglicht die Anzeige von SMART-Daten für die Festplatte(n) durch tlp-stat.

Einstellungen vornehmen

  • alle TLP-Einstellungen finden sich in /etc/default/tlp: ausführliche Beschreibung.
  • Änderungen können ohne Neustart des Systems aktiviert werden mit
sudo tlp start

Terminal-Kommandos

wifi, bluetooth, wwan

Integriertes WLAN, Bluetooth und WWAN (UMTS) lassen sich im Terminal ein-, aus- und umschalten bzw. bei Aufruf ohne Parameter abfragen:

wifi [ on | off | toggle ]

Hinweis: Für Intel 2200bg- und 2915abg-Karten muß das Kommando mit sudo aufgerufen werden.

bluetooth [ on | off | toggle ]
wwan [ on | off | toggle ]

Hinweis: Voraussetzung für die gezeigten Funktionen ist, daß die Hardware das rfkill-Framework des Kernels unterstützt (Ausnahme: Intel 2200/2915). Zur Überprüfung gibt man

rfkill list

ein und schaut ob die gewünschte Geräteklasse wifi/bluetooth/wwan in der Auflistung erscheint.

ThinkPad SL-, L- und Edge-Baureihe, X100e: Bluetooth und WWAN lassen sich derzeit wg. fehlender rfkill-Unterstützung nicht schalten (das Kernelmodul thinkpad_acpi lädt nicht).

tlp-stat

Statusbericht aller aktiven Einstellungen erstellen:

sudo tlp-stat

tlp

Einstellungen für die momentane Stromquelle aktivieren/testen

sudo tlp start

Einstellungen für Akkubetrieb aktivieren

(unabhängig von der tatsächlichen, momentanen Stromquelle)

sudo tlp bat

Einstellungen für Betrieb am Netzteil aktivieren

(unabhängig von der tatsächlichen, momentanen Stromquelle)

sudo tlp ac

Stromspar-Einstellungen für WLAN aktivieren

(nur für unterstützte Adapter bzw. Kernel)

sudo tlp wifi

Auto Suspend für alle angeschlossenen USB-Geräte aktivieren

(außer in Blacklist enthaltene)

sudo tlp usb

Optisches Laufwerk in Wechselschacht/Ultrabay ausschalten

sudo tlp bayoff

Hinweise zu bayoff:

  • Das Laufwerk kann über den Wechselschacht-/Ultrabay-Entriegelungsschieber bzw. bei neueren Modellen über den Auswurfknopf am Laufwerk wieder eingeschaltet werden.
  • Alle anderen Geräte in Wechselschacht/UltraBay, insbesondere Festplatten, werden durch dieses Kommando nicht ausgeschaltet.

Akku im Betrieb am Netzteil entladen **TP

Dient zum Rekalibrieren.

sudo tlp discharge [ BAT0 | BAT1 ]

Mit dem Parameter BAT0 (Default) wird der Hauptakku, mit BAT1 der Ultrabayakku entladen. Das Kommando zeigt laufend die verbleibende Kapazität und Entladezeit an. Das Entladen kann jederzeit mit Strg+C abgebrochen werden.

Akku-Ladeschwellen vorübergehend auf Maximum setzen **TP

Die Ladeschwellen werden auf 96/100% gesetzt. Dient dazu den Akku voll aufzuladen (nur für ThinkPads, nicht SL, L- und Edge-Baureihe).

sudo tlp fullcharge [ BAT0 | BAT1 ]

Die geänderten Akku-Ladeschwellen werden beim nächsten Systemstart wieder auf die in den Einstellungen vorgegebenen Werte gesetzt.

run-on-ac, run-on-bat

Bedingtes Starten von Befehlen in Abhängigkeit von der aktiven Stromquelle:

run-on-ac  befehl parameter ...
run-on-bat befehl parameter ...

Der befehl wird nur ausgeführt, wenn die passende Stromquelle (-ac für das Netzteil, -bat für den Akku) aktiv ist. Dies kann man z.B. in "System -> Einstellungen -> Startprogramme" verwenden.

Details aller Befehle erhält man auch per:

man <befehl>

Lizenz

TLP ist nach der GPL Version 2 lizensiert. Die Quellen sind im PPA verfügbar (tlp_VERSION.tar.gz).

Support

Für Fragen und Probleme gibt es einen Thread im Thinkpad-Forum. Bitte bei Anfragen dort stets die vollständige Ausgabe von

egrep -v '^#|^\s*$' /etc/default/tlp
sudo tlp-stat

per http://paste.ubuntuusers.de beifügen.

Trace-Modus

Bei komplexen Fehlersituationen kann durch folgende Einstellung in /etc/default/tlp der Trace-Modus aktiviert werden:

TLP_DEBUG="run rf pm usb sysfs"

Die gesammelten Informationen können jederzeit mit

grep "tlp" /var/log/debug

ausgelesen werden,

Changelog

Version 0.2.6 - 12.06.2010

Fehlerbehebung:

  • Bug #14: Anmeldedialog erscheint stark verzögert mit USB_AUTOSUSPEND=1.

Neue Features:

  • tlp fullcharge: Akku abweichend von den eingestellten Ladeschwellen voll aufladen.
  • tlp-stat zeigt an wenn kein Power Save für den WLAN-Adapter möglich ist: "off (not supported)".

Version 0.2.5 (-0ubuntu2) - 17.05.2010

Fehlerbehebung nur für Ubuntu 10.04:

  • Das Paket pm-utils-powersave-policy wird ab sofort bei der Installation von TLP automatisch entfernt.

Hintergrund: durch einen Fehler "deaktiviert" pm-utils-powersave-policy die Stromsparfunktionen von TLP, wenn der SATA-Controller im BIOS auf den Modus "Compatible" eingestellt ist (Bugreport: LP# 514881). Da die Funktionalität von pm-utils-powersave-policy vollständig von TLP abgedeckt wird, kann es problemlos entfernt werden.

Version 0.2.5 - 03.05.2010

Fehlerbehebung:

  • Bug #10: USB_AUTOSUSPEND=1 mit leerer USB_BLACKLIST führt zu stark verlängerter Bootzeit.
  • Bug #11: tlp-stat-Fehlermeldung bei SSDs ohne APM.

Neue Features:

  • #12: bluetooth/wifi/wwan toggle (thatgui).
  • USB Autosuspend-Modus per Default eingeschaltet.
  • WLAN Power Save für Ubuntu 10.04 (Kernel 2.6.32) wieder möglich (nur Intel 5x00).
  • Anpassungen für Lucid.

Version 0.2.4 - 14.03.2010

Fehlerbehebung:

  • Bug #8: Warnmeldung von tlp-stat "...No such file or directory" wenn weder internes Bluetooth noch WWAN vorhanden sind.
  • Bug #9: Ausgeschaltetes Ultrabaylaufwerk ist nach Suspend/Resume wieder eingeschaltet und wird erst nach Entfernen und erneutem Einschieben wieder erkannt.

Neue Features:

  • Akku im Betrieb am Netzteil entladen (tlp discharge).
  • run-on-ac, run-on-bat.

Version 0.2.3 - 07.03.2010

Fehlerbehebung:

  • Bug #7: Medium nicht ausgehängt (umount) vor dem Abschalten des Ultrabay-Laufwerks; keine Erkennung optischer Laufwerke != /dev/sr0.

Version 0.2.2 - 06.03.2010

Fehlerbehebung:

  • Bug #3: Bluetooth läßt sich nicht mehr einschalten, wenn es zuvor beim Systemstart ausgeschaltet wurde. Die Lösung ist nur ein Workaround für einen Bug in Ubuntu (rfkill); Bluetooth wird nun erst bei der Benutzeranmeldung ausgeschaltet.
  • Bug #5: Kernelmodul tp_smapi wird von tlp und tlp-stat nicht automatisch geladen.
  • Bug #6: Warnmeldung "tlp: [: 79: -a: unexpected operator" (WLAN Intel 2200bg).

Neue Features:

  • Umstellung des Systemstarts von Init-Skript auf Upstart
  • Erweiterte Ausgabe und Fehlerprüfungen bei tlp-stat
  • Optisches UltraBay-Laufwerk beim Wechsel zum Batteriebetrieb ausschalten (Parameter BAY_POWEROFF_ON_BAT=1)
  • wifi on|off für WLAN Intel 2200bg/2915abg (nur mit sudo möglich)

Version 0.2.1 - 02.02.2010

Fehlerbehebung:

  • Bug #1: Kommandos pm-suspend und pm-hibernate bleiben hängen.
  • Bug #2: Warnmeldung "/usr/sbin/tlp: 79: cannot create /sys/class/scsi_host/host*/link_power_management_policy: Directory nonexistent".

Version 0.2.0 - 30.01.2010

Initiales Release.