Linux Laptop Battery Optimization Tool TLP 1.2 Released

TLP 1.2 was released today after being in development for more than a year, and it brings support for NVMe, and removable drives like USB and IEEE1394 devices, support for multi queue I/O schedulers (blk-mq), and other significant enhancements.

TLP is a command line advanced Linux power management tool that helps save laptop battery power. It's designed to install and forget about it, TLP taking care of everything automatically. TLP is highly configurable though, so you can tweak it to suit your specific needs, either to manual editing of its configuration file (/etc/default/tlp), or by using TLPUI, a third-party GUI for TLP (can be installed from PPA in Ubuntu or Linux Mint).

The tool detects when your laptop is running on AC or battery, applying various settings depending on this (with settings optimized for battery life when running on battery), like scaling the processor frequency, setting the disk APM and spin down timeout, setting WiFi to power saving mode, enabling or disabling integrated radio devices, and much much more.

You may want to check out the project website a list of features.

New features and enhancements in TLP 1.2:

  • Support for NVMe SSDs, and removable drives, e.g. USB and IEEE1394 devices
  • Support for multi queue I/O schedulers (blk-mq)
  • Manual mode: keep tlp ac/bat power settings (until reboot or until the user runs tlp start). For example, run tlp bat while on AC power to force TLP to use the battery saving settings even though it's running on AC; remove this manual mode by running tlp start or reboot the system.
  • Intel GPU frequency limits: you can now set the Intel GPU minimum/maximum and boost frequency depending on the laptop running on AC or battery
  • tlp-rdw: new command to disable RDW actions temporarily (until reboot)
  • USB_BLACKLIST_WWAN: disable by default
  • USB: Exclude scanners managed by libsane from autosuspend
  • Keep ASPM default to allow laptop to enter in deeper sleep states when on AC with the default TLP configuration
  • ThinkPad Battery
    • New native kernel API for battery features natacpi; used by default for kernels >= 4.17
    • Support ThinkPad 25, *80 (Coffee Lake) and all newer models
    • tlp-stat: improved recommendations for external kernel modules

Also, the tlp stat command is no longer supported. Use tlp-stat instead (with root privileges).

A list of all the changes in TLP 1.2 is available on GitHub.

Installing and using TLP

The TLP code can be downloaded from its GitHub project page.

TLP is available in many Linux distributions, including Debian, Ubuntu, Linux Mint, Arch Linux, Fedora openSUSE, and more, and can be installed from the repositories, as explained on its website.

The new TLP 1.2 version is not yet available for most Linux distributions though. For now it's available for Arch Linux, and in a PPA maintained by the TLP developer for Ubuntu and Ubuntu-based Linux distributions like Linux Mint or elementary OS.

To use this PPA to install it in Ubuntu, Linux Mint, etc., use:

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

For ThinkPads you need to install a couple of additional packages:

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

TLP starts automatically on boot. The first time you install it, you can avoid rebooting the system by starting TLP manually (this command can also be used to reload the TLP configuration after it has changed):

sudo tlp start