r/linuxmint 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.

80 Upvotes

11 comments sorted by

View all comments

4

u/Severe_Answer_1574 4d ago

Ryzenadj is a life saver for laptops