Radio Devices: Bluetooth, Wi-Fi, WWAN
Slow or unstable Wi-Fi on battery power
Cause: kernel driver does not implement power saving properly.
Solution: disable power saving on battery in configuration
WIFI_PWR_ON_BAT=off
Apply with tlp start.
Wi-Fi power saving is activated despite being disabled in TLP’s configuration
Cause: conflict with NetworkManager.
Solution: remove the file /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf.
Bluetooth devices hang, disconnect or do not pair
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 or preventing discovery or pairing.
Solution: configure
USB_EXCLUDE_BTUSB=1
Version 1.3: use USB_BLACKLIST_BTUSB instead
Apply with tlp usb.
Bluetooth stops working after change to battery power
USB_EXCLUDE_BTUSB=1 does not disable autosuspend
Bluetooth is not disabled upon system startup
Probable cause: your desktop environment’s bluetooth applet – or some other installed software – re-enables the bluetooth device after TLP disabled it.
Solution: disable the relevant applet’s setting or disable/remove the causing applet. For XFCE/blueman see Disable Bluetooth Auto Power-on in Blueman.
Radio states are not as expected after boot or a configured event
Cause 1: conflict with other settings, for instance DEVICES_TO_DISABLE_ON_STARTUP ff.
Solution: don’t use RESTORE_DEVICE_STATE_ON_STARTUP=1 and DEVICES_TO_DISABLE_ON_STARTUP ff. simultaneously.
Cause 2: other conflicting settings from Radio Device Switching and/or Radio Device Wizard.
Solution: check if you configured contradictory instructions, for example
DEVICES_TO_DISABLE_ON_BAT="wifi"
DEVICES_TO_ENABLE_ON_LAN_DISCONNECT="wifi"
may not turn on Wi-Fi when undocking and changing to battery power.
Cause 3: systemd implements its radio state restore scheme.
Symptoms: tlp-stat -s shows
Warning: systemd-rfkill.service is not masked, radio device switching may not work as configured.
>>> Invoke 'systemctl enable systemd-rfkill.service to correct this!
and/or
Warning: systemd-rfkill.socket is not masked, radio device switching may not work as configured.
>>> Invoke 'systemctl enable systemd-rfkill.socket to correct this!
systemd-rfkill.service/.socket are part of systemd. Their purpose is to restore the state of the radio devices from the last shutdown at system startup. In case you enabled settings from Radio Device Switching or Radio Device Wizard this may lead to a conflict that produces unpredictable results.
Solution: use either RESTORE_DEVICE_STATE_ON_STARTUP=1 and mask systemd-rfkill.service and systemd-rfkill.socket or use systemd’s approach but not both.