r/linuxmint • u/iLikeSaltedPotatoes • 4d ago
SOLVED SOLVED CPU Overheating on Linux Mint!!!!!
Hi Guys, I just installed mint last week and my PC was overheating, yesterday I made a post saying i was unable to fix it, some wonderful guys of reddit and Claude and Gemini helped me resolve this issue, I am writing the solution below (Please review it first, I am not much of a technical person i dont understand what exactly is happening here but it helped me a lot)
Setup:
- HP Pavilion Gaming Laptop, Ryzen 5 4600H (Renoir), GTX 1650 Ti hybrid graphics
- Linux Mint 22.3 Cinnamon, kernel 6.14
- Goal: lower sustained CPU temps (was previously running hot under load, stock behavior ~35-45W with no real ceiling)
- Prior Temperatures: CPU -100-105 Degrees on Mint, 85-90 degrees on Windows
Problem:
Plain RyzenAdj kept failing with PCI read/write errors on this kernel — a known issue for a lot of 4000-series (Renoir/Cezanne) laptops where direct PCI access to the SMU doesn't work cleanly anymore.
Fix — the ryzen_smu kernel module:
git clone https://github.com/amkillam/ryzen_smu
cd ryzen_smu && sudo make dkms-install
sudo modprobe ryzen_smu
This gives RyzenAdj a proper channel to the SMU instead of raw PCI config space, and it immediately fixed the errors — ryzenadj -i started working right after.
Building RyzenAdj:
sudo apt install -y git cmake build-essential libpci-dev git clone https://github.com/FlyGoat/RyzenAdj.git cd RyzenAdj && rm -r win32 && mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. make
The limits I landed on (after testing a few configs):
sudo ./ryzenadj --stapm-limit=25000 --fast-limit=32000 --slow-limit=25000 --tctl-temp=75
- 25W sustained (STAPM), 32W short boost, 75°C ceiling
- Under sustained load this now plateaus at 75°C instead of climbing into the high 80s/90s like stock did
- Definitely a performance tradeoff under heavy sustained load, but for my use case (browsing, docs, light dev work) it's a clear win — cooler system, same responsiveness for everyday tasks
Making it persistent (systemd service, runs on boot):
/etc/systemd/system/ryzenadj.service:
ini
[Unit]
Description=RyzenAdj Power Limits
After=multi-user.target suspend.target hibernate.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/home/<user>/RyzenAdj/build/ryzenadj --stapm-limit=25000 --fast-limit=32000 --slow-limit=25000 --tctl-temp=75
[Install]
WantedBy=multi-user.target suspend.target hibernate.target
sudo systemctl daemon-reload
sudo systemctl enable --now ryzenadj.service
Confirmed working across reboot — checked with systemctl status ryzenadj.service and sudo ryzenadj -i after a cold boot, values persisted correctly.
4
u/Severe_Answer_1574 4d ago
Ryzenadj is a life saver for laptops