From f8a41f02c7a7c768f1e3996b590c2f2e6b4abfb4 Mon Sep 17 00:00:00 2001 From: Adam Brady Date: Tue, 22 Jul 2025 17:40:20 +0100 Subject: [PATCH] Add RaspberryPi as a build target --- flake.nix | 2 ++ nix/builders/rpi/base.nix | 16 ++++++++++++++++ nix/builders/rpi/builder.nix | 9 +++++++++ 3 files changed, 27 insertions(+) create mode 100644 nix/builders/rpi/base.nix create mode 100644 nix/builders/rpi/builder.nix 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"; +}