From 1bac2c44ea84901f577009585f645f961c4ece57 Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Fri, 31 Jan 2025 20:54:49 +0100 Subject: [PATCH] Remove the script and just ryzenadj directly. --- modules/nixos/ryzenadj.nix | 8 +- modules/nixos/scripts/ryzenadj-service | 118 ------------------------- 2 files changed, 2 insertions(+), 124 deletions(-) delete mode 100755 modules/nixos/scripts/ryzenadj-service diff --git a/modules/nixos/ryzenadj.nix b/modules/nixos/ryzenadj.nix index 8a68919..35000f6 100644 --- a/modules/nixos/ryzenadj.nix +++ b/modules/nixos/ryzenadj.nix @@ -20,14 +20,10 @@ # Setup python service for ryzenadj systemd.services.ryzenadj = { enable = true; - - path = [pkgs.ryzenadj pkgs.python3]; - description = "Set my cpu power usage power to something more manageable."; - serviceConfig.Type = "simple"; - script = "python ${./scripts/ryzenadj-service} --stapm-limit 30000 --fast-limit 30000 --slow-limit 30000 --slow-time 60 --stapm-time 1000 --tctl-temp 80 --vrmmax-current 50000"; - + serviceConfig.Type = "oneshot"; wantedBy = ["multi-user.target"]; + script = "${pkgs.ryzenadj}/bin/ryzenadj --stapm-limit 30000 --fast-limit 30000 --slow-limit 30000 --slow-time 60 --stapm-time 1000 --tctl-temp 85 --vrmmax-current 46000"; }; }; } diff --git a/modules/nixos/scripts/ryzenadj-service b/modules/nixos/scripts/ryzenadj-service deleted file mode 100755 index b6317d5..0000000 --- a/modules/nixos/scripts/ryzenadj-service +++ /dev/null @@ -1,118 +0,0 @@ -#!/bin/env python3 - -import argparse -import os -import sys -import time -from ctypes import * - -lib_path = os.path.dirname(os.path.abspath(__file__)) -os.chdir(lib_path) - -lib = cdll.LoadLibrary("/usr/lib64/libryzenadj.so") - -# define ctype mappings for types which can not be mapped automatically -# ryzenadj tables -lib.init_ryzenadj.restype = c_void_p -lib.refresh_table.argtypes = [c_void_p] -# Stapm value and limit -lib.get_stapm_limit.restype = c_float -lib.get_stapm_limit.argtypes = [c_void_p] -# Slow limit and value -lib.get_slow_limit.restype = c_float -lib.get_slow_limit.argtypes = [c_void_p] -# Fast limit and value -lib.get_fast_limit.restype = c_float -lib.get_fast_limit.argtypes = [c_void_p] -# Slow time and value -lib.get_slow_time.restype = c_float -lib.get_slow_time.argtypes = [c_void_p] -# stapm time and value -lib.get_stapm_time.restype = c_float -lib.get_stapm_time.argtypes = [c_void_p] -# Vrm Max Current and value -lib.get_vrmmax_current.restype = c_float -lib.get_vrmmax_current.argtypes = [c_void_p] -# Tctl cpu temp -lib.get_tctl_temp.restype = c_float -lib.get_tctl_temp.argtypes = [c_void_p] - -ry = lib.init_ryzenadj() - -if not ry: - sys.exit("RyzenAdj could not get initialized") - -error_messages = { - -1: "{:s} is not supported on this family\n", - -3: "{:s} is not supported on this SMU\n", - -4: "{:s} is rejected by SMU\n", -} - - -def adjust(field, value): - function_name = "set_" + field - adjust_func = lib.__getattr__(function_name) - adjust_func.argtypes = [c_void_p, c_ulong] - res = adjust_func(ry, value) - if res: - error = error_messages.get(res, "{:s} did fail with {:d}\n") - sys.stderr.write(error.format(function_name, res)) - else: - print(f"Succesfully set {field} to {value}") - - -def enable(field): - function_name = "set_" + field - adjust_func = lib.__getattr__(function_name) - adjust_func.argtypes = [c_void_p] - res = adjust_func(ry) - if res: - error = error_messages.get(res, "{:s} did fail with {:d}\n") - sys.stderr.write(error.format(function_name, res)) - else: - print(f"Sucessfully enable {field}") - - -def set(args): - adjust("stapm_limit", args.stapm_limit) - adjust("fast_limit", args.fast_limit) - adjust("slow_limit", args.slow_limit) - adjust("slow_time", args.slow_time) - adjust("stapm_time", args.stapm_time) - adjust("tctl_temp", args.tctl_temp) - adjust("vrmmax_current", args.vrmmax_current) - enable("max_performance") - - -def loop(args): - set(args) - while True: - lib.refresh_table(ry) - current = round(lib.get_tctl_temp(ry)) - if current != 85: - set(args) - time.sleep(3) - - -def parse_args(): - parser = argparse.ArgumentParser( - prog="Ryzenadj Service", - description="Simple Ryzenadj python service to keep values set", - ) - parser.add_argument("--stapm-limit", action="store", required=True, type=int) - parser.add_argument("--fast-limit", action="store", required=True, type=int) - parser.add_argument("--slow-limit", action="store", required=True, type=int) - parser.add_argument("--slow-time", action="store", required=True, type=int) - parser.add_argument("--stapm-time", action="store", required=True, type=int) - parser.add_argument("--tctl-temp", action="store", required=True, type=int) - parser.add_argument("--vrmmax-current", action="store", required=True, type=int) - return parser.parse_args() - - -def main(): - args = parse_args() - loop(args) - - -if __name__ == "__main__": - main()