From c6f4a39eeeabfddf0d16fad8697dcf1ca1327b24 Mon Sep 17 00:00:00 2001 From: UGA Innovation Factory Date: Mon, 5 Jan 2026 11:58:38 -0500 Subject: [PATCH] fix: work on making the installer work offline --- hosts/boot.nix | 7 ++++++- hosts/types/nix-zima.nix | 2 +- installer/auto-install.nix | 17 ++++++++++++++++- inventory.nix | 2 ++ 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/hosts/boot.nix b/hosts/boot.nix index 73e8f6c..a186612 100644 --- a/hosts/boot.nix +++ b/hosts/boot.nix @@ -34,6 +34,11 @@ type = lib.types.str; description = "The main disk device to use for installation."; }; + useSwap = lib.mkOption { + type = lib.types.bool; + default = true; + description = "Whether to create and use a swap partition."; + }; swapSize = lib.mkOption { type = lib.types.str; description = "The size of the swap partition."; @@ -115,7 +120,7 @@ }; # Swap Partition (size configurable per host) - swap = { + swap = lib.mkIf config.athenix.host.filesystem.useSwap { name = "swap"; label = "swap"; size = config.athenix.host.filesystem.swapSize; diff --git a/hosts/types/nix-zima.nix b/hosts/types/nix-zima.nix index d065186..40a9cec 100644 --- a/hosts/types/nix-zima.nix +++ b/hosts/types/nix-zima.nix @@ -37,7 +37,7 @@ ]; # ========== Filesystem Configuration ========== - athenix.host.filesystem.swapSize = lib.mkDefault "0G"; + athenix.host.filesystem.useSwap = lib.mkDefault false; athenix.host.filesystem.device = lib.mkDefault "/dev/mmcblk0"; athenix.host.buildMethods = lib.mkDefault [ "installer-iso" ]; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; diff --git a/installer/auto-install.nix b/installer/auto-install.nix index 0bfc6e2..68640cc 100644 --- a/installer/auto-install.nix +++ b/installer/auto-install.nix @@ -13,6 +13,7 @@ ... }: { + # Ensure the entire system closure and all dependencies are included in the ISO environment.systemPackages = [ pkgs.git pkgs.bashInteractive @@ -20,6 +21,14 @@ targetSystem ]; + # Explicitly include the system closure in the ISO image to prevent any need to build or fetch + isoImage.contents = [ + { + source = targetSystem; + target = "/system"; + } + ]; + nixpkgs.hostPlatform = hostPlatform; systemd.services.auto-install = { @@ -45,7 +54,13 @@ ${diskoScript} echo ">>> Running nixos-install..." - nixos-install --no-root-passwd --system ${targetSystem} + # Use only local store - don't fetch from binary cache or build + nixos-install \ + --no-root-passwd \ + --root /mnt \ + --system ${targetSystem} \ + --option substitute false \ + --option build-use-sandbox false echo ">>> Done. Rebooting." systemctl reboot diff --git a/inventory.nix b/inventory.nix index edcbdc8..f292de7 100644 --- a/inventory.nix +++ b/inventory.nix @@ -139,6 +139,8 @@ }; }; + # ========== ZimaBoard Desktops ========== + # Creates: nix-zima1, nix-zima2, nix-zima3 nix-zima.devices = 3; # ========== Ephemeral/Netboot System ==========