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)[ ]
[
{
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-...";
});
}
]