TLP FAQ

This document answers frequently asked questions and provides solutions / workarounds for common problems.

Contents

  1. Installation and Configuration
  2. Audio
  3. Disk Drives
  4. Graphics
  5. Input devices
  6. Powertop
  7. Processor Frequency Scaling
  8. Radio Devices (Wifi, Bluetooth, WWAN)
  9. System Startup / Suspend
  10. ThinkPad Battery
  11. USB
  12. Warnings
  13. Features excluded from TLP intentionally
  14. Links

Installation and Configuration

How do I install TLP on a development release of my distro?

TLP packages for new distro versions appear in due time for the release. If you want to use TLP with alpha or beta releases, download the packages for the predecessor and install them manually with the package manager.

Does TLP conflict with other power management tools like laptop-mode-tools, Jupiter, etc.?

Yes. There can only be one, so don't use two tools for the same purpose simultaneously.

Hint: Powertop isn't a power management tool, so the former doesn't apply to it, refer to the powertop section.

Does TLP run on my laptop (not a ThinkPad)?

TLP runs on every laptop brand. A few features are available on IBM/Lenovo ThinkPads only.

Should i install TLP inside a virtual machine

No. It is not effective to run a power management tool inside a virtual machine (guest). Install TLP in the host operating system instead.

How can I change TLP's settings?

See TLP Configuration.

Does updating TLP overwrite my settings?

No. Package managers take care not to replace a user edited configuration file without explicit confirmation and create a backup copy too.

Do i need to edit my settings after updating TLP?

Not necessarily. TLP is always backwards compatible to existing configuration files. New features get reasonable default settings when not declared in the configuration file.

However package installation does not merge a new feature's settings. So if you want to change the default, you need to:

Why do my TLP settings not apply correctly in Kubuntu (KDE)?

Symptom: on battery the AC settings are effective and vice versa.

Cause: power profile settings have been changed in "System Settings → Power Management → Edit Profile".

Solution: prerequisite for TLP is the correct setting of "Enable system power saving" in the "CPU and System" tab:

Apply accordingly to user generated profiles.

I do not use Network Manager, how do i install tlp without tlp-rdw in Ubuntu/Debian?

sudo apt-get install --no-install-recommends tlp

Does TLP work with other Linux distros?

Possibly. There is no support however.

You may try to install the source tarball from GitHub:

# Unpack
tar xfvz TLP-V.v.tar.gz
cd TLP-V.v

# Install (as root)
make install

# Enable the services, e.g. (as root)
systemctl enable tlp.service
systemctl enable tlp-sleep.service

Hint: check Makefile options to customize 'make install' to your distribution's requirements.

Audio

When encountering problems with the sound output on battery, for example clicking noises, try to disable audio power save completely:

SOUND_POWER_SAVE_ON_AC=0
SOUND_POWER_SAVE_ON_BAT=0

See TLP Configuration.

Disk Drives

Why is my hard disk drive parking the read-write heads so frequently (clicking noises)?

The APM setting for battery mode

DISK_APM_LEVEL_ON_BAT=128

corresponds to the Ubuntu default and should cause no problems. Unfortunately drive manufacturers interpret the APM levels quite spaciously to save power.

Solution: try values > 128. See TLP Configuration.

Why doesn't my hard disk drive spin down?

Stopping the system disk for extended periods of time is unlikely to work, because applications and system daemons wake up the disk frequently. There is no real solution for this other than changing many applications and daemons.

How can I stop my 2nd hard disk drive?

To spin down after 1 minute (= 12 · 5 seconds) idle time use:

DISK_SPINDOWN_TIMEOUT_ON_AC="0 12"
DISK_SPINDOWN_TIMEOUT_ON_BAT="0 12"

See TLP Configuration.

Why does my hard disk drive always spin up when switching from AC to battery power (and vice versa)?

TLP applies configured APM levels and spin down timeouts upon every change of power source and upon suspend/resume. Writing the settings inevitably spins up the disk. To prevent this behaviour either disable the settings completely by commenting all of them (with a leading '#') or use the special value "keep" for the specific disk.

See TLP Configuration.

Why is my Crucial M4 SSD so slow on battery?

The Crucial M4 reduces performance according to the APM level. You may disable APM with

DISK_APM_LEVEL_ON_AC="255 255"
DISK_APM_LEVEL_ON_BAT="255 255"

System is excessively slow on battery

Affected hardware: ThinkPad T60 and T420 users reported this.

Solution:

SATA_LINKPWR_ON_BAT=medium_power

Drive Slot / Ultrabay: why is the optical drive not powered off on battery?

Possible causes are:

ThinkPad without Ultrabay

SL/Edge models for instance.

Incompatible Laptop

At the time of writing this functionality is tested with ThinkPads only.

Graphics

Radeon

Why does my display flicker upon changing the power source?

This is caused by the radeon driver's power management. To disable the setting either use

RADEON_POWER_PROFILE_ON_AC=default
RADEON_POWER_PROFILE_ON_BAT=default

or

RADEON_DPM_STATE_ON_AC=performance
RADEON_DPM_STATE_ON_BAT=performance

depending on your card/kernel. Refer to TLP Configuration for details.

Nvidia Optimus

Why does my laptop consume so much battery power?

Laptops with Optimus hybrid graphics contain two graphics units: one from Intel on the processor die ("integrated", iGPU) and one from Nvidia ("discrete", eGPU). Linux uses the Intel unit by default, but at the same time the unused Nvidia unit is enabled and uses a lot of battery power because no driver is loaded.

TLP can't do anything about this – Possible solutions are:

I use PRIME to disable the eGPU, why is it always re-enabled after boot?

Exclude the eGPU from runtime power management, either by blacklisting the driver(s)

RUNTIME_PM_DRIVER_BLACKLIST="nouveau nvidia"

or the device

RUNTIME_PM_BLACKLIST="01:00.0"

Hint: to check whether "01:00.0" matches your Nvidia eGPU, use

lspci -v | perl -ne '/VGA/../^$/ and /VGA|Kern/ and print'

Refer to TLP Configuration too.

Input Devices

Why does TLP cause my USB keyboard / mouse to stop working?

Most likely it doesn't. All USB input devices (usbhid) are excluded from autosuspend by default.

Bluetooth mouse stops or disconnects

Cause: most internal laptop bluetooth devices and all external bluetooth dongles are USB devices. Some do not implement autosuspend mode properly, giving trouble to connected devices.

Solution: identify the USB bluetooth device with

tlp-stat -u | grep btusb

Add it to USB_BLACKLIST and apply the new setting with

sudo tlp usb

Powertop

Disclaimer: TLP was not designed to make powertop happy.

Why use TLP? I applied power save settings with powertop already

Powertop isn't a power management tool but merely an analysis tool. Any recommended settings you apply with powertop get lost upon the next system reboot. To make powertop's settings permanent you need a tool like TLP.

TLP's default configuration contains all appropriate powertop recommendations and implements them automatically.

Why does Powertop suggest more power saving settings with TLP already running?

Important: TLP applies maximum power savings on battery power only, so unplug AC power before checking with powertop.

Not all suggestions from Powertop make sense or are safe to implement:

Message "VM writeback timeout"

Powertop insists on a value of 1500 centisecs, whereas TLP's defaults are 1500 on ac and 6000 on battery power. If you incline towards powertop's opinion then change the setting to:

MAX_LOST_WORK_SECS_ON_BAT=15

Message "SATA ALPM link power"

Some laptops refuse ALPM for particular SATA links. It is impossible to change from max_performance to min_power. One cause may be an open link to the docking stations drive bay (when not docked).

Workaround for X-Series ThinkPads: enter BIOS setup. Go to "Security → IO Port Access" and change Ultrabay access to "disabled". Saves approx. 0.4 W.

Message "Wifi powersave"

For some wifi cards – for instance the Intel 3945abg – the Linux kernel does not support wifi power save.

Message "USB autosuspend"

TLP intentionally exempts input (usbhid) and WWAN (3G/UMTS, 4G/LTE) devices from autosuspend.

Input devices may be whitelisted (USB_WHITELIST, refer to USB); to enable autosuspend for WWAN devices use:

USB_BLACKLIST_WWAN=0

Message "HD audio powersave"

Probably incorrect suggestion by powertop.

Powertop shows a very high power consumption for device xy – what can i do?

It is impossible to measure the power consumption of individual laptop components. Therefore the readings in "Device stats" column "Power est." are rough estimations that are obviously wrong and should be ignored.

Processor Frequency Scaling

Settings are not or incompletely applied

When tlp-stat -p shows values that do not reflect configuration, there are several possible causes:

Conflict with your distro's settings

Solution: disable them as follows:

Ubuntu
sudo update-rc.d -f ondemand remove

Revert change with:

sudo update-rc.d ondemand defaults
Debian
update-rc.d -f cpufrequtils remove # as root

Revert change with:

update-rc.d cpufrequtils defaults # as root

Invalid frequency settings

Solution: tlp-stat -p shows the correct values for your cpu. Example:

/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies = 2400000 1600000 800000 [kHz]

No ondemand governor with intel_pstate

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = powersave

Since kernel 3.9 the new scaling driver intel_pstate is available and enabled by default on Intel Sandy Bridge (or newer) hardware. intel_pstate supports the governors powersave (recommended default) and performance only, ondemand is gone.

tlp-stat -p shows "x86_energy_perf_policy: program [for your kernel] not installed."

Depending on the distro your mileage may vary:

Radio Devices (Bluetooth, Wifi, WWAN)

Slow or unstable Wifi on battery power

Cause: kernel driver does not implement powersave properly.

Solution: disable powersave on battery

WIFI_PWR_ON_BAT=off

XFCE desktop / Xubuntu: Bluetooth is not disabled upon system startup

Cause: the XFCE Desktop uses the Blueman bluetooth applet, which enables bluetooth when started.

Solution: you have to remove the bluetooth applet from autostart or uninstall the package blueman. Alternatively you may patch the blueman-applet (see LP #908375).

Radio states are not restored according to RESTORE_DEVICE_STATE_ON_STARTUP=1

Cause: conflict with other settings, i.e. DEVICES_TO_DISABLE/ENABLE_ON_... .

Solution: don't use RESTORE_DEVICE_STATE_ON_STARTUP=1 and DEVICES_TO_DISABLE/ENABLE_ON_... simultaneously.

Cause: systemd 209 (or higher) implements its own radio state restore scheme (systemd-rfkill.service, see TLP Configuration).

Solution: use either RESTORE_DEVICE_STATE_ON_STARTUP=1 or systemd's approach but not both.

Why is USB autosuspend not enabled for my integrated WWAN (3G/UMTS, 4G/LTE) card?

Cause: some cards do not work reliable with USB autosuspend mode enabled, so by default TLP doesn't apply USB autosuspend for most integrated WWAN cards.

Solution: force USB autosupend for WWAN with

USB_BLACKLIST_WWAN=0

Refer to TLP Configuration.

System Startup / Suspend

systemd: must i enable TLP's service units?

Yes. The service units are critical for TLP's operation:

Shutdown reboots instead of poweroff

Affected hardware: HP laptops (based on user feedback)

Solution: deactivate Wake-on-LAN in the BIOS.

Impossible to suspend on battery

Affected hardware: ThinkPad T400 users with Kernel 3.0 reported this issue. It is caused by powering off the optical drive on battery.

Solution: disable the setting

BAY_POWEROFF_ON_BAT=0

Ethernet not working after resume

Affected hardware: a Dell XPS user with Kernel 4.4 reported this issue.

Solution: enable Wake-on-LAN

WOL_DISABLE=N

ThinkPad Battery

What are the "ThinkPad battery functions"?

ThinkPad battery functions means battery charge thresholds and the possibility to discharge or recalibrate the battery when AC is connected.

Disclaimer:

How to choose good battery charge thresholds?

Factory settings for ThinkPad battery thresholds are as follows: when plugged in the battery starts charging at 96%, and stops at 100%. These settings are optimized for maximum runtime, but having a battery hold a lot of power will decrease its capacity over the years. To alleviate this problem, the start/stop charge thresholds can be adjusted – at the cost of a more or less reduced battery runtime.

It all depends on how you use your laptop, or more precisely, on the minimal runtime you're ready to accept when you're on the road. In the end, it all comes down to a runtime vs. lifespan trade-off.

If the laptop is plugged most of the time and rarely unplugged, maximizing battery lifetime at the cost of a greatly reduced runtime may be acceptable, with values like starting charge at 40% and stopping at 50%.

On the contrary, if you use it unplugged most of the time, starting charge at 85% and stopping at 90% would allow for a much longer runtime and still give a lifespan benefit over the factory settings.

(Source: Lenovo Forums)

Default TLP settings (only if you uncomment the relevant lines) are slightly more protective regarding lifespan, with 75%/80% start/stop charge thresholds.

Please consider that the start threshold is the critical constraint for runtime, because it defines the lowest charge level that can occur while plugged.

Also, don't forget that TLP provides a command (tlp fullcharge) to fully charge the battery, when you need to temporarily maximize runtime (for example in case of a trip).

Which kernel module do i need for my hardware, tp-smapi or acpi-call?

Check the bottom of tlp-stat's output, section "Suggestions", for the following lines

Install tp-smapi kernel modules for ThinkPad advanced battery functions
Install acpi_call kernel module for ThinkPad advanced battery functions

and install the required module package as explained in Installation for your distro.

Most ThinkPad models need only one of the above kernel modules. You may check the output of tlp-stat -b for lines like

tp-smapi = inactive (unsupported hardware)
tpacpi-bat = inactive (unsupported hardware)

and remove the unnecessary module package (tpacpi-bat means acpi-call). However, it doesn't hurt to keep both.

Why is my battery charged up to 100% – ignoring the charge thresholds?

Possible causes are:

Laptop is not a ThinkPad

Battery charge thresholds and recalibration work with ThinkPads only (see above).

Kernel module is not installed

Symptom: tlp-stat -b shows

tp-smapi = inactive (kernel module 'tp_smapi' not installed)

or

tpacpi-bat = inactive (kernel module 'acpi_call' not installed)

Solution: see Which kernel module?

Installation of package tp-smapi-dkms fails

Symptom (Ubuntu): package install shows

Setting up tp-smapi-dkms (0.41-1) ...
Creating symlink /var/lib/dkms/tp-smapi/0.41/source ->
/usr/src/tp-smapi-0.41
DKMS: add completed.
Error! Your kernel headers for kernel 3.X.0-YY-generic cannot be found.
Please install the linux-headers-3.X.0-YY-generic package,
or use the --kernelsourcedir option to tell DKMS where it's located

Solution: install package linux-generic-headers.

Symptom (Ubuntu, mainline kernel 4.7): package install shows

Setting up tp-smapi-dkms (0.41-1) ...
make KERNELRELEASE=4.7.0-040700-generic -C /lib/modules/4.7.0-040700-generic/build M=/var/lib/dkms/tp-smapi/0.41/build....(bad exit status: 2)
ERROR (dkms apport): kernel package linux-headers-4.7.0-040700-generic is not supported
Error! Bad return status for module build on kernel: 4.7.0-040700-generic (x86_64)

Solution: download version 0.42-1 from Yakkety and install it manually.

Kernel module tp-smapi is not loaded

Symptom: tlp-stat -b shows

tp-smapi = inactive (kernel module 'tp_smapi' load error)

Solution: try to load manually with

sudo modprobe -v tp_smapi

and check tp-smapi Troubleshooting for a solution matching the error message or use adequate forums to resolve your issue with tp-smapi.

Note: you must disable Secure Boot otherwise tp-smapi will refuse to load.

tp-smapi does not support newer models, check Which kernel module?

Kernel module acpi-call is not loaded

Symptom: tlp-stat -b shows

tpacpi-bat = inactive (kernel module 'acpi_call' load error)

Solution: try to load manually with

sudo modprobe -v acpi_call

and use adequate forums to resolve your issue with acpi-call.

Note: you must disable Secure Boot otherwise acpi-call will refuse to load.

ThinkPad T420(s)/T520/W520/X220

tp-smapi doesn't support start threshold and recalibration on Sandy Bridge generation ThinkPads. Symptoms are:

tlp-stat -b shows

/sys/devices/platform/smapi/BAT0/start_charge_thresh = (not available)

tlp setcharge or fullcharge shows the message

start => Warning: cannot set threshold.

tlp discharge or recalibrate show the message

Error: discharge function not available for this ThinkPad model.

Solution: TLP automatically uses tpacpi-bat when the kernel module acpi-call is available, see Which kernel module?

ThinkPad T430(s)/T530/W530/X230 (and all newer models)

Solution: TLP automatically uses tpacpi-bat when the kernel module acpi-call is available, see Which kernel module?

ThinkPad 13, L420/520, SL300/400/500, X121e

These models are neither supported by tp-smapi nor by tpacpi-bat. Please refrain from opening issues for this.

Battery has been removed

By removing (and re-inserting) the battery the charge thresholds are reset to factory settings (96 / 100%) for some models. To restore TLP's settings the following two steps are needed:

or use

sudo tlp setcharge

See Change Battery Charge Thresholds.

Charge thresholds shown by tlp-stat -b do not correspond to the configured ones

Possible causes are:

Configuration was not activated

After changes to the configuration it is necessary to reboot. Alternatively use

sudo tlp start

or

sudo tlp setcharge

to activate the thresholds.

ThinkPad Edge (E/S) series, L series, SL410/510, Yoga series

On these models the threshold values shown by tlp-stat -b do not correspond to the written values. For example the setting START_CHARGE_THRESH_BATx=75 / STOP_CHARGE_THRESH_BATx=80 shows 75 / 74. The described behavior is caused by the firmware (UEFI/BIOS), not by TLP. Nonetheless the charge thresholds work as configured.

Lower threshold does not apply after change

Affected models: X240, Yoga 12 (based on user feedback)

Workaround: activating a new start threshold may require to discharge the battery below the old start threshold after writing the new threshold, e.g. via tlp setcharge or reboot (see Issue #173).

Erratic battery behavior on ThinkPad T420(s)/T520/W520/X220 (and all newer models)

Symptom: some users report severely reduced battery capacity or sudden drops of charge level from around 30 % to zero when employing charge thresholds.

Probable cause: undocumented changes to the threshold logic done by Lenovo.

Solution: remove battery thresholds completely or use either start or stop threshold but not both, then recalibrate battery once.

Note: this is a software only issue, no harm is done to the battery.

Why does the panel applet show the battery state "charging" despite charge thresholds are effective?

All existing panel applets use the standard kernel interface which doesn't give the charge state correctly as soon as charge thresholds intervene. In this situation tlp-stat -b shows "Unknown (threshold effective)" for /sys/class/power_supply/BATx/status. There is no solution at the moment.

In contrast, for ThinkPad models supporting tp-smapi tlp-stat -b shows the correct state below /sys/devices/platform/smapi/BATx/.

Do charge thresholds work even when Linux/TLP is not running?

Yes. The charging process is not controlled by software, but by hardware. TLP just writes the thresholds to the hardware registers (via tp-smapi or tpacpi-bat). Once stored in the hardware the charge thresholds stay effective permanently. See below for removal.

What exactly does the start charge threshold (START_CHARGE_THRESH_BATx) do?

The start charge threshold ensures that the battery is not recharged immediately after every short discharge process. The charging process starts only when the previous discharge was below the value of START_CHARGE_THRESH_BATx.

Do charge thresholds discharge the battery on AC power?

No. Otherwise they would be callled dis-charge thresholds.

Can I prevent discharging the battery by setting the start threshold?

No. Discharging the battery can be prevented only by connecting the power supply or switching off your ThinkPad.

How do I disable the charge thresholds?

Remove the charge thresholds from the configuration by inserting a leading '#'

#START_CHARGE_THRESH_BAT0=75
#STOP_CHARGE_THRESH_BAT0=80

and use

sudo tlp fullcharge

to immediately activate the factory settings 96 / 100%.

My battery does not charge anymore after recalibration, shows X% remaining capacity constantly

Most probable cause: battery is defect – and was it even before the recalibration attempt.

Why does tlp-stat -b display "cycle_count = (not supported)"?

Cycle count is a ThinkPad battery function and available for models supporting tp-smapi only; refer to Which kernel module?

USB

USB device doesn't work

Symptom: some USB devices – scanners for example – do not work reliable when TLP activates USB autosuspend mode.

Solution: lookup the corresponding USB device ID with lsusb, add it to USB_BLACKLIST and reconnect the device.

Hint: TLP automatically excludes all input devices (HID) like keyboards and mice from USB autosuspend. You do not need to enter those in USB_BLACKLIST.

Smartphone doesn't charge when connected

Solution: lookup the smartphone's USB device ID with lsusb, add it to USB_BLACKLIST and reconnect the smartphone.

Warnings

Which kind of warnings does "tlp-stat -w" check for?

Currently the command checks the kernel log for errors possibly caused by the settings for SATA ALPM.

What should i do if warnings are shown?

TLP's default setting on battery

SATA_LINKPWR_ON_BAT=min_power

is optimimized for maximum power saving. Try to use less aggressive values:

SATA_LINKPWR_ON_BAT=medium_power

or

SATA_LINKPWR_ON_BAT=max_performance

or disable the setting completely – see SATA ALPM.

Don't forget to reboot before checking again.

The same applies to SATA_LINKPWR_ON_AC if you changed the default setting.

Note: the difference in power consumption between min_power and max_performance may amount to more than 1 W depending on your hardware.

What to do if the warnings do not disappear after changing the settings?

What is the cause for these errors?

Candidates:

Features excluded from TLP intentionally

Links

TLP

Other