TLP - Linux Stromsparen
Was ist TLP?
TLP bringt Linux die Feinheiten des Stromsparens bei, ohne daß der Anwender allzuviel Detailwissen mitbringen muß.
TLP kommt mit einer Standardkonfiguration, die bereits auf Akkulaufzeit optimiert ist, so daß man es einfach installieren und danach vergessen kann. Anderseits sind die TLP-Einstellungen in hohem Maße anpassbar auf benutzerspezifische Anforderungen.
TLP-Pakete sind verfügbar für Arch, Debian, Fedora, Gentoo und Ubuntu. Wer sich dafür interessiert TLP für andere Distributionen zu paketieren, sollte einen Blick in die TLP Programmdokumentation werfen.
Hinweis: TLP ist für alle Notebook-Fabrikate geeignet, das Einstellen der Akkuladeschwellen ist jedoch nur für IBM/Lenovo ThinkPads verfügbar.
Funktionen
TLP ist ein reines Kommandozeilenwerkzeug, dass automatisch im Hintergrund arbeitet. Es verfügt nicht über eine GUI.
Einstellungen in Abhängigkeit von der Stromquelle
Folgende Einstellungen, die alle 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
- Prozessortakt-Steuerung einschließlich "Turbo Boost" / "Turbo Core"
- Verbrauchsbewusster Prozess-Scheduler für Multi-Core/Hyper-Threading-CPUs
- Advanced Power Management Level und Spindown Timeout (je Festplatte)
- SATA Aggressive Link Power Management (ALPM)
- PCI Express Active State Power Management (PCIe ASPM) – ab Linux 2.6.35
- Runtime Power Management für PCI(e)-Bus-Geräte – ab Linux 2.6.35
- Radeon KMS Taktfrequenzsteuerung – ab Linux 2.6.35, nicht fglrx
- Radeon Dynamic Power Management (DPM) – ab Linux 3.11, nicht fglrx
- WLAN (WiFi) Stromsparmodus – abhängig von Kernel und Treiber
- Optisches Laufwerk in Wechselschacht bzw. UltraBay ausschalten (beim Wechsel zum Akkubetrieb)
- Audio Stromsparmodus – für Intel HDA- und AC97-Sound
Weitere Einstellungen
- I/O-Scheduler (je Festplatte)
- USB Auto Suspend mit Geräte-Blacklist (Eingabegeräte werden automatisch ausgespart)
- Integriertes Bluetooth, WLAN und WWAN (UMTS) selektiv beim Systemstart bzw. beim Herunterfahren ein- bzw. ausschalten
- Funkgerätezustand beim Systemstart wiederherstellen (wie beim letzten Herunterfahren bzw. Neustart)
- Radio Device Wizard: Funkgeräte ereignisgesteuert ein- und ausschalten (Netzwerkverbindung/-trennung, An-/Abdocken)
- Wake-on-LAN deaktivieren
- Schaltzustand Ein/Aus des integrierten WWAN nach Suspend und Hibernation wiederherstellen
- Undervolting von Intel-Prozessoren – erfordert den Ubuntu tp-Kernel oder einen Kernel mit PHC-Patch
- Akku-Ladeschwellen – nur bei ThinkPads
- Akku rekalibrieren – nur bei ThinkPads
Installieren
Ubuntu 12.04, 14.04 und 14.10
sowie Linux Mint 13, 17, nicht jedoch LMDE (siehe Debian)
In die Ubuntu-Paketquellen ist das TLP-PPA einzutragen mit folgenden Terminalkommandos:
sudo add-apt-repository ppa:linrunner/tlp sudo apt-get update
Folgende Pakete sind zu installieren:
- tlp (PPA) – Stromsparfunktionen von TLP
- tlp-rdw (PPA) – optional, Funkgerätesteuerung (Radio Device Wizard)
- tp-smapi-dkms (universe) – optional nur für ThinkPads, tp-smapi ermöglicht das Einstellen der Akkuladeschwellen und erweiterte Statusanzeigen.
- acpi-call-tools (PPA) – optional nur für ThinkPads, acpi-call ermöglicht das Einstellen der Akkuladeschwellen bei Sandy-Bridge- und neueren Modellen (X220/T420, X230/T430 etc.).
Die Pakete installiert man über die Paketverwaltung (Ubuntu Software Center, Synaptic, ...) oder im Terminal:
sudo apt-get install tlp tlp-rdw
Auf ThinkPads installiert man zusätzlich:
sudo apt-get install tp-smapi-dkms acpi-call-tools
Debian 7.0
sowie Linux Mint Debian Edition (LMDE)
Wichtig: die Pakete sind nicht kompatibel mit Debian 8.0 "Jessie"
Die folgenden Schritte sind - wie bei Debian üblich - in einer Root-Shell auszuführen.
Als Paketquelle wird das TLP-PPA für Ubuntu 10.04 verwendet. Dafür ist folgende Zeile in /etc/apt/sources.list einzutragen:
deb http://ppa.launchpad.net/linrunner/tlp/ubuntu lucid main
Anschließend ist der Public-Key des TLP-PPA zu hinterlegen:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 02D65EFF
Schlägt das vorstehende Kommando fehl, probiert man es mit einem anderen Keyserver:
apt-key adv --keyserver pool.sks-keyservers.net --recv-keys 02D65EFF
Zuletzt führt man ein Update der Paketquellen durch:
apt-get update
Folgende Pakete sind zu installieren:
- tlp (PPA) – Stromsparfunktionen von TLP
- tlp-rdw (PPA) – optional, Funkgerätesteuerung (Radio Device Wizard)
- tp-smapi-dkms (main) - optional nur für ThinkPads, ermöglicht das Einstellen der Akkuladeschwellen und erweiterte Statusanzeigen.
- acpi-call-tools (PPA) – optional nur für ThinkPads, acpi-call ermöglicht das Einstellen der Akkuladeschwellen bei Sandy-Bridge- und neueren Modellen (X220/T420, X230/T430 etc.).
Die Pakete installiert man über die Paketverwaltung oder im Terminal:
sudo apt-get install tlp tlp-rdw
Auf ThinkPads installiert man zusätzlich:
sudo apt-get install tp-smapi-dkms acpi-call-tools
Hinweis: Bei Sandy-Bridge- und neueren Modellen sollte für die Intel-Grafik zusätzlich noch die unten gezeigte Kernel-Bootoption für RC6 eingerichtet werden.
Arch Linux
Pakete sind in den offiziellen Repositories (Community) erhältlich. Die Installation ist im Arch Wiki (englisch) beschrieben.
Gentoo
Die Installation mit layman ist hier (englisch) beschrieben.
Für Sabayon gibt es fertige Binärpakete, die Installation ist hier (englisch) beschrieben .
openSUSE
Für die gewarteten Versionen von openSUSE sind derzeit keine offiziellen TLP-Pakete verfügbar.
Fedora 19 und 20
TLP-Pakete sind über die offiziellen Fedora Repositories verfügbar:
- tlp (Updates)
- tlp-rdw (Updates) - optional, Radio Device Wizard, erfordert NetworkManager
Man installiert sie mit der Paketverwaltung oder im Terminal:
yum install tlp tlp-rdw
Nur für ThinkPads
ThinkPad-spezifische Komponenten für die erweiterten Akkufunktionen sind derzeit nicht aus den Fedora Repositories zu erhalten. Stattdessen sind die Repositories TLP und RPM Fusion (für die akmods) einzurichten:
yum localinstall --nogpgcheck http://repo.linrunner.de/fedora/tlp/repos/releases/tlp-release-1.0-0.noarch.rpm yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
Folgende Pakete sind zu installieren:
- akmod-tp_smapi (TLP Repo) - optional nur für ThinkPads, ermöglicht das Einstellen der Akkuladeschwellen und erweiterte Statusanzeigen
- akmod-acpi_call (TLP Repo) - optional nur für ThinkPads, acpi_call ermöglicht das Einstellen der Akkuladeschwellen bei Sandy-Bridge- und neueren Modellen (X220/T420, X230/T430 etc.)
- kernel-devel (Fedora Repo) - optional, wird von den vorstehenden akmod-Paketen benötigt
yum install akmod-tp_smapi akmod-acpi_call kernel-devel
Kernel-Bootoptionen
Das Setzen von Bootoptionen zum Stromsparen ist für keine der derzeit von TLP unterstützten Distributionen / Release notwendig. Die enthaltenen Kernelversionen wählen automatisch sinnvolle Einstellungen.
Einstellungen vornehmen
Alle TLP-Einstellungen finden sich in /etc/default/tlp. In vielen Fällen ist es nicht nötig, die Standardeinstellungen anzupassen. Die komplette Referenz findet sich in TLP Einstellungen.
Start
Sind Installation und Konfiguration abgeschlossen, aktiviert sich TLP automatisch beim Systemstart.
Alternativ startet man TLP sofort mit dem Kommando
sudo tlp start
Check
Um zu prüfen ob TLP korrekt arbeitet, benutzt man das Kommando
sudo tlp-stat
und schaut in der Ausgabe nach
+++ System Status TLP power save = enabled power source = ...
Hinweis: es gibt keinen TLP-Hintergrund-Prozess oder -Dämon den man mit ps anzeigen könnte.
Terminal-Kommandos
Hinweis: alle in diesem Kapitel beschriebenen, mit sudo beginnenden Kommandos, können ohne sudo in einer root-Shell ausgeführt werden.
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 2100b-, 2200bg- und 2915abg-Karten muß das Kommando mit sudo
oder in einer Root-Shell 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 2100/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 (für Debian ist zuvor das Paket rfkill zu installieren).
tlp-stat
Statusbericht der Konfiguration und aller aktiven Einstellungen erstellen:
sudo tlp-stat
Nur Akkuinformationen anzeigen:
sudo tlp-stat -b sudo tlp-stat --battery
Nur Konfiguration anzeigen:
tlp-stat -c tlp-stat --config
Nur Schaltzustand der Funkgeräte anzeigen:
tlp-stat -r tlp-stat --rfkill
Nur Temperaturen und Lüfterdrehzahl anzeigen:
tlp-stat -t tlp-stat --temp
Traceausgabe aus /var/log/debug anzeigen:
tlp-stat -T tlp-stat --trace
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
Auto Suspend für alle angeschlossenen USB-Geräte aktivieren
(außer in Blacklist enthaltene und Eingabegeräte)
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-Ladeschwellen vorübergehend ändern
nur für ThinkPads
Die Ladeschwellen werden auf die angegebenen Werte gesetzt (nur für ThinkPads, nicht SL, L- und Edge-Baureihe).
Wertebereich von 1 bis 100; START_SCHWELLE muß kleiner als die STOP_SCHWELLE - 3 sein. Gibt man keine Parameter an, werden die in den Einstellungen angegebenen Schwellen für den Hauptakku (BAT0) verwendet.
sudo tlp setcharge [ START_SCHWELLE STOP_SCHWELLE [ BAT0 | BAT1 ] ]
Die geänderten Akku-Ladeschwellen werden beim nächsten Systemstart wieder auf die in den Einstellungen vorgegebenen Werte gesetzt.
Akku-Ladeschwellen vorübergehend auf Maximum setzen
nur für ThinkPads
Die Ladeschwellen werden auf Werkseinstellungen 96/100 % gesetzt. Dient dazu den Akku voll aufzuladen.
sudo tlp fullcharge [ BAT0 | BAT1 ]
Die geänderten Akku-Ladeschwellen werden beim nächsten Systemstart wieder auf die in den Einstellungen vorgegebenen Werte gesetzt.
Akku einmalig bis zur oberen Schwelle laden
nur für ThinkPads
Setzt die untere Akku-Ladeschwelle vorübergehend auf obere Ladeschwelle - 4 und löst dadurch einen Ladevorgang aus.
sudo tlp chargeonce [ BAT0 | BAT1 ]
Die geänderte Ladeschwelle wird beim nächsten Systemstart wieder auf den in den Einstellungen vorgegebenen Wert gesetzt.
Akku im Betrieb entladen (am Netzteil)
nur für ThinkPads
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.
Hinweise:
- das Kommando funktioniert nur mit angeschlossenem Netzteil
- während des Entladevorgangs kann ganz normal mit dem ThinkPad gearbeitet werden
- bei Problemen mit dieser Funktion bitte auch die TLP FAQ beachten
Akku rekalibrieren (am Netzteil)
nur für ThinkPads
sudo tlp recalibrate [ BAT0 | BAT1 ]
Das Kommando arbeitet wie folgt:
- Die Ladeschwellen werden auf die Hardware-Defaults 96%/100% zurückgesetzt
- Der selektierte Akku wird komplett entladen (siehe obige Beschreibung von tlp discharge)
- Sobald der Akku entladen ist, endet das Kommando
- Wichtig: um die Rekalibrierung abzuschließen, lädt man anschliessend den Akku bis 100% auf (dabei darf das ThinkPad ausgeschaltet, jedoch nicht vom Netzteil getrennt werden)
Hinweis: der Rekalibrierungsvorgang sorgt dafür, daß die Elektronik im Akku Ladezustand und Kapazität korrekt wiedergibt. Verschlissene oder defekte Akkuzellen werden dadurch nicht repariert.
Disk ID
tlp diskid
Ermittelt die IDs der Festplatten zur Angabe im Konfigurationsparameter DISK_DEVICES.
Statusbericht
sudo tlp stat
Entspricht tlp-stat.
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.
Manpages
Details aller Befehle erhält man per:
man <befehl>
Lizenz
TLP ist nach der GPL Version 2 und höher lizensiert. Zum Download des Quellcodes siehe die TLP Programmdokumentation.
Support
FAQ
Erste Anlaufstation bei Fragen und Problemen ist die TLP FAQ.
Thinkpad-Forum
Für darüber hinaus gehende Fragen und Probleme gibt es einen TLP-Support-Thread im Thinkpad-Forum (selbstverständlich sind dort auch Nutzer anderer Fabrikate willkommen).
Notwendige Angaben
Bitte bei allen Supportanfragen immer die vollständige Ausgabe von
sudo tlp-stat
beifügen.
Ausserdem wird stets die Information benötigt, an welcher Stromquelle (Akku, Netzteil) das Problem auftritt.
Trace-Modus
Bei komplexen Fehlersituationen kann durch folgende Einstellung in /etc/default/tlp der Trace-Modus aktiviert werden:
TLP_DEBUG="bat disk lock nm path pm rf run sysfs udev usb"
Die gesammelten Informationen können jederzeit mit
tlp-stat -T
ausgelesen werden.
Voraussetzungen
nur für (r)syslog
Falls der Befehl keine Ausgabe erzeugt, muss die Syslog-Konfiguration ergänzt werden. Für rsyslog legt man dazu die Datei /etc/rsyslog.d/90-debug.conf mit folgendem Inhalt an:
*.=debug;\ auth,authpriv.none;\ news.none;mail.none -/var/log/debug
Anschließend startet den Dämon neu mit
sudo /etc/init.d/rsyslog restart
und führt den Testfall erneut aus.
Hinweis für systemd basierte Distributionen: es ist keine Anpassung der Konfiguration nötig – TLP nutzt journald für die Trace-Daten.
Links
TLP
- TLP Einstellungen
- TLP FAQ
- TLP-Support-Thread – im Thinkpad-Forum
- TLP – Projekt-Homepage
- TLP Linux Advanced Power Management – Documentation in English
- TLP Quellcode – GIT Repository bei Github.com (englisch)
- TLP Developer Documentation – Hinweise zur Paketierung (englisch)
- TLP PPA – Pakete für Ubuntu und Debian (englisch)
Hintergrund
- Messung des Stromverbrauchs – Wikiartikel
- SMART – Ermitteln des Festplattenzustands
Changelog
Version 0.5 – 24.03.2014
Neue Features:
- Akkufunktionen: automatische Erkennung aller bekannten ThinkPad-Modelle (tpacpi-bat v2.1)
- tlp-rdw: Support für neuere ThinkPad Docks
- ThinkPad Edge/L/S: Spezialfall BAT1 = Hauptakku berücksichtigen
- Issue #61: Audio-Stromsparmodus in Abhängigkeit von der Stromquelle
- Issue #62: keinerlei Zugriffe auf PCI(e)-Geräte die in RUNTIME_PM_BLACKLIST stehen oder über RUNTIME_PM_ALL=0 ausgeschlossen wurden; siehe Nvidia Optimus
Fehlerbehebung:
- run-on-ac/bat: Prüfung ob angegebenes Kommando existiert
- Issue #59: SATA ALPM Default-Einstellungen nicht anwenden, wenn die Konfigurationswerte auskommentiert sind
- RESTORE_DEVICE_STATE_ON_STARTUP gefixt (fabio)
- Ultrabay beim Resume nur im Akkubetrieb und nur bei aktiver Einstellung ausschalten (xudabit)
- nmcli vor rfkill zum Schalten der Funkgeräte verwenden; WLAN beim Herunterfahren re-aktivieren, wenn nicht explizit etwas anderes konfiguriert ist (Ubuntu 14.04)
Version 0.4.1 – 02.01.2014 (nicht für Ubuntu / Debian)
Fehlerbehebung:
- Bug #43: tlp-rdw funktioniert nicht mit Network Manager 0.9.9/Fedora 20 (wofritz)
- Bug #44: run-on-ac/bat: verbliebene Abhängigkeit zu pm-utils entfernt
Neue Features:
- tpacpi-bat: Unterstützung für ThinkPad E431
Version 0.4 – 19.09.2013
Neue Features:
- Neues Radeon Dynamic Power Management (DPM) – erfordert Kernel 3.11 oder höher (Pali Rohár)
- RUNTIME_PM_BLACKLIST: PCI(e)-Geräte vom Runtime Power Management ausnehmen (wofritz)
- USB_BLACKLIST_WWAN: WWAN/UMTS vom USB-Auto-Suspend ausnehmen
- Für schnelleres Herunterfahren werden automatisch die AC-Einstellungen gesetzt
- Support für Ubuntu 13.10
Hinweis: die untenstehenden Änderungen aus 0.3.10/11 sind in 0.4 nun für alle Distributionen enthalten.
Ältere Versionen
Vollständiges Changelog siehe hier.