boot.kernelPatches

NixOS option

A list of additional patches to apply to the kernel. Every item should be an attribute set with the following attributes: { 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 without the CONFIG_ prefix FOO = lib.kernel.yes; # (optional) }; # values should generally be lib.kernel.yes, # lib.kernel.no or lib.kernel.module features = { # attrset of extra "features" the kernel is considered to have foo = true; # (may be checked by other NixOS modules, optional) }; extraConfig = "FOO y"; # extra configuration options in string form without the CONFIG_ prefix # (optional, multiple lines allowed to specify multiple options) # (deprecated, use structuredExtraConfig instead) } There’s a small set of existing kernel patches in Nixpkgs, available as pkgs.kernelPatches, that follow this format and can be used directly.

type: list of (attribute set)
Default
[ ]
Example
[
  {
    name = "foo";
    patch = ./foo.patch;
    structuredExtraConfig.FOO = lib.kernel.yes;
    features.foo = true;
  }
  {
    name = "foo-ml-mbox";
    patch = (fetchurl {
      url = "https://lore.kernel.org/lkml/19700205182810.58382-1-email@domain/t.mbox.gz";
      hash = "sha256-...";
    });
  }
]
declared in: nixos/modules/system/boot/kernel.nixView source on NixOS/nixpkgs →