diff --git a/flake.nix b/flake.nix index 5bf4d14..3a9c468 100644 --- a/flake.nix +++ b/flake.nix @@ -115,6 +115,30 @@ ]; } ); + + packages.aarch64-linux.genepi-installer-sd-image = nixos-generators.nixosGenerate { + specialArgs = { + inherit inputs; + inherit (import ./parts) keys; + }; + system = "aarch64-linux"; + format = "sd-aarch64-installer"; + modules = [ + nixos-hardware.nixosModules.raspberry-pi-4 + ./system/core + ./machines/genepi/network.nix + ./machines/genepi/hardware-configuration.nix + { networking.hostName = "genepi"; } + { sdImage.compressImage = false; } + { + nixpkgs.overlays = [ + (final: super: { + makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; }); + }) + ]; + } + ]; + }; }; inputs = { diff --git a/machines/genepi/boot.nix b/machines/genepi/boot.nix index a93d860..c6c7b80 100644 --- a/machines/genepi/boot.nix +++ b/machines/genepi/boot.nix @@ -8,12 +8,18 @@ ]; boot.loader = { - grub.enable = false; - generic-extlinux-compatible.enable = true; + generic-extlinux-compatible.enable = false; + efi.canTouchEfiVariables = true; + systemd-boot.enable = true; }; + nixpkgs.overlays = [ + (final: super: { + makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; }); + }) + ]; + boot.supportedFilesystems = [ - "btrfs" "vfat" ]; } diff --git a/machines/genepi/disko.nix b/machines/genepi/disko.nix index a1249bb..cdcf453 100644 --- a/machines/genepi/disko.nix +++ b/machines/genepi/disko.nix @@ -15,14 +15,10 @@ in content = { type = "gpt"; partitions = { - boot = { - type = "EF02"; - size = "1M"; - priority = 1; - }; ESP = { type = "EF00"; size = "512M"; + priority = 1; content = { type = "filesystem"; format = "vfat"; diff --git a/machines/genepi/hardware-configuration.nix b/machines/genepi/hardware-configuration.nix index efcb8ff..182d149 100644 --- a/machines/genepi/hardware-configuration.nix +++ b/machines/genepi/hardware-configuration.nix @@ -1,20 +1,20 @@ { inputs, pkgs, ... }: { imports = [ - # inputs.nixos-hardware.nixosModules.raspberry-pi-4 + inputs.nixos-hardware.nixosModules.raspberry-pi-4 ]; nixpkgs.hostPlatform = "aarch64-linux"; hardware.enableRedistributableFirmware = true; - # hardware = { - # raspberry-pi."4".apply-overlays-dtmerge.enable = true; - # deviceTree = { - # enable = true; - # filter = "*rpi-4-*.dtb"; - # }; - # }; + hardware = { + raspberry-pi."4".apply-overlays-dtmerge.enable = true; + deviceTree = { + enable = true; + filter = "*rpi-4-*.dtb"; + }; + }; environment.systemPackages = with pkgs; [ libraspberrypi