diff options
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/system/boot/stage-1.nix | 13 | ||||
-rw-r--r-- | nixos/modules/tasks/swraid.nix | 4 |
2 files changed, 16 insertions, 1 deletions
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix index e101bbfe72ce..2a0dd005e494 100644 --- a/nixos/modules/system/boot/stage-1.nix +++ b/nixos/modules/system/boot/stage-1.nix @@ -127,8 +127,8 @@ let cp -v ${udev}/lib/udev/rules.d/60-persistent-storage.rules $out/ cp -v ${udev}/lib/udev/rules.d/80-drivers.rules $out/ cp -v ${pkgs.lvm2}/lib/udev/rules.d/*.rules $out/ - cp -v ${pkgs.mdadm}/lib/udev/rules.d/*.rules $out/ cp -v ${pkgs.bcache-tools}/lib/udev/rules.d/*.rules $out/ + ${config.boot.initrd.extraUdevRulesCommands} for i in $out/*.rules; do substituteInPlace $i \ @@ -302,6 +302,17 @@ in ''; }; + boot.initrd.extraUdevRulesCommands = mkOption { + internal = true; + default = ""; + type = types.lines; + description = '' + Shell commands to be executed in the builder of the + udev-rules derivation. This can be used to add + additional udev rules in the initial ramdisk. + ''; + }; + boot.initrd.compressor = mkOption { internal = true; default = "gzip -9"; diff --git a/nixos/modules/tasks/swraid.nix b/nixos/modules/tasks/swraid.nix index 3b4aa9875f26..8e9728919718 100644 --- a/nixos/modules/tasks/swraid.nix +++ b/nixos/modules/tasks/swraid.nix @@ -8,4 +8,8 @@ boot.initrd.availableKernelModules = [ "md_mod" "raid0" "raid1" "raid456" ]; + boot.initrd.extraUdevRulesCommands = '' + cp -v ${pkgs.mdadm}/lib/udev/rules.d/*.rules $out/ + ''; + } |