Loading nixos/modules/module-list.nix +1 −0 Original line number Diff line number Diff line Loading @@ -172,6 +172,7 @@ ./programs/cpu-energy-meter.nix ./programs/command-not-found/command-not-found.nix ./programs/coolercontrol.nix ./programs/corefreq.nix ./programs/criu.nix ./programs/darling.nix ./programs/dconf.nix Loading nixos/modules/programs/corefreq.nix 0 → 100644 +42 −0 Original line number Diff line number Diff line { config, lib, pkgs, ... }: let cfg = config.programs.corefreq; kernelPackages = config.boot.kernelPackages; in { options = { programs.corefreq = { enable = lib.mkEnableOption "Whether to enable the corefreq daemon and kernel module"; package = lib.mkOption { type = lib.types.package; default = kernelPackages.corefreq; defaultText = lib.literalExpression "config.boot.kernelPackages.corefreq"; description = '' The corefreq package to use. ''; }; }; }; config = lib.mkIf cfg.enable { environment.systemPackages = [ cfg.package ]; boot.extraModulePackages = [ cfg.package ]; boot.kernelModules = [ "corefreqk" ]; # Create a systemd service for the corefreq daemon systemd.services.corefreq = { description = "CoreFreq daemon"; wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = lib.getExe' cfg.package "corefreqd"; }; }; }; } pkgs/os-specific/linux/corefreq/default.nix 0 → 100644 +48 −0 Original line number Diff line number Diff line { lib, stdenv, fetchFromGitHub, kernel, hostPlatform, # See the official readme for a list of optional flags: # https://github.com/cyring/CoreFreq/blob/master/README.md extraFlags ? [ ], }: stdenv.mkDerivation rec { pname = "corefreq"; version = "1.98.4"; src = fetchFromGitHub { owner = "cyring"; repo = "CoreFreq"; rev = version; hash = "sha256-ljo8EDoJmcdfVvC8s+Xbf5TsYruvSOU1OSYBPwQst1c="; }; nativeBuildInputs = kernel.moduleBuildDependencies; env.NIX_CFLAGS_COMPILE = "-I${src}/${hostPlatform.qemuArch}"; makeFlags = [ "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" "INSTALL_MOD_PATH=$(out)" ] ++ extraFlags; preInstall = '' mkdir -p $out/bin ''; installFlags = [ "PREFIX=$(out)" ]; meta = { description = "CPU monitoring and tuning software designed for 64-bit processors"; homepage = "https://github.com/cyring/CoreFreq"; license = lib.licenses.gpl2Only; maintainers = with lib.maintainers; [ mrene ]; mainProgram = "corefreq-cli"; platforms = [ "x86_64-linux" "aarch64-linux" ]; }; } pkgs/top-level/linux-kernels.nix +2 −0 Original line number Diff line number Diff line Loading @@ -528,6 +528,8 @@ in { turbostat = callPackage ../os-specific/linux/turbostat { }; corefreq = callPackage ../os-specific/linux/corefreq { }; trelay = callPackage ../os-specific/linux/trelay { }; universal-pidff = callPackage ../os-specific/linux/universal-pidff { }; Loading Loading
nixos/modules/module-list.nix +1 −0 Original line number Diff line number Diff line Loading @@ -172,6 +172,7 @@ ./programs/cpu-energy-meter.nix ./programs/command-not-found/command-not-found.nix ./programs/coolercontrol.nix ./programs/corefreq.nix ./programs/criu.nix ./programs/darling.nix ./programs/dconf.nix Loading
nixos/modules/programs/corefreq.nix 0 → 100644 +42 −0 Original line number Diff line number Diff line { config, lib, pkgs, ... }: let cfg = config.programs.corefreq; kernelPackages = config.boot.kernelPackages; in { options = { programs.corefreq = { enable = lib.mkEnableOption "Whether to enable the corefreq daemon and kernel module"; package = lib.mkOption { type = lib.types.package; default = kernelPackages.corefreq; defaultText = lib.literalExpression "config.boot.kernelPackages.corefreq"; description = '' The corefreq package to use. ''; }; }; }; config = lib.mkIf cfg.enable { environment.systemPackages = [ cfg.package ]; boot.extraModulePackages = [ cfg.package ]; boot.kernelModules = [ "corefreqk" ]; # Create a systemd service for the corefreq daemon systemd.services.corefreq = { description = "CoreFreq daemon"; wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = lib.getExe' cfg.package "corefreqd"; }; }; }; }
pkgs/os-specific/linux/corefreq/default.nix 0 → 100644 +48 −0 Original line number Diff line number Diff line { lib, stdenv, fetchFromGitHub, kernel, hostPlatform, # See the official readme for a list of optional flags: # https://github.com/cyring/CoreFreq/blob/master/README.md extraFlags ? [ ], }: stdenv.mkDerivation rec { pname = "corefreq"; version = "1.98.4"; src = fetchFromGitHub { owner = "cyring"; repo = "CoreFreq"; rev = version; hash = "sha256-ljo8EDoJmcdfVvC8s+Xbf5TsYruvSOU1OSYBPwQst1c="; }; nativeBuildInputs = kernel.moduleBuildDependencies; env.NIX_CFLAGS_COMPILE = "-I${src}/${hostPlatform.qemuArch}"; makeFlags = [ "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" "INSTALL_MOD_PATH=$(out)" ] ++ extraFlags; preInstall = '' mkdir -p $out/bin ''; installFlags = [ "PREFIX=$(out)" ]; meta = { description = "CPU monitoring and tuning software designed for 64-bit processors"; homepage = "https://github.com/cyring/CoreFreq"; license = lib.licenses.gpl2Only; maintainers = with lib.maintainers; [ mrene ]; mainProgram = "corefreq-cli"; platforms = [ "x86_64-linux" "aarch64-linux" ]; }; }
pkgs/top-level/linux-kernels.nix +2 −0 Original line number Diff line number Diff line Loading @@ -528,6 +528,8 @@ in { turbostat = callPackage ../os-specific/linux/turbostat { }; corefreq = callPackage ../os-specific/linux/corefreq { }; trelay = callPackage ../os-specific/linux/trelay { }; universal-pidff = callPackage ../os-specific/linux/universal-pidff { }; Loading