diff options
author | K900 <me@0upti.me> | 2023-01-10 23:13:46 +0300 |
---|---|---|
committer | K900 <me@0upti.me> | 2023-01-10 23:13:46 +0300 |
commit | cd1c574ebe7297c6cb5d21ba0deb7acf5119d766 (patch) | |
tree | 8f0db58aa3df511a3de819716348461341dff9f5 /nixos | |
parent | ca0175017d980c74341cab3e1977b19a2f80bfd0 (diff) |
nixos/kernel: better docs for boot.kernelPatches
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/system/boot/kernel.nix | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/nixos/modules/system/boot/kernel.nix b/nixos/modules/system/boot/kernel.nix index b13e50cb17d2d..272f1b95fe64a 100644 --- a/nixos/modules/system/boot/kernel.nix +++ b/nixos/modules/system/boot/kernel.nix @@ -73,8 +73,45 @@ in boot.kernelPatches = mkOption { type = types.listOf types.attrs; default = []; - example = literalExpression "[ pkgs.kernelPatches.ubuntu_fan_4_4 ]"; - description = lib.mdDoc "A list of additional patches to apply to the kernel."; + example = literalExpression '' + [ + { + name = "foo"; + patch = ./foo.patch; + structuredExtraConfig.FOO = lib.kernel.yes; + features.foo = true; + } + ] + ''; + description = lib.mdDoc '' + A list of additional patches to apply to the kernel. + + Every item should be an attribute set with the following attributes: + + ```nix + { + name = "foo"; # descriptive name, required + + patch = ./foo.patch; # path or derivation that contains the patch source + # (required, but can be null if only config changes + # are needed) + + structuredExtraConfig = { # attrset of extra configuration parameters + FOO = lib.kernel.yes; # (without the CONFIG_ prefix, optional) + }; # values should generally be lib.kernel.yes or lib.kernel.no + + features = { # attrset of extra "features" the kernel is considered to have + foo = true; # (may be checked by other NixOS modules, optional) + }; + + extraConfig = "CONFIG_FOO y"; # extra configuration options in string form + # (deprecated, use structuredExtraConfig instead, optional) + } + ``` + + There's a small set of existing kernel patches in Nixpkgs, available as `pkgs.kernelPatches`, + that follow this format and can be used directly. + ''; }; boot.kernel.randstructSeed = mkOption { |