mirror of
https://github.com/nix-community/raspberry-pi-nix.git
synced 2025-11-08 19:46:03 +01:00
`rpi-6.6.y` went from `6.6.67` to `6.6.74`. `rpi-6.12.y` went from `6.12.11` to `6.12.17`
91 lines
2.7 KiB
Nix
91 lines
2.7 KiB
Nix
{
|
|
description = "raspberry-pi nixos configuration";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
|
rpi-linux-stable-src = {
|
|
flake = false;
|
|
url = "github:raspberrypi/linux/stable_20241008";
|
|
};
|
|
rpi-linux-6_6_78-src = {
|
|
flake = false;
|
|
url = "github:raspberrypi/linux/rpi-6.6.y";
|
|
};
|
|
rpi-linux-6_12_17-src = {
|
|
flake = false;
|
|
url = "github:raspberrypi/linux/rpi-6.12.y";
|
|
};
|
|
rpi-firmware-src = {
|
|
flake = false;
|
|
url = "github:raspberrypi/firmware/1.20241008";
|
|
};
|
|
rpi-firmware-nonfree-src = {
|
|
flake = false;
|
|
url = "github:RPi-Distro/firmware-nonfree/bookworm";
|
|
};
|
|
rpi-bluez-firmware-src = {
|
|
flake = false;
|
|
url = "github:RPi-Distro/bluez-firmware/bookworm";
|
|
};
|
|
rpicam-apps-src = {
|
|
flake = false;
|
|
url = "github:raspberrypi/rpicam-apps/v1.5.2";
|
|
};
|
|
libcamera-src = {
|
|
flake = false;
|
|
url = "github:raspberrypi/libcamera/69a894c4adad524d3063dd027f5c4774485cf9db"; # v0.3.1+rpt20240906
|
|
};
|
|
libpisp-src = {
|
|
flake = false;
|
|
url = "github:raspberrypi/libpisp/v1.0.7";
|
|
};
|
|
};
|
|
|
|
outputs = srcs@{ self, ... }:
|
|
let
|
|
pinned = import srcs.nixpkgs {
|
|
system = "aarch64-linux";
|
|
overlays = with self.overlays; [ core libcamera ];
|
|
};
|
|
in
|
|
{
|
|
overlays = {
|
|
core = import ./overlays (builtins.removeAttrs srcs [ "self" ]);
|
|
libcamera = import ./overlays/libcamera.nix (builtins.removeAttrs srcs [ "self" ]);
|
|
};
|
|
nixosModules = {
|
|
raspberry-pi = import ./rpi {
|
|
inherit pinned;
|
|
core-overlay = self.overlays.core;
|
|
libcamera-overlay = self.overlays.libcamera;
|
|
};
|
|
sd-image = import ./sd-image;
|
|
};
|
|
nixosConfigurations = {
|
|
rpi-example = srcs.nixpkgs.lib.nixosSystem {
|
|
system = "aarch64-linux";
|
|
modules = [ self.nixosModules.raspberry-pi self.nixosModules.sd-image ./example ];
|
|
};
|
|
};
|
|
checks.aarch64-linux = self.packages.aarch64-linux;
|
|
packages.aarch64-linux = with pinned.lib;
|
|
let
|
|
kernels =
|
|
foldlAttrs f { } pinned.rpi-kernels;
|
|
f = acc: kernel-version: board-attr-set:
|
|
foldlAttrs
|
|
(acc: board-version: drv: acc // {
|
|
"linux-${kernel-version}-${board-version}" = drv;
|
|
})
|
|
acc
|
|
board-attr-set;
|
|
in
|
|
{
|
|
example-sd-image = self.nixosConfigurations.rpi-example.config.system.build.sdImage;
|
|
firmware = pinned.raspberrypifw;
|
|
libcamera = pinned.libcamera;
|
|
wireless-firmware = pinned.raspberrypiWirelessFirmware;
|
|
uboot-rpi-arm64 = pinned.uboot-rpi-arm64;
|
|
} // kernels;
|
|
};
|
|
}
|