feat(uconsole): add cm5 cross-compiled nixosConfiguration

- New host: uconsole-cm5 (aarch64-linux, cross-built from x86_64)
- SSH authorizedKeys: gortium.main + ai-worker.main
- NetworkManager enabled (WiFi password via agenix later)
- Display: vc4/panel_cwu50/rp1_dsi with empty initrd
- Config.txt [pi5] section (not [cm5])
- Backlight fix service
- nixos-raspberrypi → gortium/cm5-cross-v1 fork (PR #197)
- nixpkgs-uconsole pinned to nixos-25.11 (kernel patch compat)

V3 branch saved as archive/uconsole-cm5-v3 (Reticulum/SDR/HAM config).
This commit is contained in:
2026-06-12 16:02:13 -04:00
parent 36359de6aa
commit 1f99ca0d37
3 changed files with 198 additions and 1 deletions

View File

@@ -12,10 +12,23 @@
url = "git+https://git.lix.systems/lix-project/lix?ref=main";
inputs.nixpkgs.follows = "nixpkgs";
};
# uConsole CM5 — pinned nixpkgs for kernel patch compatibility
nixpkgs-uconsole.url = "github:NixOS/nixpkgs/nixos-25.11";
nixos-uconsole = {
url = "github:nixos-uconsole/nixos-uconsole/v1.1.0";
inputs.nixpkgs.follows = "nixpkgs-uconsole";
};
nixos-raspberrypi = {
url = "github:gortium/nixos-raspberrypi/cm5-cross-v1";
inputs.nixpkgs.follows = "nixpkgs-uconsole";
};
self.submodules = true;
};
outputs = { self, nixpkgs, agenix, lix, ... }@inputs:
outputs = { self, nixpkgs, agenix, lix
, nixpkgs-uconsole, nixos-uconsole, nixos-raspberrypi
, ... }@inputs:
let
system = "x86_64-linux";
keys = import ./lib/keys.nix;
@@ -80,6 +93,48 @@
./hosts/cyt-pi/hardware-configuration.nix
];
};
# ============================================================
# uConsole CM5 — cross-compilé (build sur x86_64, run sur ARM)
# Approche incrémentale pour fixer l'écran
# ============================================================
uconsole-cm5 = nixpkgs-uconsole.lib.nixosSystem {
system = "aarch64-linux";
specialArgs = {
inherit self keys paths inputs;
nixos-raspberrypi = nixos-raspberrypi;
isCM4 = false;
};
modules = [
{
# Cross-compile : build sur x86_64, run sur aarch64
nixpkgs.buildPlatform = "x86_64-linux";
nixpkgs.hostPlatform = "aarch64-linux";
nixpkgs.config.allowUnfree = true;
boot.loader.raspberry-pi.bootloader = "kernel";
}
# nixos-raspberrypi — crée pkgs.rpi avec kernel/firmware cross-compilés
nixos-raspberrypi.nixosModules.nixpkgs-rpi
{
nixpkgs.overlays = [
nixos-raspberrypi.overlays.bootloader
nixos-raspberrypi.overlays.vendor-kernel
nixos-raspberrypi.overlays.vendor-firmware
nixos-raspberrypi.overlays.kernel-and-firmware
nixos-raspberrypi.overlays.vendor-pkgs
nixos-raspberrypi.overlays.pkgs
];
}
# nixos-uconsole CM5 modules
nixos-uconsole.nixosModules.kernel
nixos-uconsole.nixosModules.configtxt
(nixos-uconsole.nixosModules.cm { lib = nixpkgs-uconsole.lib; isCM4 = false; })
nixos-uconsole.nixosModules.base
# Notre config
./hosts/uconsole-cm5/configuration.nix
./hosts/uconsole-cm5/hardware-configuration.nix
];
};
};
devShells.${system}.default = devShell;
};