summaryrefslogtreecommitdiffstats
path: root/nixos/modules/system/boot/kernel.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/system/boot/kernel.nix')
-rw-r--r--nixos/modules/system/boot/kernel.nix20
1 files changed, 13 insertions, 7 deletions
diff --git a/nixos/modules/system/boot/kernel.nix b/nixos/modules/system/boot/kernel.nix
index ed7226331d70..f391f7ae7662 100644
--- a/nixos/modules/system/boot/kernel.nix
+++ b/nixos/modules/system/boot/kernel.nix
@@ -194,31 +194,37 @@ in
config = mkMerge
[ (mkIf config.boot.initrd.enable {
- boot.initrd.availableKernelModules =
- [ # Note: most of these (especially the SATA/PATA modules)
+ boot.initrd.availableKernelModules = let
+ # Some modules apparently aren't present on our aarch64 (and maybe elsewhere).
+ maybeInitrdModules = lib.optionals (!pkgs.stdenv.hostPlatform.isAarch64);
+ in
+ # 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.
# Some SATA/PATA stuff.
- "ahci"
+ maybeInitrdModules [ "ahci" ]
+ ++ [
"sata_nv"
"sata_via"
"sata_sis"
"sata_uli"
"ata_piix"
"pata_marvell"
+ ]
# Standard SCSI stuff.
- "sd_mod"
- "sr_mod"
+ ++ maybeInitrdModules [ "sd_mod" ]
+ ++ [ "sr_mod" ]
# SD cards and internal eMMC drives.
- "mmc_block"
+ ++ maybeInitrdModules [ "mmc_block" ]
# Support USB keyboards, in case the boot fails and we only have
# a USB keyboard, or for LUKS passphrase prompt.
- "uhci_hcd"
+ ++ [ "uhci_hcd" ]
+ ++ maybeInitrdModules [
"ehci_hcd"
"ehci_pci"
"ohci_hcd"