- CPU frequency scaling and battery optimization for Notebook and PC systems
is a Linux daemon used to prevent the overheating of platforms. This daemon monitors temperature and applies compensation using available cooling methods.
By default, it monitors CPU temperature using available CPU digital temperature sensors and maintains CPU temperature under control, before HW takes aggressive correction action. If there is a skin temperature sensor in thermal sysfs, then it tries to keep skin temperature under 45C.
yay -S --needed thermald
sudo nano /usr/lib/systemd/system/thermald.service
change the line:
ExecStart=/usr/bin/thermald --no-daemon --dbus-enable
ExecStart=/usr/bin/thermald --no-daemon --dbus-enable --ignore-cpuid-check
save the file by pressing [Ctrl+Alt+x] and confirm by typing “y”
Last two things to do is enable the systemd service for TLP to automatic start it on every boot of your system:
sudo systemctl enable thermald
and now please reboot system to make it start working.
It will need some time to measure and then really control to hold the temperature down, so be patient and wait to see the effect for some time ( may need one or two hours before working for the first time)
is a set of userspace utilities designed to assist with CPU frequency scaling.
full list of available modules:
sudo ls /usr/lib/modules/$(uname -r)/kernel/drivers/cpufreq/
Load the appropriate module (see Kernel modules for details). Once the appropriate cpufreq driver is loaded, detailed information about the CPU(s) can be displayed by running
sudo cpupower frequency-info
Governors (see table below) are power schemes for the CPU. Only one may be active at a time. For details, see the kernel documentation in the kernel source.
|performance||Run the CPU at the maximum frequency.|
|powersave||Run the CPU at the minimum frequency.|
|userspace||Run the CPU at user specified frequencies.|
|ondemand||Scales the frequency dynamically according to current load. Jumps to the highest frequency and then possibly back off as the idle time increases.|
|conservative||Scales the frequency dynamically according to current load. Scales the frequency more gradually than ondemand.|
|Scheduler-driven CPU frequency selection , .|
set one for all cores:
(replace governor with e.g. what you want ondemand p.e…)
sudo echo *governor* > /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
see live output:
watch grep \"cpu MHz\" /proc/cpuinfo
making one permanent:
sudo systemctl enable cpupower.service
and configure it to use what you want per default:
# Define CPUs governor # valid governors: ondemand, performance, powersave, conservative, userspace. governor='ondemand' # Limit frequency range # Valid suffixes: Hz, kHz (default), MHz, GHz, THz #min_freq="2.25GHz" #max_freq="3GHz" # Specific frequency to be set. # Requires userspace governor to be available. # Do not set governor field if you use this one. #freq= # Utilizes cores in one processor package/socket first before processes are # scheduled to other processor packages/sockets. # See man (1) CPUPOWER-SET for additional details. #mc_scheduler= # Utilizes thread siblings of one processor core first before processes are # scheduled to other cores. See man (1) CPUPOWER-SET for additional details. #smp_scheduler= # Sets a register on supported Intel processore which allows software to convey # its policy for the relative importance of performance versus energy savings to # the processor. See man (1) CPUPOWER-SET for additional details. #perf_bias= # vim:set ts=2 sw=2 ft=sh et:
for more info:
- On default EndeavourOS install TLP is installed and enabled already for you.
But read here on may needed optional dependencies to make stuff working on your hardware:
Install TLP from the official repositories – pay attention to its optional dependencies that may help provide additional power saving:
- acpi_call: ThinkPad battery functions, Sandy Bridge and newer
- ethtool: Disable Wake On Lan
- lsb-release: Display LSB release version in tlp-stat
- smartmontools: Display S.M.A.R.T. data in tlp-stat
- tp_smapi: ThinkPad battery functions
- x86_energy_perf_policy: Set energy versus performance policy on x86 processors
sudo pacman -S tlp
To complete TLP’s install, you must enable the systemd service tlp.service:
sudo systemctl enable tlp.service
You should also mask the systemd service systemd-rfkill.service and socket systemd-rfkill.socket to avoid conflicts and assure proper operation of TLP’s radio device switching options.
sudo systemctl mask systemd-rfkill.service systemd-rfkill.socket
reboot your machine and you are fine.Follow us