···12121313The kernel derivation created with `pkgs.buildLinux` exports an attribute `features` specifying whether optional functionality is or isn’t enabled. This is used in NixOS to implement kernel-specific behaviour.
14141515-:::{.example #ex-skip-package-from-kernel-feature}
1616-1717-# Skipping an external package because of a kernel feature
1818-1919-For instance, if the kernel has the `iwlwifi` feature (i.e., has built-in support for Intel wireless chipsets), then NixOS doesn’t have to build the external `iwlwifi` package:
2020-2121-```nix
2222-modulesTree = [kernel]
2323- ++ pkgs.lib.optional (!kernel.features ? iwlwifi) kernelPackages.iwlwifi
2424- ++ ...;
2525-```
2626-2727-:::
2828-2915If you are using a kernel packaged in Nixpkgs, you can customize it by overriding its arguments. For details on how each argument affects the generated kernel, refer to [the `pkgs.buildLinux` source code](https://github.com/NixOS/nixpkgs/blob/d77bda728d5041c1294a68fb25c79e2d161f62b9/pkgs/os-specific/linux/kernel/generic.nix).
30163117:::{.example #ex-overriding-kernel-derivation}