me like nix
1{ inputs, config, ... }:
2
3let
4 nm = config.flake.modules.nixos;
5in
6{
7 flake.nixosConfigurations.pi = inputs.nixpkgs.lib.nixosSystem {
8 system = "aarch64-linux";
9 modules = [
10 "${inputs.nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
11 inputs.nixos-hardware.nixosModules.raspberry-pi-4
12 inputs.agenix.nixosModules.default
13
14 # Allow missing kernel modules
15 ({
16 nixpkgs.overlays = [
17 (final: super: {
18 makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
19 })
20 ];
21 })
22
23 # Aspect modules
24 nm.pi-camera
25 nm.pi-wifi
26 nm.pi-stability
27
28 # Pi 4 specific settings
29 {
30 networking.hostName = "pi";
31
32 pi = {
33 streamName = "picam";
34 resolution = {
35 width = 1920;
36 height = 1080;
37 };
38 framerate = 30;
39 deviceTreeFilter = "bcm2711-rpi-4*.dtb";
40 deviceTreeCompatible = "brcm,bcm2711";
41 gpuMem = 256;
42 };
43
44 system.stateVersion = "24.11";
45 }
46 ];
47 };
48}