TLP - Linux Stromsparen

Aus ThinkPad-Wiki

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-dkms (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-dkms

Debian 7.0 und 8.0

sowie Linux Mint Debian Edition (LMDE)

Die folgenden Schritte sind - wie bei Debian üblich - in einer Root-Shell auszuführen.

Für das TLP-Repository ist die folgende Zeile in /etc/apt/sources.list einzutragen:

deb http://repo.linrunner.de/debian DIST main

Wobei für DIST wheezy, jessie oder sid (bzw. stable, testing oder unstable) eingesetzt werden muss.

Anschließend ist der Public-Key des Repositories zu hinterlegen:

apt-key adv --keyserver pool.sks-keyservers.net --recv-keys CD4E8809

Zuletzt führt man ein Update der Paketquellen durch:

apt-get update

Folgende Pakete sind zu installieren:

  • tlp (Repo) – Stromsparfunktionen von TLP
  • tlp-rdw (Repo) – 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-dkms (Repo bzw. main) – 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-dkms

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 openSUSE sind derzeit keine offiziellen TLP-Pakete verfügbar. Inoffizielle Builds gibt es hier: tlp, tlp-rdw.

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

Warnungen anzeigen:

tlp-stat -w
tlp-stat --warn

Näheres erklärt die TLP FAQ im Abschnitt "Warnungen".

Traceausgabe 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 man 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

Hintergrund

Changelog

Version 0.6 – 07.10.2014

Neue Features:

  • RUNTIME_PM_ALL per Default aktiv (bestehende Konfigurationen werden nicht automatisch umgestellt und sind ggf. von Hand anzupassen)
  • DISK_IDLE_SECS_ON, MAX_LOST_WORK_SECS_ON, SCHED_POWERSAVE_ON, NMI_WATCHDOG, SATA_LINKPWR_ON, PCIE_ASPM_ON, RADEON_DPM_STATE_ON, RADEON_POWER_PROFILE_ON, WIFI_PWR_ON, SOUND_POWER_SAVE_ON, RUNTIME_PM_ON: lassen sich nun durch Auskommentieren komplett deaktivieren
  • DISK_APM_LEVEL_ON, DISK_SPINDOWN_TIMEOUT_ON, DISK_IOSCHED: Angabe von "_" oder "keep" überspringt die Einstellung für ein bestimmtes Laufwerk
  • tlp-stat
    • Geänderte Sysfs-Pfade für i915.enable_rc6/fbc seit Kernel 3.15 berücksichtigt (M@C)
    • Geänderte Sysfs-Pfade für hwmon coretemp/sensors seit Kernel 3.15/3.16 berücksichtigt
    • Drehzahl für alle gefundenen Lüfter anzeigen, nicht nur den ersten
    • -w|--warn: Syslog-Warnungen für SATA-Fehler anzeigen die (möglicherweise) durch SATA_LINKPWR_ON_BAT/AC=min_power/medium power verursacht werden
    • Trace-Ausgabe aus systemd journal beziehen wenn verfügbar
  • DISABLE_TPACPIBAT aus Konfiguration entfernt (nicht mehr benötigter Workaround)
  • DEVICES_TO_ENABLE_ON_RADIOSW aus Konfiguration entfernt (veraltet: funktioniert nur noch mit Ubuntu 12.04 / Kernel 3.2)

Fehlerbehebung:

  • Issue #86: tlp-stat: auf Ideapad kein tp-smapi vorschlagen obwohl thinkpad_acpi geladen ist (sayantandas)
  • tlp-stat: auf Lenovo-Serien (Nicht-ThinkPads) kein /proc/acpi/ibm/fan anzeigen (Qasim)

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.