diff --git a/nixos/modules/system/boot/kernel.nix b/nixos/modules/system/boot/kernel.nix
index ed7226331d70..363d8e47a0ff 100644
--- a/nixos/modules/system/boot/kernel.nix
+++ b/nixos/modules/system/boot/kernel.nix
@@ -156,6 +156,16 @@ in
description = "List of modules that are always loaded by the initrd.";
};
+ boot.initrd.includeDefaultModules = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ This option, if set, adds a collection of default kernel modules
+ to and
+ .
+ '';
+ };
+
system.modulesTree = mkOption {
type = types.listOf types.path;
internal = true;
@@ -195,7 +205,8 @@ in
config = mkMerge
[ (mkIf config.boot.initrd.enable {
boot.initrd.availableKernelModules =
- [ # Note: most of these (especially the SATA/PATA modules)
+ optionals config.boot.initrd.includeDefaultModules ([
+ # Note: most of these (especially the SATA/PATA modules)
# shouldn't be included by default since nixos-generate-config
# detects them, but I'm keeping them for now for backwards
# compatibility.
@@ -235,10 +246,11 @@ in
# x86 RTC needed by the stage 2 init script.
"rtc_cmos"
- ];
+ ]);
boot.initrd.kernelModules =
- [ # For LVM.
+ optionals config.boot.initrd.includeDefaultModules [
+ # For LVM.
"dm_mod"
];
})