If you have a Ryzen-based mini PC (like Ryzen 5 3550H) running Ubuntu, you’ve probably noticed very high CPU temperatures — often above 90 °C even with light usage. Ubuntu (and most Linux distributions) doesn’t apply the same energy-saving power limits that Windows does by default, allowing your CPU to run at higher power levels and generate more heat.
But there’s good news: you can manually limit these power limits with RyzenAdj, keeping temperatures much lower while still maintaining balanced performance.
🧰 Solution: Limit TDP with RyzenAdj
RyzenAdj is an open-source tool that allows you to adjust the power limits of AMD Ryzen processors — directly controlling thermal and performance behavior on Linux.
Below is the full step-by-step walkthrough to install, configure, and apply RyzenAdj on Ubuntu:

Step 1 — Install Dependencies
Open a terminal and install the packages needed to compile RyzenAdj:
sudo apt update
sudo apt install -y git build-essential cmake libpci-dev libudev-dev zlib1g-devThese packages are required to build RyzenAdj from source.
Step 2 — Clone and Compile RyzenAdj
Download the official source code and compile RyzenAdj:
cd /tmp
git clone https://github.com/FlyGoat/RyzenAdj.git
cd RyzenAdj
mkdir build && cd build
cmake ..
make
sudo make installOnce installed, verify the command works:
ryzenadj --helpIf you see the list of parameters, everything was installed correctly.
Step 3 — Test Power Adjustment
Now you can set new power limits (in milliwatts) with RyzenAdj. For example:
sudo ryzenadj --stapm-limit=10000 --fast-limit=12000 --slow-limit=10000This limits the CPU power to around 10 W–12 W, significantly reducing heat generation without crashing the system.
⚠️ Tip: You can tweak these values — for instance, using 8000 / 10000 / 8000 for even more conservative settings.
Step 4 — Apply the Settings Automatically on Boot
To make sure your power limits are applied every time the system starts, create a systemd service:
Create the service file:
sudo nano /etc/systemd/system/ryzenadj.servicePaste the following:
[Unit]
Description=RyzenAdj Power Limits
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/ryzenadj --stapm-limit=10000 --fast-limit=12000 --slow-limit=10000
RemainAfterExit=yes
[Install]
WantedBy=multi-user.targetSave and close the file.
Enable and start the service:
sudo systemctl daemon-reload
sudo systemctl enable ryzenadj.service
sudo systemctl start ryzenadj.serviceYou can check the status:
sudo systemctl status ryzenadj.serviceIt should show success messages for each limit being set.
🧪 Results and Benefits
After applying RyzenAdj:
✔ Average temperatures can drop 15 °C to 25 °C
✔ Fan noise decreases significantly
✔ Power consumption is reduced
✔ Component lifespan improves
For example, a mini PC with a Ryzen 5 3550H dropped from about 94 °C to ~70 °C under light to moderate load while staying responsive.

❓ Frequently Asked Questions (FAQ)
1. Does this affect performance?
Yes, slightly — because power limits are reduced — but the system remains smooth and responsive for typical tasks like office work, media playback, web browsing, and light workloads.
2. Will it work on Ryzen laptops too?
Yes — as long as your Ryzen model supports power control via the System Management Unit (SMU).
3. What if I want to revert the changes?
Just disable the service:
sudo systemctl disable ryzenadj.service
sudo systemctl stop ryzenadj.service4. Can I use different values?
Absolutely. Smaller values lower power and temperature further, but may reduce performance more.
🏁 Conclusion
Using RyzenAdj on Ubuntu is one of the most effective ways to reduce high temperatures on Ryzen mini PCs without upgrading hardware. This solution is light, free, and ideal for compact, Linux-based environments — giving you quieter cooling and better thermal stability while keeping performance balanced.
Want to go deeper into self-hosted services and homelab setups?
Explore more Homelab & Self-Hosting guides here →






