diff --git a/modules/installer/cd-dvd/installation-cd-base.nix b/modules/installer/cd-dvd/installation-cd-base.nix index 564916d099fd..96d1faaad0f5 100644 --- a/modules/installer/cd-dvd/installation-cd-base.nix +++ b/modules/installer/cd-dvd/installation-cd-base.nix @@ -34,6 +34,7 @@ in ./iso-image.nix # Profiles of this basic installation CD. + ../../profiles/all-hardware.nix ../../profiles/base.nix ../../profiles/installation-device.nix ]; diff --git a/modules/installer/cd-dvd/system-tarball-pc.nix b/modules/installer/cd-dvd/system-tarball-pc.nix index 8b916b04fd90..6665122bec65 100644 --- a/modules/installer/cd-dvd/system-tarball-pc.nix +++ b/modules/installer/cd-dvd/system-tarball-pc.nix @@ -112,13 +112,14 @@ let in { - require = [ - ./system-tarball.nix + require = + [ ./system-tarball.nix - # Profiles of this basic installation. - ../../profiles/base.nix - ../../profiles/installation-device.nix - ]; + # Profiles of this basic installation. + ../../profiles/all-hardware.nix + ../../profiles/base.nix + ../../profiles/installation-device.nix + ]; # To speed up further installation of packages, include the complete stdenv # in the Nix store of the tarball. diff --git a/modules/profiles/all-hardware.nix b/modules/profiles/all-hardware.nix new file mode 100644 index 000000000000..02819cd0fd07 --- /dev/null +++ b/modules/profiles/all-hardware.nix @@ -0,0 +1,72 @@ +# 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. + +{ config, pkgs, ... }: + +{ + + # The initrd has to contain any module that might be necessary for + # mounting the CD/DVD. + 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_cs5520" "pata_cs5530" "pata_cs5535" "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_sc1200" "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. + "usb_storage" + + # Firewire support. Not tested. + "ohci1394" "sbp2" + + # Virtio (QEMU, KVM etc.) support. + "virtio_net" "virtio_pci" "virtio_blk" "virtio_balloon" "virtio_console" + + # Add vfat to enable people to copy the contents of the CD to a + # bootable USB stick. + "vfat" "nls_cp437" "nls_iso8859-1" + ]; + + boot.initrd.kernelModules = + [ # Wait for SCSI devices to appear. + "scsi_wait_scan" + ]; + + # Include lots of firmware. + require = + [ ../hardware/network/intel-4965agn.nix + ../hardware/network/intel-5000.nix + ../hardware/network/intel-6000.nix + ../hardware/network/intel-6000g2a.nix + ../hardware/network/intel-6000g2b.nix + ../hardware/network/broadcom-43xx.nix + ../hardware/network/zydas-zd1211.nix + ../hardware/video/radeon.nix + ]; + + networking.enableIntel2100BGFirmware = true; + networking.enableIntel2200BGFirmware = true; + networking.enableIntel3945ABGFirmware = true; + networking.enableRTL8192cFirmware = true; + +} diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index 5327728de399..534751f5ec7e 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -1,52 +1,6 @@ -{config, pkgs, ...}: +{ config, pkgs, ... }: { - - # The initrd has to contain any module that might be necessary for - # mounting the CD/DVD. - 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_cs5520" "pata_cs5530" "pata_cs5535" "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_sc1200" "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. - "usb_storage" - - # Firewire support. Not tested. - "ohci1394" "sbp2" - - # Virtio (QEMU, KVM etc.) support. - "virtio_net" "virtio_pci" "virtio_blk" "virtio_balloon" "virtio_console" - - # Add vfat to enable people to copy the contents of the CD to a - # bootable USB stick. - "vfat" "nls_cp437" "nls_iso8859-1" - ]; - - boot.initrd.kernelModules = - [ # Wait for SCSI devices to appear. - "scsi_wait_scan" - ]; - # Include some utilities that are useful for installing or repairing # the system. environment.systemPackages = [ diff --git a/modules/profiles/installation-device.nix b/modules/profiles/installation-device.nix index 10f47840e061..016eeff43e33 100644 --- a/modules/profiles/installation-device.nix +++ b/modules/profiles/installation-device.nix @@ -1,5 +1,5 @@ -# Provide a basic cponfiguration for installation devices like CDs. -{config, pkgs, modules, ...}: +# Provide a basic configuration for installation devices like CDs. +{ config, pkgs, modules, ... }: with pkgs.lib; @@ -152,7 +152,6 @@ in } ''; - # Allow sshd to be started manually through "start sshd". It should # not be started by default on the installation CD because the # default root password is empty.