Laptop runs hot - is there a tool to limit operating temperature?

My laptop has always run a bit hot since the day I got it. Right now, with just a few tabs open and some music playing in the background, the CPU is averaging 121⁰F. Ideally, there could be a way to limit this to 110⁰F or even a little less, especially now that summer is here.

AMD AI 350 processor and I’m on Fedora Atomic (Silverblue).

Universal x86 Tuning Utility for Linux (UXTU4Linux) requires the ryzen_smu kernel module which for the life of me I cannot figure out how to install because there are no instructions for installing it on Fedora and I can’t install make on my machine for some reason.

RyzenAdj also seems like a potentially viable option, but again I’m having trouble installing make.

Can anyone please help me?

After typing this, the CPU is now averaging 127⁰F and too hot to keep directly on my lap.

Set the cpu boost governor to powersave for all the cores:

/sys/devices/system/cpu/cpufreq/policy*/scaling_governor

You can also hard limit the max allowable boost frequency by echoing integer values to each of the cores:

/sys/devices/system/cpu/cpufreq/policy*/scaling_max_freq

for example:

echo 2000000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq

would cap core 0’s boost clock to 2ghz.

ryzend-adj allows you to set limit on temp

--apu-skin-temp
1 Like

Don’t put a laptop on your lap.
I would say a lot of laptop types get too hot to put on your lap.
I often use and insulating layer:
laptop on top of laptop bag on top of lap.

I figured out how to install make on my machine, but I still can’t use RyzenAdj after realizing it also relies on the ryzen-smu kernel module. For some reason, Fedora Atomic (Silverblue) does not easily allow you to load kernel modules.

Yes, I usually use an insulating layer, but I would still like to be able to limit how hot the laptop runs in the first place.

You can use Smokeless UMAF to adjust the Tctl to a lower temperature such as from 100C to 80C. You only need to do this once

Thanks for the recommendation! This looks pretty risky - have you done this on your own Framework laptop without bricking your device?

I’d treat UMAF as the last resort here. It changes firmware-level settings, so if the goal is just less heat on Silverblue, start with reversible OS controls: set GNOME/PPD to power-saver with `powerprofilesctl set power-saver`, then check whether `scaling_max_freq` or the governor files under `/sys/devices/system/cpu/cpufreq/policy*/` are writable. For Atomic/Silverblue, layering one package with `rpm-ostree install kernel-tools` for `cpupower` is much less scary than flashing/changing firmware menus. Also 127°F is about 53°C, which is warm on skin but not high for the CPU itself; I’d limit boost/noise rather than chase a very low CPU temp target.

2 Likes

Thank you @Sergio_Ortega this is very helpful!

I do have Power Saver active already. And it looks like yes the files under admin:///sys/devices/system/cpu/cpufreq/ are writable.

Doing a little more digging, when I’m on Power Saver mode, scaling_max_freq is set at 2000000 (2 million) for each policy, and boost is set to 0. On Balanced and Performance modes, the policies are set at 5090910 (~5 million) and boost is set to 1.

So perhaps I will experiment with lowering scaling_max_freq to 1500000 (1.5 million) for everything and keeping the boost at 0.

Are kernel-tools and cpupower packages I could install that would help automate this process somehow?

Update: someone in semi-related thread recommended Framework Control as a way to control CPU, fan, and even battery performance. I think this is the link to it: Framework Control (Linux/Windows) - A tool for: Fan Control (Curve), Sensors, Power Control, Battery Information

It took less than two minutes to install and seems to work perfectly!

1 Like

Oh yeah, that app is sick. Not that I’m biased :face_with_peeking_eye:

1 Like

You’re a legend!!!

1 Like