nixos-aarch64-images/flake.nix

49 lines
2.1 KiB
Nix

{
description = "Build NixOS images for various ARM single computer boards";
# pin this to unstable
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/master";
aarch64-linux-testing.url = "git+https://git.asonix.dog/asonix/aarch64-linux-testing.git";
};
outputs = { self, nixpkgs, aarch64-linux-testing }: {
packages.x86_64-linux =
let
pkgs = import nixpkgs {
system = "x86_64-linux";
};
aarch64Pkgs = import pkgs.path {
system = "aarch64-linux";
};
buildImage = pkgs.callPackage ./pkgs/build-image { };
aarch64Image = fdt: pkgs.callPackage ./pkgs/aarch64-image {
aarch64-image =
let
base-path = aarch64-linux-testing.images.installer fdt;
image-name = (aarch64-linux-testing.nixosConfigurations.installer fdt).config.sdImage.imageName;
in
"${base-path}/sd-image/${image-name}.zst";
};
rockchip = fdt: uboot: pkgs.callPackage ./images/rockchip.nix {
inherit fdt;
inherit uboot;
inherit aarch64Image buildImage;
};
quartzUBoots = aarch64Pkgs.callPackage ./pkgs/uboot-quartz64.nix { };
in
{
quartz64a = rockchip "rockchip/rk3566-quartz64-a.dtb" quartzUBoots.ubootQuartz64a;
quartz64b = rockchip "rockchip/rk3566-quartz64-b.dtb" quartzUBoots.ubootQuartz64b;
soquartz-model-a = rockchip "rockchip/rk3566-soquartz-model-a.dtb" quartzUBoots.ubootSoQuartz;
soquartz-cm4 = rockchip "rockchip/rk3566-soquartz-cm4.dtb" quartzUBoots.ubootSoQuartz;
soquartz-blade = rockchip "rockchip/rk3566-soquartz-blade.dtb" quartzUBoots.ubootSoQuartz;
rock64 = rockchip "rockchip/rk3328-rock64.dtb" aarch64Pkgs.ubootRock64;
rockPro64 = rockchip "rockchip/rk3399-rockpro64.dtb" aarch64Pkgs.ubootRockPro64;
rockPro64v2 = rockchip "rockchip/rk3399-rockpro64-v2.dtb" aarch64Pkgs.ubootRockPro64;
roc-pc-rk3399 = rockchip "rockchip/rk3399-roc-pc.dtb" aarch64Pkgs.ubootROCPCRK3399;
pinebookPro = rockchip "rockchipo/rk3399-pinebook-pro.dtb" aarch64Pkgs.ubootPinebookPro;
};
};
}