diff --git a/hosts/types/nix-zima.nix b/hosts/types/nix-zima.nix new file mode 100644 index 0000000..d065186 --- /dev/null +++ b/hosts/types/nix-zima.nix @@ -0,0 +1,51 @@ +# ============================================================================ +# Desktop Configuration +# ============================================================================ +# Hardware and boot configuration for standard desktop workstations. +# Includes Intel CPU support and NVMe storage. + +{ inputs, ... }: +{ + config, + lib, + modulesPath, + ... +}: +{ + imports = [ + (import ../common.nix { inherit inputs; }) + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + # ========== Boot Configuration ========== + + boot.initrd.availableKernelModules = [ + "xhci_pci" # USB 3.0 support + "usb_storage" # USB storage devices + "sd_mod" # SD card support + "sdhci_pci" # SD card host controller + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; # Intel virtualization support + boot.extraModulePackages = [ ]; + boot.kernelParams = [ + "quiet" # Minimal boot messages + "splash" # Show Plymouth boot splash + "boot.shell_on_fail" # Emergency shell on boot failure + "udev.log_priority=3" # Reduce udev logging + "rd.systemd.show_status=auto" # Show systemd status during boot + ]; + + # ========== Filesystem Configuration ========== + athenix.host.filesystem.swapSize = lib.mkDefault "0G"; + athenix.host.filesystem.device = lib.mkDefault "/dev/mmcblk0"; + athenix.host.buildMethods = lib.mkDefault [ "installer-iso" ]; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + + # ========== Hardware Configuration ========== + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + + # ========== Software Profile ========== + athenix.sw.enable = lib.mkDefault true; + athenix.sw.type = lib.mkDefault "desktop"; +} diff --git a/inventory.nix b/inventory.nix index 0d1ab70..edcbdc8 100644 --- a/inventory.nix +++ b/inventory.nix @@ -139,6 +139,8 @@ }; }; + nix-zima.devices = 3; + # ========== Ephemeral/Netboot System ========== # Creates: nix-ephemeral1 nix-ephemeral.devices = 1;