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

Voraussetzungen

Vor der Installation von TLP sind andere Power Management Tools zu entfernen:

  • laptop-mode-tools
  • Jupiter
  • Selbst erstellte Stromspar-Einstellungen oder -Skripte z.B. in /etc/rc.local

Andernfalls sind schwer vorhersagbare Resultate zu erwarten.

Ubuntu 12.04, 13.10, 14.04

sowie Linux Mint 13,l 15, 16, 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 6.0 und höher

sowie Linux Mint Debian Edition (LMDE)

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 TLP-Pakete verfügbar.

Fedora 19 und höher

Zur Installation von TLP für Fedora müssen die folgenden Schritte in einer Root-Shell ausgeführt werden.

Hinzufügen der Repositories TLP und RPM Fusion (für die akmods):

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:

  • tlp (TLP Repo)
  • tlp-rdw (TLP Repo) - optional, Radio Device Wizard, erfordert NetworkManager
  • 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

Die Pakete installiert man über die Paketverwaltung oder im Terminal:

yum install tlp tlp-rdw 

Auf ThinkPads installiert man zusätzlich:

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 am Netzteil entladen

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

nur für ThinkPads

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.

sudo tlp recalibrate [ BAT0 | BAT1 ]

Das Kommando faßt die Funktionen fullcharge und discharge zusammen. Zunächst werden die Ladeschwellen auf Werkseinstellungen 96/100 % gesetzt, dann der Akku vollständig entladen.

Hinweise: es gelten dieselben Hinweise wie beim vorigen Kommando.

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). Bitte bei Anfragen dort stets die vollständige Ausgabe von (möglichst im Akkubetrieb)

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="bat lock nm path pm rf run sysfs udev usb"

Die gesammelten Informationen können jederzeit mit

tlp-stat -T

oder

grep "tlp" /var/log/debug

ausgelesen werden.

Voraussetzungen

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 Arch Linux: es muss das Paket rsyslog installiert und der Dienst aktiviert werden. Eine Anpassung der Konfiguration ist nicht nötig.

Links

TLP

Hintergrund

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.

Version 0.3.11 – 12.09.2013 (nur für Arch Linux)

Fehlerbehebung:

  • Issue #42:
    • Abhängigkeit zu on_ac_power (Teil von pm-utils) entfernt
    • udev-Regel zur Erkennung des Wechsels der Stromquelle Netzteil <-> Akku korrigiert
  • Pull request #40: systemd: tlp.service nach local-fs.target statt nach graphical.target starten

Version 0.3.10.1 – 18.08.2013 (nur für Arch Linux)

Änderungen:

  • Architektur
    • Issue #36: Wechsel der Stromquelle per udev erkennen statt Aufruf über pm-powersave
    • Suspend/Resume in systemd-Umgebung ohne pm-utils verarbeiten
  • Issue #31: intel_pstate-Treiber erkennen und für Turbo Mode verwenden
  • Wake-On-LAN (WOL) für alle Ethernet-Geräte, nicht nur eth0 (blafoo)
  • tpacpi-bat: Unterstützung für ThinkPad T430u, Edge E335/E530

Fehlerbehebung:

  • Issue #28: dirty_(background_)ratio nicht mehr anpassen, d.h. Kernel Defaults sind wirksam

Version 0.3.9 – 02.05.2013

Änderungen:

  • tpacpi-bat: Unterstützung für ThinkPad S430, L530
  • tlp-stat: /sys/class/power_supply/BATx/cycle_count = 0 als "(unsupported)" anzeigen
  • Ubuntu 10.04 und 11.10 werden wegen ihres Wartungsendes nicht mehr unterstützt, Debian 6.0 hingegen weiterhin

Fehlerbehebung:

  • Issue #14: tlp recalibrate schlägt fehl, wenn /bin/sh -> bash (slyon)
  • Bug #42: X121e Akkufunktionen fehlerhaft (Jlp)
  • Sinnvollere Werte für dirty_ratio/dirty_background_ratio verwenden (supernova)

Ältere Versionen

Vollständiges Changelog siehe hier.