From 286d741f474ebeabae13574c508bcd214d115a72 Mon Sep 17 00:00:00 2001 From: Phil Dyer Date: Thu, 11 Apr 2024 11:46:59 +1000 Subject: [PATCH] nixos/ryzen-monitor-ng: init module A userspace tool for setting and getting AMD CPU power and performance parameters. The module adds `ryzen_monitor_ng` to `environment.systemPackages` and enables the `ryzen-smu` module, as `ryzen_monitor_ng` requires the `ryzen_smu` kernel module to function. --- nixos/modules/module-list.nix | 1 + nixos/modules/programs/ryzen-monitor-ng.nix | 35 +++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 nixos/modules/programs/ryzen-monitor-ng.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index aee2aa2ef489..1eaa9a4725b1 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -245,6 +245,7 @@ ./programs/regreet.nix ./programs/rog-control-center.nix ./programs/rust-motd.nix + ./programs/ryzen-monitor-ng.nix ./programs/screen.nix ./programs/seahorse.nix ./programs/sedutil.nix diff --git a/nixos/modules/programs/ryzen-monitor-ng.nix b/nixos/modules/programs/ryzen-monitor-ng.nix new file mode 100644 index 000000000000..cb0c391ce6b1 --- /dev/null +++ b/nixos/modules/programs/ryzen-monitor-ng.nix @@ -0,0 +1,35 @@ +{ pkgs +, config +, lib +, ... +}: +let + inherit (lib) mkEnableOption mkPackageOption mkIf; + cfg = config.programs.ryzen-monitor-ng; +in +{ + options = { + programs.ryzen-monitor-ng = { + enable = mkEnableOption '' + ryzen_monitor_ng, a userspace application for setting and getting Ryzen SMU (System Management Unit) parameters via the ryzen_smu kernel driver. + + Monitor power information of Ryzen processors via the PM table of the SMU. + + SMU Set and Get for many parameters and CO counts. + + https://github.com/mann1x/ryzen_monitor_ng + + WARNING: Damage cause by use of your AMD processor outside of official AMD specifications or outside of factory settings are not covered under any AMD product warranty and may not be covered by your board or system manufacturer's warranty + ''; + + package = mkPackageOption pkgs "ryzen-monitor-ng" {}; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + hardware.cpu.amd.ryzen-smu.enable = true; + }; + + meta.maintainers = with lib.maintainers; [ Cryolitia phdyellow ]; +}