{ ... }: { imports = [ ../hardware-configuration/baremetal.nix ../boot/efi.nix ../disko/baremetal.nix ../services/zfs/enable-service.nix ]; # Needed for real wifi/bluetooth/GPU firmware blobs and CPU microcode # updates (hardware-configuration/baremetal.nix's amd.updateMicrocode # keys off this) -- irrelevant on the linode/proxmox/lxc platforms, # which are all VMs with no real hardware to load firmware for. hardware.enableRedistributableFirmware = true; # AMD GPU: the amdgpu kernel driver autoloads from the PCI ID with no # extra boot.kernelModules entry needed; this is the userspace half -- # the dedicated Xorg driver (not just the generic modesetting fallback) # plus Mesa OpenGL/Vulkan (amdgpu/RADV), same firmware blobs as above. # 32-bit support is for compatibility with 32-bit apps/games. services.xserver.videoDrivers = [ "amdgpu" ]; hardware.graphics = { enable = true; enable32Bit = true; }; # The systemd-based initrd (default here since this host has a ZFS root -- # see modules/disko/baremetal.nix) locks the root account by default, so # sulogin refuses to hand over a shell if something in the initrd (e.g. # the ZFS pool import) fails and it drops to emergency mode -- confirmed # live: it just loops re-entering the target instead of prompting. This # only affects the pre-switch-root initrd shell, not the installed # system's own login, and is worth the tradeoff on a box already reachable # at the physical console. boot.initrd.systemd.emergencyAccess = true; }