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
27 # Pi 4 specific settings
28 {
29 networking.hostName = "pi";
30
31 pi = {
32 streamName = "picam";
33 resolution = {
34 width = 1920;
35 height = 1080;
36 };
37 framerate = 30;
38 deviceTreeFilter = "bcm2711-rpi-4*.dtb";
39 deviceTreeCompatible = "brcm,bcm2711";
40 gpuMem = 256;
41 };
42
43 system.stateVersion = "24.11";
44 }
45 ];
46 };
47}