This commit is contained in:
Tristan D. 2025-03-10 14:09:41 +01:00
parent 0989b0093a
commit 0e6ca7773a
Signed by: tristan
SSH key fingerprint: SHA256:9oFM1J63hYWJjCnLG6C0fxBS15rwNcWwdQNMOHYKJ/4
2 changed files with 66 additions and 65 deletions

View file

@ -17,79 +17,81 @@
${ryzenadj}/bin/ryzenadj --stapm-limit="$value" --fast-limit="$value" --slow-limit="$value" --tctl-temp=85 ${ryzenadj}/bin/ryzenadj --stapm-limit="$value" --fast-limit="$value" --slow-limit="$value" --tctl-temp=85
'') '')
]; ];
systemd = let systemd =
tcl = "85"; let
coall = "1048561"; # 1048561 = 0x100000 - 15(mV) $ math "0x100000-15" # slight undervolt tcl = "85";
defaults = "--tctl-temp=${tcl} --set-coall=${coall}"; coall = "1048561"; # 1048561 = 0x100000 - 15(mV) $ math "0x100000-15" # slight undervolt
in { defaults = "--tctl-temp=${tcl} --set-coall=${coall}";
services = { in
ryzenadj = { {
enable = false; services = {
description = "RyzenAdj Autoset"; ryzenadj = {
serviceConfig = { enable = false;
Type = "oneshot"; description = "RyzenAdj Autoset";
User = "root"; serviceConfig = {
ExecStart = "${pkgs.ryzenadj}/bin/ryzenadj ${defaults}"; Type = "oneshot";
User = "root";
ExecStart = "${pkgs.ryzenadj}/bin/ryzenadj ${defaults}";
};
wantedBy = [ "multi-user.target" ];
}; };
wantedBy = [ "multi-user.target" ];
};
desktop-power-maximum-tdp = { desktop-power-maximum-tdp = {
description = "Change TDP to maximum TDP when on AC power"; description = "Change TDP to maximum TDP when on AC power";
wantedBy = [ "ac.target" ]; wantedBy = [ "ac.target" ];
unitConfig = { unitConfig = {
RefuseManualStart = true; RefuseManualStart = true;
};
path = with pkgs; [
coreutils
ryzenadj
];
serviceConfig.Type = "oneshot";
preStart = "sleep 2";
script = ''
ryzenadj --stapm-limit=50000 --slow-limit=54000 --fast-limit=55000 ${defaults}
'';
}; };
path = with pkgs; [
coreutils portable-power-saving-tdp = {
ryzenadj description = "Change TDP to power saving TDP when on battery power";
]; wantedBy = [ "battery.target" ];
serviceConfig.Type = "oneshot"; unitConfig = { RefuseManualStart = true; };
preStart = "sleep 2"; path = with pkgs; [
script = '' coreutils
ryzenadj --stapm-limit=50000 --slow-limit=54000 --fast-limit=55000 ${defaults} ryzenadj
];
serviceConfig.Type = "oneshot";
preStart = "sleep 2";
script = ''
ryzenadj --stapm-limit=10000 --slow-limit=15000 --fast-limit=30000 ${defaults}
'';
};
# Do not manage HID devices to prevent annoying keyboard/mouse sleeps
powertop.postStart = ''
HIDDEVICES=$(ls /sys/bus/usb/drivers/usbhid | grep -oE '^[0-9]+-[0-9\.]+' | sort -u)
for i in $HIDDEVICES; do
echo -n "Enabling " | cat - /sys/bus/usb/devices/$i/product
echo 'on' > /sys/bus/usb/devices/$i/power/control
done
''; '';
}; };
portable-power-saving-tdp = { targets = {
description = "Change TDP to power saving TDP when on battery power"; ac = {
wantedBy = [ "battery.target" ]; conflicts = [ "battery.target" ];
unitConfig = { RefuseManualStart = true; }; description = "On AC power";
path = with pkgs; [ unitConfig = { DefaultDependencies = "false"; };
coreutils };
ryzenadj
];
serviceConfig.Type = "oneshot";
preStart = "sleep 2";
script = ''
ryzenadj --stapm-limit=10000 --slow-limit=15000 --fast-limit=30000 ${defaults}
'';
};
# Do not manage HID devices to prevent annoying keyboard/mouse sleeps battery = {
powertop.postStart = '' conflicts = [ "ac.target" ];
HIDDEVICES=$(ls /sys/bus/usb/drivers/usbhid | grep -oE '^[0-9]+-[0-9\.]+' | sort -u) description = "On battery power";
for i in $HIDDEVICES; do unitConfig = { DefaultDependencies = "false"; };
echo -n "Enabling " | cat - /sys/bus/usb/devices/$i/product };
echo 'on' > /sys/bus/usb/devices/$i/power/control
done
'';
};
targets = {
ac = {
conflicts = [ "battery.target" ];
description = "On AC power";
unitConfig = { DefaultDependencies = "false"; };
};
battery = {
conflicts = [ "ac.target" ];
description = "On battery power";
unitConfig = { DefaultDependencies = "false"; };
}; };
}; };
};
services = { services = {
power-profiles-daemon.enable = true; power-profiles-daemon.enable = true;

View file

@ -237,7 +237,6 @@
systemd = { systemd = {
services = { services = {
# Do not manage HID devices with powertop to prevent annoying keyboard/mouse sleeps # Do not manage HID devices with powertop to prevent annoying keyboard/mouse sleeps
# powertop.postStart = '' # powertop.postStart = ''
# HIDDEVICES=$(ls /sys/bus/usb/drivers/usbhid | grep -oE '^[0-9]+-[0-9\.]+' | sort -u) # HIDDEVICES=$(ls /sys/bus/usb/drivers/usbhid | grep -oE '^[0-9]+-[0-9\.]+' | sort -u)