nixos/auto-epp: init
This commit is contained in:
parent
f8e9bffcfe
commit
b034425636
2 changed files with 81 additions and 0 deletions
|
@ -506,6 +506,7 @@
|
||||||
./services/hardware/argonone.nix
|
./services/hardware/argonone.nix
|
||||||
./services/hardware/asusd.nix
|
./services/hardware/asusd.nix
|
||||||
./services/hardware/auto-cpufreq.nix
|
./services/hardware/auto-cpufreq.nix
|
||||||
|
./services/hardware/auto-epp.nix
|
||||||
./services/hardware/bluetooth.nix
|
./services/hardware/bluetooth.nix
|
||||||
./services/hardware/bolt.nix
|
./services/hardware/bolt.nix
|
||||||
./services/hardware/brltty.nix
|
./services/hardware/brltty.nix
|
||||||
|
|
80
nixos/modules/services/hardware/auto-epp.nix
Normal file
80
nixos/modules/services/hardware/auto-epp.nix
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.auto-epp;
|
||||||
|
format = pkgs.formats.ini {};
|
||||||
|
|
||||||
|
inherit (lib) mkOption types;
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
services.auto-epp = {
|
||||||
|
enable = lib.mkEnableOption (lib.mdDoc "auto-epp for amd active pstate");
|
||||||
|
|
||||||
|
package = lib.mkPackageOptionMD pkgs "auto-epp" {};
|
||||||
|
|
||||||
|
settings = mkOption {
|
||||||
|
type = types.submodule {
|
||||||
|
freeformType = format.type;
|
||||||
|
options = {
|
||||||
|
Settings = {
|
||||||
|
epp_state_for_AC = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "balance_performance";
|
||||||
|
description = lib.mdDoc ''
|
||||||
|
energy_performance_preference when on plugged in
|
||||||
|
|
||||||
|
::: {.note}
|
||||||
|
See available epp states by running:
|
||||||
|
{command}`cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences`
|
||||||
|
:::
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
epp_state_for_BAT = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "power";
|
||||||
|
description = lib.mdDoc ''
|
||||||
|
`energy_performance_preference` when on battery
|
||||||
|
|
||||||
|
::: {.note}
|
||||||
|
See available epp states by running:
|
||||||
|
{command}`cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences`
|
||||||
|
:::
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
default = {};
|
||||||
|
description = lib.mdDoc ''
|
||||||
|
Settings for the auto-epp application.
|
||||||
|
See upstream example: <https://github.com/jothi-prasath/auto-epp/blob/master/sample-auto-epp.conf>
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
||||||
|
boot.kernelParams = [
|
||||||
|
"amd_pstate=active"
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.etc."auto-epp.conf".source = format.generate "auto-epp.conf" cfg.settings;
|
||||||
|
systemd.packages = [ cfg.package ];
|
||||||
|
|
||||||
|
systemd.services.auto-epp = {
|
||||||
|
after = [ "multi-user.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
description = "auto-epp - Automatic EPP Changer for amd-pstate-epp";
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
User = "root";
|
||||||
|
ExecStart = lib.getExe cfg.package;
|
||||||
|
Restart = "on-failure";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta.maintainers = with lib.maintainers; [ lamarios ];
|
||||||
|
}
|
Loading…
Reference in a new issue