# This module enables all hardware supported by NixOS: i.e., all # firmware is included, and all devices from which one may boot are # enabled in the initrd. Its primary use is in the NixOS installation # CDs. { pkgs, lib,... }: let platform = pkgs.stdenv.hostPlatform; in { # The initrd has to contain any module that might be necessary for # supporting the most important parts of HW like drives. boot.initrd.availableKernelModules = [ # SATA/PATA support. "ahci" "ata_piix" "sata_inic162x" "sata_nv" "sata_promise" "sata_qstor" "sata_sil" "sata_sil24" "sata_sis" "sata_svw" "sata_sx4" "sata_uli" "sata_via" "sata_vsc" "pata_ali" "pata_amd" "pata_artop" "pata_atiixp" "pata_efar" "pata_hpt366" "pata_hpt37x" "pata_hpt3x2n" "pata_hpt3x3" "pata_it8213" "pata_it821x" "pata_jmicron" "pata_marvell" "pata_mpiix" "pata_netcell" "pata_ns87410" "pata_oldpiix" "pata_pcmcia" "pata_pdc2027x" "pata_qdi" "pata_rz1000" "pata_serverworks" "pata_sil680" "pata_sis" "pata_sl82c105" "pata_triflex" "pata_via" "pata_winbond" # SCSI support (incomplete). "3w-9xxx" "3w-xxxx" "aic79xx" "aic7xxx" "arcmsr" # USB support, especially for booting from USB CD-ROM # drives. "uas" # SD cards. "sdhci_pci" # Firewire support. Not tested. "ohci1394" "sbp2" # Virtio (QEMU, KVM etc.) support. "virtio_net" "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_scsi" "virtio_balloon" "virtio_console" # VMware support. "mptspi" "vmxnet3" "vsock" ] ++ lib.optional platform.isx86 "vmw_balloon" ++ lib.optionals (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [ "vmw_vmci" "vmwgfx" "vmw_vsock_vmci_transport" # Hyper-V support. "hv_storvsc" ] ++ lib.optionals (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [ # Most of the following falls into two categories: # - early KMS / early display # - early storage (e.g. USB) support # Allows using framebuffer configured by the initial boot firmware "simplefb" # Allwinner support # Required for early KMS "sun4i-drm" "sun8i-mixer" # Audio, but required for kms # PWM for the backlight "pwm-sun4i" # Broadcom "vc4" ] ++ lib.optionals pkgs.stdenv.isAarch64 [ # Most of the following falls into two categories: # - early KMS / early display # - early storage (e.g. USB) support # Broadcom "pcie-brcmstb" # Rockchip "dw-hdmi" "dw-mipi-dsi" "rockchipdrm" "rockchip-rga" "phy-rockchip-pcie" "pcie-rockchip-host" # Misc. uncategorized hardware # Used for some platform's integrated displays "panel-simple" "pwm-bl" # Power supply drivers, some platforms need them for USB "axp20x-ac-power" "axp20x-battery" "pinctrl-axp209" "mp8859" # USB drivers "xhci-pci-renesas" # Misc "weak" dependencies "analogix-dp" "analogix-anx6345" # For DP or eDP (e.g. integrated display) ]; # Include lots of firmware. hardware.enableRedistributableFirmware = true; imports = [ ../hardware/network/zydas-zd1211.nix ]; }