refactor kernel module
This commit is contained in:
@@ -2,9 +2,8 @@
|
|||||||
nixos = {
|
nixos = {
|
||||||
boot = {
|
boot = {
|
||||||
kernel = {
|
kernel = {
|
||||||
extraBlacklistedModules = [];
|
variant = "latest";
|
||||||
extraKernelParams = [];
|
hardware = ["intel"];
|
||||||
variant = "stable";
|
|
||||||
};
|
};
|
||||||
loader = {
|
loader = {
|
||||||
default = {
|
default = {
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
nixos = {
|
nixos = {
|
||||||
boot = {
|
boot = {
|
||||||
kernel = {
|
kernel = {
|
||||||
extraBlacklistedModules = [];
|
|
||||||
extraKernelParams = [];
|
|
||||||
hardware = "amd";
|
|
||||||
variant = "latest";
|
variant = "latest";
|
||||||
|
hardware = ["amd"];
|
||||||
};
|
};
|
||||||
loader = {
|
loader = {
|
||||||
default = {
|
default = {
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
nixos = {
|
nixos = {
|
||||||
boot = {
|
boot = {
|
||||||
kernel = {
|
kernel = {
|
||||||
extraBlacklistedModules = [];
|
|
||||||
extraKernelParams = [];
|
|
||||||
hardware = "amd";
|
|
||||||
variant = "latest";
|
variant = "latest";
|
||||||
|
hardware = ["amd"];
|
||||||
};
|
};
|
||||||
loader = {
|
loader = {
|
||||||
default = {
|
default = {
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
nixos = {
|
nixos = {
|
||||||
boot = {
|
boot = {
|
||||||
kernel = {
|
kernel = {
|
||||||
extraBlacklistedModules = [];
|
|
||||||
extraKernelParams = [];
|
|
||||||
hardware = "nvidia";
|
|
||||||
variant = "latest";
|
variant = "latest";
|
||||||
|
hardware = ["nvidia"];
|
||||||
};
|
};
|
||||||
loader = {
|
loader = {
|
||||||
default = {
|
default = {
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
}: let
|
}: let
|
||||||
inherit (lib) mkOption types;
|
inherit (lib) mkOption types;
|
||||||
cfg = config.nixos.boot.kernel;
|
cfg = config.nixos.boot.kernel;
|
||||||
|
|
||||||
|
hasHardware = hw: builtins.elem hw cfg.hardware;
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
nixos.boot.kernel = {
|
nixos.boot.kernel = {
|
||||||
@@ -16,21 +18,21 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
hardware = mkOption {
|
hardware = mkOption {
|
||||||
type = types.enum ["amd" "nvidia"];
|
type = types.listOf (types.enum ["amd" "intel" "nvidia"]);
|
||||||
default = "";
|
default = [];
|
||||||
description = "Hardware type (GPU) configuration.";
|
description = "List of hardware types (e.g. GPU and CPU vendors) to configure kernel settings for.";
|
||||||
};
|
};
|
||||||
|
|
||||||
extraKernelParams = mkOption {
|
extraKernelParams = mkOption {
|
||||||
type = types.listOf lib.types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
description = "Additional kernel parameters.";
|
description = "Additional kernel parameters.";
|
||||||
};
|
};
|
||||||
|
|
||||||
extraBlacklistedModules = mkOption {
|
extraBlacklistedModules = mkOption {
|
||||||
type = types.listOf lib.types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
description = "Additional kernel nixos.to blacklist.";
|
description = "Additional kernel modules to blacklist.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -40,7 +42,7 @@ in {
|
|||||||
consoleLogLevel = 3;
|
consoleLogLevel = 3;
|
||||||
|
|
||||||
kernelPackages = let
|
kernelPackages = let
|
||||||
variant = cfg.variant or "latest"; # Ensure a default value
|
variant = cfg.variant or "latest";
|
||||||
in
|
in
|
||||||
if variant == "stable"
|
if variant == "stable"
|
||||||
then pkgs.linuxPackages
|
then pkgs.linuxPackages
|
||||||
@@ -51,28 +53,41 @@ in {
|
|||||||
else throw "Unknown kernel variant: ${variant}";
|
else throw "Unknown kernel variant: ${variant}";
|
||||||
|
|
||||||
kernelParams =
|
kernelParams =
|
||||||
[
|
["quiet" "splash"]
|
||||||
"quiet"
|
|
||||||
"splash"
|
|
||||||
]
|
|
||||||
++ (
|
++ (
|
||||||
if cfg.hardware == "amd"
|
if hasHardware "amd"
|
||||||
then ["amd_pstate=active"]
|
then ["amd_pstate=active"]
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
|
++ (
|
||||||
|
if hasHardware "intel"
|
||||||
|
then []
|
||||||
|
else []
|
||||||
|
)
|
||||||
|
++ (
|
||||||
|
if hasHardware "nvidia"
|
||||||
|
then []
|
||||||
|
else []
|
||||||
|
)
|
||||||
++ cfg.extraKernelParams;
|
++ cfg.extraKernelParams;
|
||||||
|
|
||||||
blacklistedKernelModules =
|
blacklistedKernelModules =
|
||||||
(
|
(
|
||||||
if cfg.hardware == "nvidia"
|
if hasHardware "amd"
|
||||||
|
then []
|
||||||
|
else []
|
||||||
|
)
|
||||||
|
++ (
|
||||||
|
if hasHardware "intel"
|
||||||
|
then []
|
||||||
|
else []
|
||||||
|
)
|
||||||
|
++ (
|
||||||
|
if hasHardware "nvidia"
|
||||||
then ["nouveau"]
|
then ["nouveau"]
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
++ cfg.extraBlacklistedModules;
|
++ cfg.extraBlacklistedModules;
|
||||||
};
|
};
|
||||||
|
|
||||||
# chaotic = mkIf (cfg.variant == "cachyos") {
|
|
||||||
# environment.systemPackages = [pkgs.scx.lavd];
|
|
||||||
# };
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user