diff --git a/flake.nix b/flake.nix index 89c84d9..5c3f650 100644 --- a/flake.nix +++ b/flake.nix @@ -53,6 +53,7 @@ iso = ./nix/builders/iso/base.nix; qemu = ./nix/builders/qemu/base.nix; nanopc-t6 = ./nix/builders/nanopc-t6/base.nix; + rpi = ./nix/builders/rpi/base.nix; }; getCopyFlakeScript = @@ -315,6 +316,7 @@ t6 = base "aarch64" "nanopc-t6" ./nix/builders/nanopc-t6/builder.nix "raw"; iso = base "aarch64" "iso" ./nix/builders/iso/builder.nix "iso"; qemu = qemu-aarch64; + rpi = base "aarch64" "rpi" ./nix/builders/rpi/builder.nix "sd-aarch64"; }; x86_64-linux = { iso = base "x86_64" "iso" ./nix/builders/iso/builder.nix "iso"; diff --git a/nix/builders/rpi/base.nix b/nix/builders/rpi/base.nix new file mode 100644 index 0000000..ae42490 --- /dev/null +++ b/nix/builders/rpi/base.nix @@ -0,0 +1,16 @@ +{ lib, dbxRelease, arch, ... }: + +{ + hardware.enableRedistributableFirmware = lib.mkForce true; + boot.initrd.availableKernelModules = [ "xhci_pci" "usbhid" ]; + + fileSystems."/" = + { device = "/dev/disk/by-label/NIXOS_SD"; + fsType = "ext4"; + options = [ "noatime" ]; + }; + + # Need to use extlinux for rpi bootloader. + boot.loader.grub.enable = false; + boot.loader.generic-extlinux-compatible.enable = true; +} diff --git a/nix/builders/rpi/builder.nix b/nix/builders/rpi/builder.nix new file mode 100644 index 0000000..b2ee39e --- /dev/null +++ b/nix/builders/rpi/builder.nix @@ -0,0 +1,9 @@ +{ + arch, + dbxRelease, + ... +}: + +{ + sdImage.imageName = "dogebox-${dbxRelease}-${arch}.img"; +}