diff options
Diffstat (limited to 'nixos/modules/system/boot/kernel.nix')
-rw-r--r-- | nixos/modules/system/boot/kernel.nix | 20 |
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" |