### Install TLP from Source Source: https://linrunner.de/tlp/developers/source.html Install TLP from source after cloning the repository and installing dependencies. This command installs the main program and man pages. ```bash sudo make install install-man ``` -------------------------------- ### Install TLP and Man Pages Source: https://linrunner.de/tlp/installation/others.html Installs TLP and its man pages. This command requires root privileges. ```bash make install install-man ``` -------------------------------- ### Enable and Start TLP Service Source: https://linrunner.de/tlp/installation/arch.html Enables and starts the main TLP service unit for immediate operation. ```bash sudo systemctl enable --now tlp.service ``` -------------------------------- ### Install TLP (Version 1.8 and older) Source: https://linrunner.de/tlp/installation/debian.html Install TLP and the Radio Device Wizard for older Debian systems. ```shell sudo apt install tlp tlp-rdw ``` -------------------------------- ### Install TLP and specific dependencies on Ubuntu Source: https://linrunner.de/tlp/faq/installation.html This command installs TLP along with specified dependencies like ethtool and smartmontools, while preventing the installation of postfix as a recommended package. ```bash sudo apt install --no-install-recommends tlp tlp-rdw ethtool smartmontools ``` -------------------------------- ### Install TLP and optional packages on openSUSE (v1.8-) Source: https://linrunner.de/tlp/installation/opensuse.html Installs the TLP package along with the optional tlp-rdw package for radio device switching. Use this command for TLP version 1.8 and older. ```bash sudo zypper install tlp tlp-rdw ``` -------------------------------- ### Install TLP Packages (v1.9+) Source: https://linrunner.de/tlp/installation/arch.html Installs TLP and optional components for newer versions. Use with your preferred package manager or pacman. ```bash sudo pacman -S tlp tlp-pd tlp-rdw ``` -------------------------------- ### Start TLP Service Source: https://linrunner.de/tlp/faq/operation.html Use 'tlp start' to apply power saving settings. This command is intended for applying power saving and should be used instead of systemctl start/restart for applying power saving. ```bash tlp start ``` -------------------------------- ### Install tp_smapi Package Source: https://linrunner.de/tlp/installation/arch.html Installs the tp_smapi external kernel module for ThinkPad battery care features on older models. Use pacman. ```bash pacman -S tp_smapi ``` -------------------------------- ### Install TLP Packages (v1.8-) Source: https://linrunner.de/tlp/installation/arch.html Installs TLP and the Radio Device Wizard for older versions. Use with your preferred package manager or pacman. ```bash sudo pacman -S tlp tlp-rdw ``` -------------------------------- ### Install Battery Care Modules from Testing Repo Source: https://linrunner.de/tlp/installation/fedora.html Installs the 'kernel-devel' and 'akmod-tp_smapi' packages from the tlp-updates-testing repository. This is useful for obtaining newer versions before they are released to the stable repository. ```bash sudo dnf --enablerepo=tlp-updates-testing install kernel-devel akmod-tp_smapi ``` -------------------------------- ### Install TLP on Fedora 43 Source: https://linrunner.de/tlp/installation/fedora.html Installs TLP and the Radio Device Wizard on Fedora 43. Ensure conflicting tools are removed prior to this step. ```bash sudo dnf install tlp tlp-rdw ``` -------------------------------- ### Install TLP and optional packages on openSUSE (v1.9+) Source: https://linrunner.de/tlp/installation/opensuse.html Installs the TLP package along with optional tlp-pd and tlp-rdw packages for enhanced power management and radio device switching. Use this command for TLP version 1.9 and newer. ```bash sudo zypper install tlp tlp-pd tlp-rdw ``` -------------------------------- ### Enable TLP-PD Service (v1.9+) Source: https://linrunner.de/tlp/installation/arch.html Enables and starts the tlp-pd service for profile switching, required for version 1.9 and newer. ```bash sudo systemctl enable --now tlp-pd.service ``` -------------------------------- ### Install TLP (Version 1.9+) Source: https://linrunner.de/tlp/installation/debian.html Install TLP and optional components for power saving and profile selection on newer Debian systems. ```shell sudo apt install tlp tlp-pd tlp-rdw ``` -------------------------------- ### System76: tlp-stat -b Output Example Source: https://linrunner.de/tlp/settings/bc-vendors.html Sample output from 'tlp-stat -b' showing active charge threshold settings for System76 laptops. ```text +++ Battery Care Plugin: system76 Supported features: charge thresholds Driver usage: * natacpi (system76_acpi) = active (charge thresholds) Parameter value ranges: * START_CHARGE_THRESH_BAT0: 0(off)..99 * STOP_CHARGE_THRESH_BAT0: 1..100(default) ... /sys/class/power_supply/BAT0/charge_control_start_threshold = 75 [%] /sys/class/power_supply/BAT0/charge_control_end_threshold = 80 [%] ``` -------------------------------- ### Tuxedo Laptops: Configure Charge Thresholds Source: https://linrunner.de/tlp/settings/bc-vendors.html Set the start and stop charge thresholds for battery BAT0 on Tuxedo laptops. Ensure the 'tuxedo-drivers' package is installed and TLP version 1.9 or newer is used. ```bash START_CHARGE_THRESH_BAT0=70 STOP_CHARGE_THRESH_BAT0=80 ``` -------------------------------- ### LG: tlp-stat -b output example Source: https://linrunner.de/tlp/settings/bc-vendors.html Sample output from 'tlp-stat -b' for the LG plugin, showing supported features, driver usage, parameter value ranges, and sysfs paths. ```text +++ Battery Care Plugin: lg Supported features: charge threshold Driver usage: * natacpi (lg_laptop) = active (charge threshold) Parameter value range: * STOP_CHARGE_THRESH_BAT0: 80(on), 100(off) ... /sys/class/power_supply/BAT0/charge_control_end_threshold = 80 [%] +++ Battery Care Plugin: lg-legacy Supported features: charge threshold Driver usage: * vendor (lg_laptop) = active (charge threshold) Parameter value range: * STOP_CHARGE_THRESH_BAT0: 80(on), 100(off) -- battery care limit /sys/devices/platform/lg-laptop/battery_care_limit = 80 [%] ``` -------------------------------- ### Install TLP Packages on Void Linux Source: https://linrunner.de/tlp/installation/void.html Installs the TLP power management tool and its optional components (tlp-pd, tlp-rdw) from official Void Linux repositories. ```bash sudo xbps-install tlp tlp-pd tlp-rdw ``` -------------------------------- ### Launch Game with Performance Profile Hold Source: https://linrunner.de/tlp/usage/tlpctl.html Example of launching a game ('steam') with the 'performance' profile held for the duration of the game, with a reason specified. ```bash tlpctl launch --profile performance --reason "Gaming" steam ``` -------------------------------- ### Install TLP on Fedora 44+ Source: https://linrunner.de/tlp/installation/fedora.html Installs TLP and its optional components on Fedora 44 and newer. This command also enforces the uninstallation of conflicting tools like 'tuned' and 'power-profiles-daemon'. ```bash sudo dnf install --allowerasing tlp tlp-pd tlp-rdw ``` -------------------------------- ### Wilco-EC Laptops: Sample Output Source: https://linrunner.de/tlp/settings/bc-vendors.html Example output from 'tlp-stat -b' for Wilco-EC hardware, showing active battery care features and configured thresholds. ```text +++ Battery Care Plugin: wilco-ec Supported features: charge thresholds Driver usage: * natacpi (wilco_charger) = active (charge thresholds) Parameter value ranges: * START_CHARGE_THRESH_BAT0: 50..95(default) * STOP_CHARGE_THRESH_BAT0: 55..100(default) /sys/class/power_supply/wilco-charger/charge_control_start_threshold = 75 [%] /sys/class/power_supply/wilco-charger/charge_control_end_threshold = 80 [%] /sys/class/power_supply/wilco-charger/charge_type = Custom ``` -------------------------------- ### Install TLP from Backports Source: https://linrunner.de/tlp/installation/debian.html Install TLP and optional components from Debian backports, specifying the target release. Replace DIST with your Debian codename. ```shell sudo apt -t DIST-backports install tlp tlp-pd tlp-rdw ``` -------------------------------- ### MSI: tlp-stat -b output example Source: https://linrunner.de/tlp/settings/bc-vendors.html Sample output from 'tlp-stat -b' for the MSI plugin, showing supported features, driver usage, parameter value ranges, and sysfs paths for charge thresholds. ```text +++ Battery Care Plugin: msi Supported features: charge thresholds Driver usage: * natacpi (msi_ec) = active (charge thresholds) Parameter value ranges: * START_CHARGE_THRESH_BAT0/1: don't care (hardware enforces stop - 10) * STOP_CHARGE_THRESH_BAT0/1: 10..100(default) ... /sys/class/power_supply/BAT1/charge_control_start_threshold = 70 [%] /sys/class/power_supply/BAT1/charge_control_end_threshold = 80 [%] ``` -------------------------------- ### Create TLP Customization Snippet Source: https://linrunner.de/tlp/settings/introduction.html Example of creating a user-defined configuration file within the /etc/tlp.d/ directory for custom TLP settings. ```shell * Filenames must end in **.conf** , otherwise the file will be ignored * **00-template.conf** is provided as an example ``` ```shell If in doubt, put your configuration changes in **/etc/tlp.d/01-mytlp.conf** ``` -------------------------------- ### Apply TLP Configuration Changes Source: https://linrunner.de/tlp/settings/introduction.html Activates the modified TLP settings using the 'tlp start' command. ```shell sudo tlp start ``` -------------------------------- ### Install NetworkManager on Void Linux Source: https://linrunner.de/tlp/installation/void.html Installs the NetworkManager package, which is a prerequisite for using the tlp-rdw (Radio Device Wizard) component. ```bash sudo xbps-install NetworkManager ``` -------------------------------- ### Samsung: tlp-stat -b output example Source: https://linrunner.de/tlp/settings/bc-vendors.html Sample output from 'tlp-stat -b' for the Samsung plugin, showing supported features, driver usage, parameter value range, and the sysfs path for battery life extender. ```text +++ Battery Care Plugin: samsung Supported features: charge threshold Driver usage: * vendor (samsung_laptop) = active (charge threshold) Parameter value range: * STOP_CHARGE_THRESH_BAT0: 0(off), 1(on) -- -- battery life extender /sys/devices/platform/samsung/battery_life_extender = 1 (80%) ``` -------------------------------- ### Enable TLP Services Source: https://linrunner.de/tlp/developers/source.html Enable and start the TLP systemd services for persistent background operation. ```bash sudo systemctl enable --now tlp-pd.service sudo systemctl enable --now tlp.service ``` -------------------------------- ### Install Kernel Development and Battery Care Modules Source: https://linrunner.de/tlp/installation/fedora.html Installs the 'kernel-devel' package (required for building kernel modules) and 'akmod-tp_smapi' (external kernel module for older ThinkPads) from the official Fedora and TLP repositories. ```bash sudo dnf install kernel-devel akmod-tp_smapi ``` -------------------------------- ### Enable TLP Profile Switching Service Source: https://linrunner.de/tlp/faq/installation.html Execute this command to enable the TLP service responsible for switching profiles via mouse click. The --now flag also starts the service immediately. ```bash systemctl enable --now tlp-pd.service ``` -------------------------------- ### Display TLP Version Source: https://linrunner.de/tlp/usage/index.html Show the installed version of TLP. ```bash tlp --version ``` -------------------------------- ### MSI: Start and stop charging battery BAT1 Source: https://linrunner.de/tlp/settings/bc-vendors.html Configure MSI laptops to start charging battery BAT1 when below 70% and stop at 80%. Set START_CHARGE_THRESH_BAT1 to 0 (don't care) and STOP_CHARGE_THRESH_BAT1 to 80. ```bash START_CHARGE_THRESH_BAT1=0 # don't care STOP_CHARGE_THRESH_BAT1=80 ``` -------------------------------- ### Install tp-smapi-dkms for Legacy ThinkPads Source: https://linrunner.de/tlp/installation/debian.html Install the external kernel module for battery care features on ThinkPads older than the Sandy Bridge generation, if required. ```shell apt install tp-smapi-dkms ``` -------------------------------- ### Toshiba: tlp-stat -b Output Example Source: https://linrunner.de/tlp/settings/bc-vendors.html Sample output from 'tlp-stat -b' showing active charge threshold settings for Toshiba laptops. ```text +++ Battery Care Plugin: toshiba Supported features: charge threshold Driver usage: * natacpi (toshiba_acpi) = active (charge threshold) Parameter value range: * STOP_CHARGE_THRESH_BAT0/1: 80(on), 100(off) ... /sys/class/power_supply/BAT1/charge_control_end_threshold = 80 [%] ``` -------------------------------- ### Unsupported Hardware: No Battery Care Features Source: https://linrunner.de/tlp/settings/bc-vendors.html Example output indicating that no battery care features are available for the current hardware/driver combination. ```text +++ Battery Care Plugin: Supported features: none available ``` -------------------------------- ### Concatenating Values Across Config Files (Example 2) Source: https://linrunner.de/tlp/settings/introduction.html Demonstrates how values can be appended to a parameter across different configuration files using the '+=' operator. This allows for modular configuration management. ```shell USB_DENYLIST="1111:2222 3333:4444" ``` ```shell USB_DENYLIST+="5555:6666" ``` -------------------------------- ### Set Default Profile at Startup Source: https://linrunner.de/tlp/faq/operation.html Configure TLP_DEFAULT_MODE to select a specific profile at system startup. For example, 'BAL' for the balanced profile. ```bash TLP_DEFAULT_MODE=BAL ``` -------------------------------- ### Sony: tlp-stat -b Output Example Source: https://linrunner.de/tlp/settings/bc-vendors.html Sample output from 'tlp-stat -b' showing the active battery care limiter settings for Sony laptops. ```text +++ Battery Care Plugin: sony Supported features: charge threshold Driver usage: * vendor (sony_laptop) = active (charge threshold) Parameter value range: * STOP_CHARGE_THRESH_BAT0: 50, 80, 100(off) -- battery care limiter /sys/devices/platform/sony-laptop/battery_care_limiter = 80 [%] ``` -------------------------------- ### Display tlp-rdw Version Source: https://linrunner.de/tlp/usage/tlp-rdw.html Check the installed version of the tlp-rdw utility. ```bash tlp-rdw --version ``` -------------------------------- ### Install tp-smapi kernel modules on openSUSE Tumbleweed Source: https://linrunner.de/tlp/installation/opensuse.html Installs the tp-smapi kernel modules package from the official repository. This is required for battery care features like charge thresholds and recalibration on older ThinkPads if not supported by the default kernel modules. ```bash sudo zypper install tp_smapi ``` -------------------------------- ### Show TLP Version Source: https://linrunner.de/tlp/usage/tlp.html Displays the installed version of the TLP utility. This command is available in version 1.7 and newer. ```bash tlp --version ``` -------------------------------- ### TLP Init Command for Other Init Systems Source: https://linrunner.de/tlp/developers/architecture.html When using an init system other than systemd or sysvinit, you must provide a script to call the tlp init command. This command is used to start, stop, restart, or check the status of TLP. ```bash tlp init start|stop|restart|force-reload|status ``` -------------------------------- ### Mask Systemd Services on Install Source: https://linrunner.de/tlp/developers/scripts.html Masks systemd services that might conflict with tlp during installation. This prevents them from being started automatically. ```bash # Mask conflicting systemd services for i in systemd-rfkill.service systemd-rfkill.socket; do systemctl mask $i 2> /dev/null || true done ``` -------------------------------- ### Comment Lines Source: https://linrunner.de/tlp/settings/introduction.html Shows how to add comments to TLP configuration files. Lines starting with '#' are ignored by TLP, allowing for explanatory notes. ```shell #What is written here does not matter. ``` -------------------------------- ### Temporarily Charge Battery to Stop Threshold Once Source: https://linrunner.de/tlp/usage/tlp.html Temporarily lifts the start charge threshold to charge the battery once up to the stop threshold. The configured start threshold is restored on reboot. Example charges BAT0 up to the stop threshold. ```bash sudo tlp chargeonce [] sudo tlp chargeonce BAT0 ``` -------------------------------- ### Add RPM Fusion Repository for Legacy ThinkPads Source: https://linrunner.de/tlp/installation/fedora.html Adds the RPM Fusion repository, which is necessary for installing the 'akmod-tp_smapi' package for legacy ThinkPads that require external kernel modules for battery care. ```bash sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm ``` -------------------------------- ### Tuxedo Laptops: Supported Model Output Source: https://linrunner.de/tlp/settings/bc-vendors.html Example output from 'tlp-stat -b' for a supported Tuxedo laptop model, showing active battery care features and configured thresholds. ```text ++ Battery Care Plugin: tuxedo Supported features: charge thresholds Driver usage: * natacpi (clevo_acpi) = active (charge thresholds) Parameter value ranges: * START_CHARGE_THRESH_BAT0/1: 40/50/60/70/80/95(default) * STOP_CHARGE_THRESH_BAT0/1: 60/70/80/90/100(default) ... /sys/class/power_supply/BAT0/charge_control_start_threshold = 70 [%] /sys/class/power_supply/BAT0/charge_control_end_threshold = 80 [%] /sys/class/power_supply/BAT0/charge_type = Custom ``` -------------------------------- ### Add TLP Repository Source: https://linrunner.de/tlp/installation/fedora.html Sets up the TLP repository to access the latest TLP versions if they are not yet available in the official Fedora repositories. This is typically needed after a clean Fedora installation. ```bash sudo dnf install "https://repo.linrunner.de/fedora/tlp/repos/releases/tlp-release.fc$(rpm -E %fedora).noarch.rpm" ``` -------------------------------- ### Set Battery Charge Thresholds Source: https://linrunner.de/tlp/faq/battery.html Configure start and stop charge thresholds for battery 0 in the TLP configuration file. These values determine when the battery begins and ceases charging. ```shell START_CHARGE_THRESH_BAT0=75 STOP_CHARGE_THRESH_BAT0=80 ``` -------------------------------- ### Enable AHCI Runtime Power Management on Battery Source: https://linrunner.de/tlp/faq/usb.html Set AHCI_RUNTIME_PM_ON_BAT to 'on' to enable runtime power management for AHCI devices on battery power. Execute 'tlp start' after changing. ```bash AHCI_RUNTIME_PM_ON_BAT=on ``` -------------------------------- ### Get TLP Status Information Source: https://linrunner.de/tlp/support/index.html Always provide the full output of this command when asking for support. Include the power source (AC and/or battery) with which the problem occurs. ```bash sudo tlp-stat ``` -------------------------------- ### Set Charge Thresholds for BAT0 Source: https://linrunner.de/tlp/settings/bc-vendors.html Configure TLP to start charging BAT0 at 75% and stop at 80%. This configuration is only applicable to EC firmware version 3. ```bash START_CHARGE_THRESH_BAT0=75 # Applies to EC firmware v3 only STOP_CHARGE_THRESH_BAT0=80 ``` -------------------------------- ### Sample tlp-stat -b Output for Legacy ThinkPads Source: https://linrunner.de/tlp/settings/bc-vendors.html Illustrates the output of `tlp-stat -b` for legacy ThinkPads, showing the active plugin, supported features, driver usage, parameter ranges, and current threshold settings. ```text +++ Battery Care Plugin: thinkpad-legacy Supported features: charge thresholds, recalibration Driver usage: * tp-smapi (tp_smapi) = active (status, charge thresholds, recalibration) Parameter value ranges: * START_CHARGE_THRESH_BAT0/1: 2..96(default) * STOP_CHARGE_THRESH_BAT0/1: 6..100(default) ... /sys/devices/platform/smapi/BAT0/start_charge_thresh = 75 [%] /sys/devices/platform/smapi/BAT0/stop_charge_thresh = 80 [%] /sys/devices/platform/smapi/BAT0/force_discharge = 0 ``` -------------------------------- ### Uninstall TLP Source Install Source: https://linrunner.de/tlp/developers/source.html Remove TLP and its man pages when installed from source. This command should only be used for source installations, not package-based ones. ```bash sudo make uninstall uninstall-man ``` -------------------------------- ### Editing TLP Configuration Files Source: https://linrunner.de/tlp/settings/introduction.html Provides examples of using a text editor with root privileges to modify TLP configuration files. Common editors like 'nano' are shown. ```shell sudo nano /etc/tlp.conf ``` ```shell sudo nano /etc/tlp.d/01-mytlp.conf ``` -------------------------------- ### Temporarily Charge Battery to Full Capacity Source: https://linrunner.de/tlp/usage/tlp.html Applies vendor presets to charge thresholds temporarily to charge the battery fully. The command terminates after setting thresholds, not upon charge completion. Example charges BAT0 to full. ```bash sudo tlp fullcharge [] sudo tlp fullcharge BAT0 ``` -------------------------------- ### Install TLP without tlp-rdw on Debian/Ubuntu Source: https://linrunner.de/tlp/faq/installation.html Use this command on Debian, Ubuntu, or derivatives to install TLP without the tlp-rdw component, which is useful if you do not use Network Manager. ```bash sudo apt install --no-install-recommends tlp ``` -------------------------------- ### Install tp-smapi Kernel Modules Source: https://linrunner.de/tlp/faq/battery.html Install the 'tp-smapi' kernel modules if your ThinkPad is from the Sandy Bridge generation (2011) or older, and if 'tlp-stat -b' recommends it for battery thresholds and recalibration. ```shell Install tp-smapi kernel modules for ThinkPad battery thresholds and recalibration ``` -------------------------------- ### Apple Macbook Battery Care Configuration Source: https://linrunner.de/tlp/settings/bc-vendors.html Configure start and stop charge thresholds for Apple Silicon Macbooks. The hardware enforces specific start thresholds based on the stop threshold. ```shell START_CHARGE_THRESH_BAT0=75 # don't care STOP_CHARGE_THRESH_BAT0=80 ``` -------------------------------- ### Attempting to Load thinkpad_acpi Module Source: https://linrunner.de/tlp/faq/battery.html Demonstrates the error message when trying to load the 'thinkpad_acpi' kernel module fails due to broken boot options. ```bash sudo modprobe thinkpad_acpi modprobe: ERROR: could not insert 'thinkpad_acpi': Invalid argument ``` -------------------------------- ### Open TLP Configuration File Source: https://linrunner.de/tlp/settings/introduction.html Opens the main TLP configuration file using nano editor for quick changes. ```shell sudo nano /etc/tlp.conf ``` -------------------------------- ### View Processor Tunables Source: https://linrunner.de/tlp/usage/tlp-stat.html Use the -p or --processor options to view power saving tunables for processors. Add -v for all CPUs or -q for driver state only. ```bash tlp-stat -p ``` ```bash tlp-stat --processor ``` -------------------------------- ### View Disk Device Tunables Source: https://linrunner.de/tlp/usage/tlp-stat.html Use the -d or --disk options to view power saving tunables for disk devices. ```bash sudo tlp-stat -d ``` ```bash sudo tlp-stat --disk ``` -------------------------------- ### Set Battery Charge Thresholds Source: https://linrunner.de/tlp/settings/battery.html Configures the start and stop charge thresholds for main (BAT0) and secondary (BAT1) batteries. Charging begins when the battery level drops below the start threshold and stops when it reaches the stop threshold. Both thresholds must be set for a battery. ```shell START_CHARGE_THRESH_BAT0=75 STOP_CHARGE_THRESH_BAT0=80 START_CHARGE_THRESH_BAT1=75 STOP_CHARGE_THRESH_BAT1=80 ``` -------------------------------- ### Enable TLP Systemd Service Source: https://linrunner.de/tlp/faq/installation.html Run this command to ensure TLP's power saving settings apply on boot. This is necessary for full functionality. ```bash systemctl enable tlp.service ``` -------------------------------- ### Get Currently Active TLP Profile Source: https://linrunner.de/tlp/usage/tlpctl.html Prints the TLP profile that is currently active. ```bash tlpctl get ``` -------------------------------- ### Enable Runtime Power Management Source: https://linrunner.de/tlp/support/optimizing.html Configure runtime power management settings for both AC and battery power. Set to 'auto' to enable. ```shell RUNTIME_PM_ON_AC=auto RUNTIME_PM_ON_BAT=auto ``` -------------------------------- ### tlp-stat Output: tp-smapi Inactive Source: https://linrunner.de/tlp/faq/battery.html Symptom output from tlp-stat -b indicating that the 'tp-smapi' kernel module is not installed. ```text tp-smapi = inactive (kernel module 'tp_smapi' not installed) ``` -------------------------------- ### Configure Platform Profile Source: https://linrunner.de/tlp/support/optimizing.html Set the platform profile for AC, battery, and SAV (Save) modes. 'balanced-performance' is recommended for AC, 'balanced' for battery, and 'low-power' for SAV. ```shell PLATFORM_PROFILE_ON_AC=balanced-performance PLATFORM_PROFILE_ON_BAT=balanced PLATFORM_PROFILE_ON_SAV=low-power ``` -------------------------------- ### Enable Autosuspend for USB Devices Source: https://linrunner.de/tlp/faq/usb.html Example output from 'tlp-stat -u' showing autosuspend enabled ('control = auto') for a hub. ```text Bus 001 Device 005 ID 05e3:0608 control = auto, autosuspend_delay_ms = 0 -- Genesys Logic, Inc. Hub (hub) ``` -------------------------------- ### Unmask Systemd Services on Removal Source: https://linrunner.de/tlp/developers/scripts.html Unmasks systemd services that were masked by tlp during installation. This allows them to be managed by systemd again after tlp is removed. ```bash # Unmask conflicting systemd services for i in systemd-rfkill.service systemd-rfkill.socket; do systemctl unmask $i 2> /dev/null || true done ;; ``` -------------------------------- ### View PCIe Device Tunables Source: https://linrunner.de/tlp/usage/tlp-stat.html Use the -e or --pcie options to view power saving tunables for PCIe devices. ```bash sudo tlp-stat -e ``` ```bash sudo tlp-stat --pcie ``` -------------------------------- ### Configure CPU Scaling Governor Source: https://linrunner.de/tlp/faq/processor.html Set the CPU scaling governor to 'schedutil' for optimal performance with intel_pstate driver. Comment out or explicitly set governor settings in TLP configuration. ```bash CPU_SCALING_GOVERNOR_ON_AC=schedutil CPU_SCALING_GOVERNOR_ON_BAT=schedutil ``` -------------------------------- ### Get GPG Key Fingerprint Source: https://linrunner.de/tlp/installation/fedora.html Import and display the fingerprint of the downloaded TLP GPG key. This allows for verification against known fingerprints. ```bash gpg -n -q --import --import-options import-show RPM-GPG-KEY-tlp-fedora-42-primary ``` -------------------------------- ### View Active TLP Configuration Source: https://linrunner.de/tlp/usage/tlp-stat.html Use the -c or --config options to display the currently active TLP configuration settings. ```bash tlp-stat -c ``` ```bash tlp-stat --config ``` -------------------------------- ### Enable TLP Service on Void Linux Source: https://linrunner.de/tlp/installation/void.html Enables the TLP system service by creating a symbolic link in the /var/service directory. ```bash sudo ln -s /etc/sv/tlp /var/service ``` -------------------------------- ### View Graphics Card Tunables Source: https://linrunner.de/tlp/usage/tlp-stat.html Use the -g or --graphics options to view power saving tunables for graphics cards. ```bash sudo tlp-stat -g ``` ```bash sudo tlp-stat --graphics ``` -------------------------------- ### Switch to Performance Profile Source: https://linrunner.de/tlp/usage/tlpctl.html Use this command to switch to the 'performance' profile, which is typically used for AC power parameters. ```bash tlpctl performance ``` -------------------------------- ### Disable Autosuspend for Bluetooth Adapters Source: https://linrunner.de/tlp/faq/usb.html Example output from 'tlp-stat -u' showing autosuspend disabled ('control = on') for a Bluetooth adapter, likely due to USB_EXCLUDE_BTUSB=1. ```text Bus 003 Device 003 ID 8087:0032 control = on, autosuspend_delay_ms = 2000 -- Intel Corp. AX210 Bluetooth (btusb) ``` -------------------------------- ### View Power Supply Diagnostics Source: https://linrunner.de/tlp/usage/tlp-stat.html Use the --psup option to view power supply diagnostics. ```bash tlp-stat --psup ``` -------------------------------- ### Disable Wi-Fi Power Saving on Battery Source: https://linrunner.de/tlp/faq/radio.html Configure TLP to disable Wi-Fi power saving when running on battery power. Apply changes with 'tlp start'. ```shell WIFI_PWR_ON_BAT=off ``` -------------------------------- ### Launch Command with Default Performance Profile Hold Source: https://linrunner.de/tlp/usage/tlpctl.html Launches a command ('make -j8') with the default 'performance' profile hold, as no specific profile or reason is provided. ```bash tlpctl launch make -j8 ``` -------------------------------- ### Disable Autosuspend for Input Devices Source: https://linrunner.de/tlp/faq/usb.html Example output from 'tlp-stat -u' showing autosuspend disabled ('control = on') for an input device (usbhid). TLP disables this by default. ```text Bus 001 Device 006 ID 046d:c52b control = on, autosuspend_delay_ms = 2000 -- Logitech, Inc. Unifying Receiver (usbhid) ``` -------------------------------- ### View USB Device Tunables Source: https://linrunner.de/tlp/usage/tlp-stat.html Use the -u or --usb options to view power saving tunables for USB devices. Add -v to see device runtime status. ```bash tlp-stat -u ``` ```bash tlp-stat --usb ``` -------------------------------- ### Configure Radio Device Switching on Battery and LAN Disconnect Source: https://linrunner.de/tlp/faq/radio.html Example of potentially conflicting TLP configurations for disabling Wi-Fi on battery and enabling it on LAN disconnect. ```shell DEVICES_TO_DISABLE_ON_BAT="wifi" DEVICES_TO_ENABLE_ON_LAN_DISCONNECT="wifi" ``` -------------------------------- ### Using tlp-stat for Configuration Inspection Source: https://linrunner.de/tlp/settings/introduction.html Lists common 'tlp-stat' commands used to inspect the TLP configuration. These include showing active configurations, comparing user and default settings, and checking the TLP version. ```shell tlp-stat -c ``` ```shell tlp-stat --cdiff ``` ```shell tlp-stat -s ``` -------------------------------- ### Build AUR Package Source: https://linrunner.de/tlp/developers/source.html Build an Arch Linux package from the AUR using makepkg. ```bash makepkg ``` -------------------------------- ### Modify CPU Energy Performance Policy Source: https://linrunner.de/tlp/settings/introduction.html Example of changing CPU energy performance policies in the TLP configuration file. Remember to remove the leading '#' to activate the settings. ```shell #CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance #CPU_ENERGY_PERF_POLICY_ON_BAT=balance_power #CPU_ENERGY_PERF_POLICY_ON_SAV=power ``` ```shell CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance CPU_ENERGY_PERF_POLICY_ON_BAT=balance_performance CPU_ENERGY_PERF_POLICY_ON_SAV=balance_power ``` -------------------------------- ### Switch to Power-Saver Profile Source: https://linrunner.de/tlp/usage/tlpctl.html Use this command to switch to the 'power-saver' profile, which is typically used for saving power (SAV parameters). ```bash tlpctl power-saver ``` -------------------------------- ### Remove Conflicting Tools on Fedora 43 Source: https://linrunner.de/tlp/installation/fedora.html Before installing TLP on Fedora 43, remove the 'tuned' and 'power-profiles-daemon' packages to avoid conflicts. This step is crucial for proper TLP operation. ```bash sudo dnf remove tuned tuned-ppd sudo dnf remove power-profiles-daemon # on older installations ``` -------------------------------- ### Build Debian/Ubuntu Binary Packages Source: https://linrunner.de/tlp/developers/source.html Build binary packages for Debian/Ubuntu using dpkg-buildpackage. Ensure the debian/ directory is correctly symlinked. ```bash dpkg-buildpackage -b -tc -i.git ``` -------------------------------- ### Permanently Enable Autosuspend for PCIe Devices Source: https://linrunner.de/tlp/settings/runtimepm.html Permanently enables autosuspend for specified PCIe device addresses, overriding other Runtime PM settings. Use 'lspci' to get addresses. ```shell RUNTIME_PM_ENABLE="11:22.3" ``` -------------------------------- ### Sample tlp-stat Output for Lenovo (Older Kernels) Source: https://linrunner.de/tlp/settings/bc-vendors.html Displays `tlp-stat -b` output for Lenovo non-ThinkPads using the 'lenovo-legacy' plugin with older kernels, showing supported features and conservation mode status. ```text +++ Battery Care Plugin: lenovo-legacy Supported features: charge threshold Driver usage: * vendor (ideapad_laptop) = active (charge threshold) Parameter value range: * STOP_CHARGE_THRESH_BAT0: 0(off), 1(on) -- battery conservation mode /sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode = 1 ``` -------------------------------- ### CPU Frequency and Governor Settings Source: https://linrunner.de/tlp/faq/processor.html Displays current CPU scaling driver, governor, and energy preference settings. Useful for diagnosing performance and power management issues. ```bash /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver = amd-pstate-epp | intel_pstate /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = performance /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference = performance [EPP] ``` ```bash /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver = intel_cpufreq /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = powersave /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors = conservative ondemand userspace powersave performance schedutil ``` ```bash /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver = intel_pstate /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = powersave ``` ```bash CPU model = 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver = intel_pstate /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = powersave /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq = 1200000 [kHz] ``` ```bash /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies = 2400000 1600000 800000 [kHz] ``` ```bash /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver = intel_pstate /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = powersave ``` -------------------------------- ### Concatenating to Intrinsic Defaults (Example 1) Source: https://linrunner.de/tlp/settings/introduction.html Shows how to append a value to a parameter that has an intrinsic default using the '+=' operator. The new value is added to the existing list of defaults. ```shell DISK_DEVICES+="sdb" ``` -------------------------------- ### Example of Incorrect Charge Threshold Display Source: https://linrunner.de/tlp/faq/battery.html Illustrates how Lenovo's EC firmware might display charge thresholds differently than configured, even though they function correctly. ```text /sys/class/power_supply/BAT0/charge_control_start_threshold = 75 [%] /sys/class/power_supply/BAT0/charge_control_end_threshold = 74 [%] ``` -------------------------------- ### Enable TLP Trace Mode Source: https://linrunner.de/tlp/settings/trace.html Add this line to a TLP configuration file to enable trace mode. Specify the components you want to trace, separated by spaces. ```shell TLP_DEBUG="arg bat disk lock nm path pm ps rf run sysfs udev usb" ``` -------------------------------- ### Set Battery Charge Thresholds Source: https://linrunner.de/tlp/faq/battery.html Configure start and stop charge thresholds for battery 0. Ensure the stop threshold is set to 100% to avoid issues with dual-mode battery firmware. ```shell START_CHARGE_THRESH_BAT0=75 STOP_CHARGE_THRESH_BAT0=100 ``` -------------------------------- ### Basic Parameter Syntax Source: https://linrunner.de/tlp/settings/introduction.html Defines the fundamental structure for parameter lines in TLP configuration files. Parameters are set using a key-value format. ```shell PARAMETER=value ``` -------------------------------- ### Tuxedo Laptops: Unsupported Model Output Source: https://linrunner.de/tlp/settings/bc-vendors.html Example output from 'tlp-stat -b' for an unsupported Tuxedo laptop model, indicating no battery care features are available due to driver limitations. ```text +++ Battery Care Plugin: tuxedo Supported features: none available Driver usage: * natacpi (clevo_acpi) = inactive (Tuxedo's non-Clevo models are unsupported) ... /sys/class/power_supply/BAT0/charge_control_start_threshold = (not available) [%] /sys/class/power_supply/BAT0/charge_control_end_threshold = (not available) [%] /sys/class/power_supply/BAT0/charge_type = (not available) ``` -------------------------------- ### Sample tlp-stat Output for Lenovo (Newer Kernels) Source: https://linrunner.de/tlp/settings/bc-vendors.html Shows `tlp-stat -b` output for Lenovo non-ThinkPads using the 'lenovo' plugin with newer kernels (6.17+), indicating supported features and charge types. ```text +++ Battery Care Plugin: lenovo Supported features: charge type Driver usage: * vendor (ideapad_laptop) = active (charge type) Parameter value range: * STOP_CHARGE_THRESH_BAT0/1: 0(Standard)..1(Long_Life) -- charge type ... /sys/class/power_supply/BAT0/charge_types = Standard [Long_Life] ``` -------------------------------- ### Temporarily Set Battery Charge Thresholds Source: https://linrunner.de/tlp/usage/tlp.html Changes battery charge thresholds temporarily. Configured thresholds are restored on reboot or by running the command without arguments. Example applies 70/90% to BAT0. ```bash sudo tlp setcharge [ ] [] sudo tlp setcharge 70 90 BAT0 ```