diff --git a/modules/config/power-management.nix b/modules/config/power-management.nix index cb7047a2ba8..10aa821964a 100644 --- a/modules/config/power-management.nix +++ b/modules/config/power-management.nix @@ -91,6 +91,8 @@ in "p4_clockmod" ]; + powerManagement.cpuFreqGovernor = "ondemand"; + }; } diff --git a/modules/tasks/cpu-freq.nix b/modules/tasks/cpu-freq.nix index 6498b45a635..b7d9756db1b 100644 --- a/modules/tasks/cpu-freq.nix +++ b/modules/tasks/cpu-freq.nix @@ -6,7 +6,8 @@ with pkgs.lib; ###### interface options = { - cpuFreqGovernor = mkOption { + + powerManagement.cpuFreqGovernor = mkOption { default = ""; example = "ondemand"; description = '' @@ -15,13 +16,17 @@ with pkgs.lib; "userspace". ''; }; + }; ###### implementation - config = mkIf (config.cpuFreqGovernor != "") ({ - jobs.cpuFreq = + config = mkIf (config.powerManagement.cpuFreqGovernor != "") { + + environment.systemPackages = [ pkgs.cpufrequtils ]; + + jobs.cpufreq = { description = "Initialize CPU frequency governor"; startOn = "started udev"; @@ -30,10 +35,11 @@ with pkgs.lib; script = '' for i in $(seq 0 $(($(nproc) - 1))); do - ${pkgs.cpufrequtils}/bin/cpufreq-set -g ${config.cpuFreqGovernor} -c $i + ${pkgs.cpufrequtils}/bin/cpufreq-set -g ${config.powerManagement.cpuFreqGovernor} -c $i done ''; }; - }); + + }; }