Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
R

RyzenAdj

> 编程语言
Open source

Adjust power management settings for Ryzen APUs

2.4K stars0 likes1 views
WebsiteGitHub

About

Adjust power management settings for Ryzen APUs

RyzenAdj

Adjust power management settings for Ryzen Mobile Processors. Based on: FlyGoat/ryzen_nb_smu

RyzenAdjUI_WPF by "JustSkill" is no longer maintained, for GUI please see Universal x86 Tuning Utility or ryzen-controller-team/ryzen-controller.

Usage

The command line interface is identical on both Windows and Unix-Like OS.

You should run it with Administrator on Windows or root on Linux.

You can write a shell script or bat to do it automatically.

…

Demo

If I'm going to set all the Power Limit to 45W, and Tctl to 90 °C, then the command line should be:

./ryzenadj --stapm-limit=45000 --fast-limit=45000 --slow-limit=45000 --tctl-temp=90

Documentation

  • Supported Models
  • Renoir Tuning Guide
  • Options
  • FAQ

Installation

You don't need to install RyzenAdj because it does not need configuration, everything is set via arguments However, some settings could get overwritten by power management features of your device, and you need to regularly set your values again.

We did provide some examples for automation. And these require configuration during installation.

Linux Installation

Because it is very easy to build the latest version of RyzenAdj on Linux, we don't provide precompiled packages for distributions. Just follow the build instructions below and you are ready to use it.

Windows Installation

Before you start installing anything, it is highly recommended getting familiar with RyzenAdj to find out what can be done on your device. Use the CLI ryzenadj.exe to test the support of your device and to benchmark the effects of each setting. If your values don't stay persistent you may want to consider installing our example script for automation.

  1. Prepare your favorite RyzenAdj arguments
  2. Copy the content of your RyzenAdj folder to the final destination
  3. Put your configuration into readjustService.ps1 and test it as administrator until everything works as expected
  4. Install readjustService.ps1 as Task for Windows Task Scheduler by running installServiceTask.bat

Deinstallation of the Task can be done via uninstallServiceTask.bat

Over Windows Task Scheduler you can check if it is running. It is called RyzenAdj below AMD folder. Or just run

SCHTASKS /query /TN "AMD\RyzenAdj"

Build

Build Requirements

Building this tool requires C & C++ compilers as well as cmake.

Linux

RyzenAdj needs elevated access to the NB config space. This can be achieved by using either one of these two methods:

  • Using libpci and exposing /dev/mem
  • Using the ryzen_smu kernel module

RyzenAdj will try ryzen_smu first, and then fallback to /dev/mem, if no compatible smu driver is found. The minimum supported version of ryzen_smu is 0.1.7 If no backend is available, RyzenAdj will fail initialization.

Please note that /dev/mem access may be restricted, for security reasons, in your kernel config

Please make sure that you have libpci dependency before compiling.

On Debian-based distros this is covered by installing pcilib-dev package:

bash
sudo apt install build-essential cmake libpci-dev

On Fedora:

bash
sudo dnf install cmake gcc-c++ pciutils-devel

On Arch:

bash
sudo pacman -S base-devel pciutils cmake

On OpenSUSE Tumbleweed:

bash
sudo zypper in cmake gcc14-c++ pciutils-devel

You may need to add the iomem=relaxed param to your kernel params on Tumbleweed, or you may run into errors at runtime.

If your Distribution is not supported, try finding the packages or use Distrobox or Toolbox instead.

The simplest way to build it:

bash
git clone https://github.com/FlyGoat/RyzenAdj.git
cd RyzenAdj
rm -r win32
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
if [ -d ~/.local/bin ]; then ln -s $(readlink -f ryzenadj) ~/.local/bin/ryzenadj && echo "symlinked to ~/.local/bin/ryzenadj"; fi
if [ -d ~/.bin ]; then ln -s $(readlink -f ryzenadj) ~/.bin/ryzenadj && echo "symlinked to ~/.bin/ryzenadj"; fi

Ryzen_smu

To let RyzenAdj use ryzen_smu module, you have to install it first, it is not part of the linux kernel.

On Fedora:

bash
sudo dnf install cmake gcc gcc-c++ dkms openssl

Clone and install ryzen_smu:

bash
git clone https://github.com/amkillam/ryzen_smu # Active fork of the original module
(cd ryzen_smu/ && sudo make dkms-install)

If you are using secure boot, you have to enroll the UEFI keys which dkms has generated on its first run. These have to be added to your machines UEFI key database. This can be done with following command, which will ask you to set a password. This password is only needed one single time later in the MOK manager.

bash
sudo mokutil --import /var/lib/dkms/mok.pub

Restart your system. This will boot into the MOK manager. Choose Enroll MOK, enter your password and then reboot. Here are some screenshots describing the process.

The module is now loaded and visible via dmesg. It will show a message about the kernel being tainted, but this just means it loaded a (potentially proprietary) binary blob.

Build and install RyzenAdj:

bash
git clone https://github.com/FlyGoat/RyzenAdj
cd RyzenAdj
cmake -B build -DCMAKE_BUILD_TYPE=Release
make -C build -j"$(nproc)"
sudo cp -v build/ryzenadj /usr/local/bin/

Windows

It can be built by Visual Studio + MSVC automatically, or Clang + Nmake in command line. However, as for now, MingW-gcc can't be used to compile for some reason.

Required dll is included in ./win32 of source tree. Please put the dll library and sys driver in the same folder with ryzenadj.exe.

We don't recommend you to build by yourself on Windows since the environment configuration is very complicated. If you would like to use ryzenadj functions in your program, see libryzenadj.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言