TLP 1.3 Linux Laptop Battery Extender Released

TLP Linux battery optimization tool 1.3

After being in development for 8 months, TLP 1.3 was released with a new configuration scheme, tlp-stat improvements, and a workaround for laptops reporting incorrect AC or battery status, among others.

TLP is an advanced power management tool for Linux. The tool comes with a default configuration optimized for battery saving, so it's very easy to use - just install TLP and you can forget about it. TLP is highly customizable though, so in case you want to change some of its settings you can do that too (this is done by editing the TLP configuration file).

TLP auto-detects if your laptop runs on battery or AC and applies settings (changes the CPU frequency scaling and governor, sets the WiFi power saving mode, enables or disables integrated radio devices, sets the disk APM and disk spin down timeout, etc.) that optimize the laptop for performance (when on AC) or battery saving (when on battery). A list of features can be found on its website.

It's also worth nothing that TLP works as a system service and doesn't have a GUI by default. There is a third-party GUI that makes it easy to change the TLP configuration though, called TLPUI. [[Edit Feb 18, 2020]] TLPUI has been updated to support the new TLP 1.3 configuration scheme.

The latest TLP 1.3 comes with a new configuration scheme in which the config files are parsed instead of being sourced (no more shell expansion). /etc/default/tlp is replaced by /etc/tlp.conf, with the settings being read in the following order:

  1. Intrinsic defaults
  2. /etc/tlp.d/*.conf - drop-in customization snippets
  3. /etc/tlp.conf - user configuration

The last occurrence has precedence in case of identical parameters.

TLP 1.3 also comes with many tlp-stat improvements. tlp-stat is a command line tool part of TLP that shows the current configuration, system information, active power saving settings and battery data. tlp-stat changes in this TLP release include:

  • tlp-stat:
    • Configuration: show file where the parameter comes from
    • System Info:
      • Show SELinux status
      • Show RDW as 'disabled' when TLP is disabled as a whole
      • Indicate persistent mode
    • Intel CPU: don't show EPB values when HWP.EPP is active (see above)
    • PCIe ASPM: show available policies
  • tlp-stat -b (TLP battery data):
    • Charge thresholds: better checks for command line and configuration; clearer error messages
    • tlp discharge: error message "check your hardware" when battery wasn't completely discharged
    • Distinguish between "no kernel support" for natacpi (Linux < 4.17) and "laptop not supported" (Linux >= 4.17)
    • Supplement battery status "Unknown" with "threshold may prevent charging" when thresholds are available only

As a reminder, the old tlp stat command has been deprecated in TLP 1.2, so starting with that version you need to use tlp-stat (with root privileges) instead.

Other new features and enhancements in TLP 1.3:

  • Added workaround (enable it with TLP_PS_IGNORE=BAT or TLP_PS_IGNORE=AC) for laptops reporting incorrect AC or battery status
  • Added powersupersave PCIe ASPM method
  • Replace tlp-sleep.service with /lib/systemd/system-sleep/tlp
    • backward compatible merge of settings for Intel energy vs. performance policies EPB (ENERGY_PERF_POLICY_ON_AC/BAT) and HWP.EPP (CPU_HWP_ON_AC/BAT)
    • when HWP.EPP is available, EPB is not set
    • validate parameters
    • eliminate external tool x86_energy_perf_policy for kernel >= 5.2
  • Fixed:
  • ThinkPad X240 discharge BAT1 malfunction when BAT0 is not installed
  • NVMe detection on Linux 4.15
  • tlp-stat: ignore HID device batteries to prevent errors in tlp-stat output in battery section

Want to squeeze more juice out of your laptop's battery? Also see auto-cpufreq, a new automatic CPU speed and power optimizer for Linux which aims to "improve battery life without making any compromises". This tool doesn't interfere with TLP, so you can have both installed in the same time.

Download TLP

There are TLP packages in the repositories of Arch Linux, Debian, Fedora, Gentoo, openSUSE and Linux distributions based on these, like Ubuntu-based Linux Mint, Pop!_OS or Elementary OS, etc. See the TLP installation instructions linked above and scroll down to the section dedicated to the Linux distribution you're using, then follow the instructions from there.

It's worth noting that TLP 1.3 was only recently released, so it didn't yet make it into the repositories in all the cases. So you may find the older TLP 1.2 in the repositories. If you don't want to wait for the latest release to hit the repositories of the Linux distribution you're using, you can look for a third-party TLP repository, or install TLP from source.

Ubuntu / Ubuntu-based (Linux Mint, Elementary OS, Pop!_OS, Zorin OS, etc.) Linux distributions users can use the official TLP PPA repository to install the latest version of TLP:

sudo add-apt-repository ppa:linrunner/tlp
sudo apt update
sudo apt install tlp tlp-rdw

For ThinkPads also install:

sudo apt install tp-smapi-dkms acpi-call-dkms

TLP starts automatically on boot. To avoid a system reboot you can start it right after installing it using:

sudo tlp start