An undervolting utility for the 5800X3D CPU on Linux
  • Rust 55.2%
  • Nix 44.8%
Find a file
2025-04-16 22:22:58 +02:00
nix fix(nix): getExe of package 2025-04-16 22:22:58 +02:00
src fix: set core offset on each core in range 2024-10-31 20:37:13 +01:00
.envrc feat: add .envrc for direnv 2025-02-14 16:26:31 +01:00
.gitignore feat: add .envrc for direnv 2025-02-14 16:26:31 +01:00
Cargo.lock Initial commit 2024-10-31 05:28:17 +01:00
Cargo.toml Initial commit 2024-10-31 05:28:17 +01:00
flake.lock feat(nix): remove unnecessary flake-parts 2025-04-10 14:28:08 +02:00
flake.nix feat(nix): add overlay 2025-04-10 15:19:59 +02:00
LICENSE.md feat(license): add MIT license 2024-10-31 05:40:27 +01:00
README.md fix(docs): space to tabs 2024-10-31 10:54:00 +01:00

Undervolting utility

This is a small undervolting utility for the Vermeer Ryzen CPUs. Use with caution. Any core offset above 0 will be disregarded.

Requirements

  • A Linux system
  • Ryzen SMU
  • Rust ^1.81
  • Cargo ^1.81

Installation

The package can be installed through either cargo or nix.

Through cargo

cargo install --git https://github.com/nanoyaki/5800x3d-undervolt

Through nix flakes

Add the repo to your flake's inputs and optionally import the module. The package itself is provided under vermeer-undervolt.packages.<system>.default.

{
	inputs = {
		# ...
		vermeer-undervolt.url = "github:nanoyaki/5800x3d-undervolt/main";
		# ...
	};

	outputs = inputs@{ nixpkgs, vermeer-undervolt, ... }: {
		nixosConfigurations."some-hostname" = nixpkgs.lib.nixosSystem {
			# ...
			modules = [
				vermeer-undervolt.nixosModules.vermeer-undervolt
				# ...
			];
		};
	};
}

Usage

Make sure the Ryzen SMU kernel module is loaded.

vermeer-undervolt <core_count> <offset>

Core count should be 8 or less and offset doesn't seem to work below -30.