Files
battery_life/config/tlp.conf
rwiegand b9e2c2a731 Add CPU power management tools and dynamic frequency scaling
- Add cpu-power-control.sh: Script for managing CPU power limits and presets
- Add monitor-cpu-freq.sh: Real-time CPU frequency monitoring tool
- Add test-single-core-boost.sh: Tool for testing single-core boost frequencies
- Add BIOS-FIX.md: Documentation for BIOS configuration fix
- Update tlp.conf: Configure dynamic CPU frequency scaling (400MHz-4.2GHz on AC, 400MHz-2.2GHz on battery)
- Add Intel RAPL power limit controls for CPU power capping
- Enable dynamic frequency scaling with proper platform profiles
- Fix CPU frequency stuck at 1.6GHz issue (required BIOS SpeedStep disable)
- Configure balanced battery mode with 2.2GHz max for responsiveness
2025-10-06 22:34:19 +02:00

267 lines
10 KiB
Plaintext

# ------------------------------------------------------------------------------
# TLP - Linux Advanced Power Management
# Optimized Configuration for Maximum Battery Life
#
# This configuration prioritizes battery life over performance.
# Adjust settings based on your specific laptop and usage patterns.
#
# Documentation: https://linrunner.de/tlp/
# ------------------------------------------------------------------------------
# Operation mode when no power supply can be detected: AC, BAT, DEF
# Concerns laptops in docking stations which do not report the power supply status
TLP_DEFAULT_MODE=BAT
# Operation mode select: 0=depend on power source, 1=always use TLP_DEFAULT_MODE
# Hint: use in combination with TLP_DEFAULT_MODE=BAT for BAT settings on AC
TLP_PERSISTENT_DEFAULT=0
# Seconds laptop mode has to wait after the disk goes idle before doing a sync.
# Non-zero value enables, zero disables laptop mode.
DISK_IDLE_SECS_ON_AC=0
DISK_IDLE_SECS_ON_BAT=2
# Dirty page values (timeouts in 1/100s).
MAX_LOST_WORK_SECS_ON_AC=15
MAX_LOST_WORK_SECS_ON_BAT=60
# Hint: CPU parameters below are disabled by default, remove the leading #
# to enable them, otherwise kernel default values are used.
# Select a CPU frequency scaling governor.
# Intel Core i processor with intel_pstate driver:
# powersave(*), performance
# For dynamic scaling between min and max, use "powersave" (it still allows turbo boost!)
# "performance" keeps CPU at higher frequencies constantly
# Older hardware with acpi-cpufreq driver:
# ondemand(*), powersave, performance, conservative, schedutil
CPU_SCALING_GOVERNOR_ON_AC=powersave
CPU_SCALING_GOVERNOR_ON_BAT=powersave
# Set the min/max frequency available for the scaling governor.
# Possible values depend on your CPU. For available frequencies see
# the output of tlp-stat -p.
# AC: Full range (400 MHz - 4.2 GHz) for maximum efficiency and performance
# Battery: 400 MHz minimum for best power savings, 2.2 GHz max for responsiveness
CPU_SCALING_MIN_FREQ_ON_AC=400000
CPU_SCALING_MAX_FREQ_ON_AC=4200000
CPU_SCALING_MIN_FREQ_ON_BAT=400000
CPU_SCALING_MAX_FREQ_ON_BAT=2200000
# Set energy performance hints (HWP) for Intel P-state governor:
# performance, balance_performance, default, balance_power, power
# Values are given in order of increasing power saving.
# AC: balance_performance for dynamic scaling with good responsiveness
# Battery: balance_power for better battery life while still allowing boost to 2.2 GHz
CPU_HWP_ON_AC=balance_performance
CPU_HWP_ON_BAT=balance_power
# Set Intel P-state performance: 0..100 (%)
# Limit the max/min P-state to control the power dissipation of the CPU.
# Values are stated as a percentage of the available performance.
# Set min to 0% for dynamic scaling (allows 800MHz idle)
# AC: 100% max to allow full 4.2GHz boost
# Battery: ~52% max to limit to 2.2GHz (52% of 4.2GHz = ~2.2GHz)
CPU_MIN_PERF_ON_AC=0
CPU_MAX_PERF_ON_AC=100
CPU_MIN_PERF_ON_BAT=0
CPU_MAX_PERF_ON_BAT=52
# ACPI Platform Profile (if available):
# low-power, balanced, performance
# This setting can override CPU frequency settings if not set correctly
# AC: performance for maximum responsiveness
# Battery: balanced for good battery life while allowing boost to 2.2 GHz
PLATFORM_PROFILE_ON_AC=performance
PLATFORM_PROFILE_ON_BAT=balanced
# Intel RAPL power limits (replaces the missing CPU power slider):
# Set CPU package power limits in watts (W)
# This provides the equivalent functionality of GUI power sliders
# Increased from 15W to 25W for better performance and higher boost frequencies
CPU_RAPL_POWER_LIMIT_LONG_ON_AC=25
CPU_RAPL_POWER_LIMIT_LONG_ON_BAT=8
CPU_RAPL_POWER_LIMIT_SHORT_ON_AC=35
CPU_RAPL_POWER_LIMIT_SHORT_ON_BAT=12
# Set the CPU "turbo boost" feature: 0=disable, 1=allow
# Requires an Intel Core i processor.
# AC: Enable turbo for full performance (up to 4.2 GHz)
# Battery: Enable turbo but limited by CPU_MAX_PERF to 2.2 GHz
CPU_BOOST_ON_AC=1
CPU_BOOST_ON_BAT=1
# Minimize number of used CPU cores/hyper-threads under light load conditions:
# 0=disable, 1=enable
SCHED_POWERSAVE_ON_AC=0
SCHED_POWERSAVE_ON_BAT=1
# Kernel NMI Watchdog:
# 0=disable (default, saves power), 1=enable (for kernel debugging only)
NMI_WATCHDOG=0
# Change CPU voltages aka "undervolting" - Kernel with PHC patch required
# Frequency voltage pairs are written to:
# /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
# CAUTION: only use this, if you thoroughly understand what you are doing!
#PHC_CONTROLS="F:V F:V F:V F:V"
# CPU performance versus energy savings policy (deprecated for intel_pstate)
# Modern Intel CPUs use CPU_HWP settings above instead of CPU_ENERGY_PERF_POLICY
# CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance
# CPU_ENERGY_PERF_POLICY_ON_BAT=power
# Disk devices; separate multiple devices with spaces (default: sda).
# Devices can be specified by disk ID also (lookup with: tlp diskid).
DISK_DEVICES="sda sdb nvme0n1"
# Disk advanced power management level: 1..254, 255 (max saving, min, off).
# Levels 1..127 may spin down the disk; 255 allowable on most drives.
# Separate values for multiple disks with spaces. Use the special value 'keep'
# to keep the hardware default for the particular disk.
DISK_APM_LEVEL_ON_AC="254 254"
DISK_APM_LEVEL_ON_BAT="128 128"
# Hard disk spin down timeout:
# 0: spin down disabled
# 1..240: timeouts from 5s to 20min (in units of 5s)
# 241..251: timeouts from 30min to 5.5 hours (in units of 30min)
# See 'man hdparm' for details.
DISK_SPINDOWN_TIMEOUT_ON_AC="0 0"
DISK_SPINDOWN_TIMEOUT_ON_BAT="0 0"
# Select IO scheduler for the disk devices: cfq, deadline, noop (Default: cfq).
# Separate values for multiple disks with spaces. Use the special value 'keep'
# to keep the kernel default scheduler for the particular disk.
DISK_IOSCHED="mq-deadline mq-deadline"
# AHCI link power management (ALPM) for disk devices:
# min_power, med_power_with_dipm(*), medium_power, max_performance
AHCI_ALPM_ON_AC=max_performance
AHCI_ALPM_ON_BAT=min_power
# PCI Express Active State Power Management (PCIe ASPM):
# default, performance, powersave
PCIE_ASPM_ON_AC=performance
PCIE_ASPM_ON_BAT=powersave
# Radeon graphics clock speed (profile method): low, mid, high, auto, default;
# auto = mid on BAT, high on AC; default = use hardware defaults.
RADEON_POWER_PROFILE_ON_AC=high
RADEON_POWER_PROFILE_ON_BAT=low
# Radeon dynamic power management method (DPM): battery, performance
RADEON_DPM_STATE_ON_AC=performance
RADEON_DPM_STATE_ON_BAT=battery
# Radeon DPM performance level: auto, low, high; auto is recommended.
RADEON_DPM_PERF_LEVEL_ON_AC=auto
RADEON_DPM_PERF_LEVEL_ON_BAT=low
# WiFi power saving mode: on=enable, off=disable; not supported by all adapters.
WIFI_PWR_ON_AC=off
WIFI_PWR_ON_BAT=on
# Disable wake on LAN: Y/N
WOL_DISABLE=Y
# Enable audio power saving for Intel HDA, AC97 devices (timeout in secs).
# A value of 0 disables, >=1 enables power saving (recommended: 1).
SOUND_POWER_SAVE_ON_AC=0
SOUND_POWER_SAVE_ON_BAT=1
# Disable controller too (HDA only): Y/N
SOUND_POWER_SAVE_CONTROLLER=Y
# Power off optical drive in UltraBay/MediaBay: 0=disable, 1=enable.
# Drive can be powered on again by releasing (and reinserting) the eject lever
# or by pressing the disc eject button on newer models.
BAY_POWEROFF_ON_AC=0
BAY_POWEROFF_ON_BAT=0
# Optical drive device to power off (default sr0).
BAY_DEVICE="sr0"
# Runtime Power Management for AHCI host and disks devices:
# on=disable, auto=enable.
# EXPERIMENTAL: auto will most likely cause system lockups/data loss
AHCI_RUNTIME_PM_ON_AC=on
AHCI_RUNTIME_PM_ON_BAT=on
# Seconds of inactivity before disk is suspended.
AHCI_RUNTIME_PM_TIMEOUT=15
# USB autosuspend feature
USB_AUTOSUSPEND=1
# Exclude USB devices from autosuspend using device IDs (separate with spaces).
# Use lsusb to get the IDs.
# Note: input devices (mice, keyboards, etc.) are excluded automatically
#USB_BLACKLIST="1234:5678 9012:3456"
# Bluetooth devices are excluded from USB autosuspend:
# 0=do not exclude, 1=exclude
USB_BLACKLIST_BTUSB=0
# Phone devices are excluded from USB autosuspend:
# 0=do not exclude, 1=exclude (enable charging)
USB_BLACKLIST_PHONE=0
# Printers are excluded from USB autosuspend:
# 0=do not exclude, 1=exclude
USB_BLACKLIST_PRINTER=1
# WWAN devices are excluded from USB autosuspend:
# 0=do not exclude, 1=exclude
USB_BLACKLIST_WWAN=0
# Include built-in bluetooth devices in USB autosuspend:
# 0=do not include, 1=include
USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN=1
# Restore radio device state (Bluetooth, WiFi, WWAN) on system startup:
# 0=disable, 1=enable.
RESTORE_DEVICE_STATE_ON_STARTUP=0
# Radio devices to disable on startup: bluetooth, wifi, wwan.
# Separate multiple devices with spaces.
#DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wifi wwan"
# Radio devices to enable on startup: bluetooth, wifi, wwan.
# Separate multiple devices with spaces.
#DEVICES_TO_ENABLE_ON_STARTUP="wifi"
# Radio devices to disable on shutdown: bluetooth, wifi, wwan.
# (workaround for devices that are blocking shutdown).
#DEVICES_TO_DISABLE_ON_SHUTDOWN="bluetooth wifi wwan"
# Radio devices to enable on shutdown: bluetooth, wifi, wwan.
# (to prevent other operating systems from missing radios).
#DEVICES_TO_ENABLE_ON_SHUTDOWN="wwan"
# Radio devices to enable on AC: bluetooth, wifi, wwan.
#DEVICES_TO_ENABLE_ON_AC="bluetooth wifi wwan"
# Radio devices to disable on battery: bluetooth, wifi, wwan.
DEVICES_TO_DISABLE_ON_BAT="bluetooth"
# Radio devices to disable on battery when not in use (not connected):
# bluetooth, wifi, wwan.
#DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE="bluetooth wifi wwan"
# Battery charge thresholds (ThinkPad only, tp-smapi or acpi-call kernel module
# required). Charging starts when the remaining capacity falls below the
# START_CHARGE_THRESH value and stops when exceeding the STOP_CHARGE_THRESH value.
# Main / Internal battery (values in %)
START_CHARGE_THRESH_BAT0=75
STOP_CHARGE_THRESH_BAT0=80
# Ultrabay / Slice / Replaceable battery (values in %)
START_CHARGE_THRESH_BAT1=75
STOP_CHARGE_THRESH_BAT1=80
# Restore charge thresholds when AC is unplugged: 0=disable, 1=enable
RESTORE_THRESHOLDS_ON_BAT=1
# ------------------------------------------------------------------------------
# tlp-stat will print warnings for missing kernel modules and unsupported
# laptop models.