switch to gortium/nixos-uconsole fork

This commit is contained in:
2026-06-13 23:15:53 -04:00
parent 6543de3a45
commit 3f985c72de

221
flake.nix
View File

@@ -12,19 +12,17 @@
url = "git+https://git.lix.systems/lix-project/lix?ref=main"; url = "git+https://git.lix.systems/lix-project/lix?ref=main";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# uConsole CM5 — pinned nixpkgs for kernel patch compatibility
nixpkgs-uconsole.url = "github:NixOS/nixpkgs/nixos-25.11"; nixpkgs-uconsole.url = "github:NixOS/nixpkgs/nixos-25.11";
nixos-uconsole = { nixos-uconsole = {
url = "github:nixos-uconsole/nixos-uconsole/v1.1.0"; url = "github:gortium/nixos-uconsole/cm5_fix";
inputs.nixpkgs.follows = "nixpkgs-uconsole"; inputs.nixpkgs.follows = "nixpkgs-uconsole";
inputs.nixos-raspberrypi.follows = "nixos-raspberrypi"; inputs.nixos-raspberrypi.follows = "nixos-raspberrypi";
}; };
nixos-raspberrypi = { nixos-raspberrypi = {
url = "github:gortium/nixos-raspberrypi/cm5-cross-v1"; url = "github:gortium/nixos-raspberrypi/cm5-cross-v1";
inputs.nixpkgs.follows = "nixpkgs-uconsole"; inputs.nixpkgs.follows = "nixpkgs-uconsole";
};
}; };
};
outputs = { self, nixpkgs, agenix, lix outputs = { self, nixpkgs, agenix, lix
, nixpkgs-uconsole, nixos-uconsole, nixos-raspberrypi , nixpkgs-uconsole, nixos-uconsole, nixos-raspberrypi
@@ -43,128 +41,109 @@
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system overlays; inherit system overlays;
config.allowUnfree = true; config.allowUnfree = true;
config.permittedInsecurePackages = [ config.permittedInsecurePackages = [ "openclaw-2026.3.12" ];
"openclaw-2026.3.12"
];
}; };
devShell = import ./shells/nix_dev.nix { devShell = import ./shells/nix_dev.nix {
inherit pkgs system agenix; inherit pkgs system agenix;
}; };
in in {
{ nixosConfigurations = {
nixosConfigurations = { lazyworkhorse = nixpkgs.lib.nixosSystem {
lazyworkhorse = nixpkgs.lib.nixosSystem { specialArgs = { inherit system self keys paths inputs; };
specialArgs = { inherit system self keys paths inputs; }; modules = [
modules = [ {
{ nixpkgs.overlays = overlays;
nixpkgs.overlays = overlays; nixpkgs.config.allowUnfree = true;
nixpkgs.config.allowUnfree = true; nixpkgs.config.rocmSupport = true;
nixpkgs.config.rocmSupport = true; nixpkgs.config.permittedInsecurePackages = [ "openclaw-2026.3.12" ];
nixpkgs.config.permittedInsecurePackages = [ nix.package = lix.packages.${system}.default;
"openclaw-2026.3.12" }
]; agenix.nixosModules.default
nix.package = lix.packages.${system}.default; ./hosts/lazyworkhorse/configuration.nix
} ./hosts/lazyworkhorse/hardware-configuration.nix
agenix.nixosModules.default ./modules/nixos/filesystem/hoardingcow-mount.nix
./hosts/lazyworkhorse/configuration.nix ./modules/nixos/services/docker_manager.nix
./hosts/lazyworkhorse/hardware-configuration.nix ./modules/nixos/services/open_code_server.nix
./modules/nixos/filesystem/hoardingcow-mount.nix ./modules/nixos/services/ollama_init_custom_models.nix
./modules/nixos/services/docker_manager.nix ./modules/nixos/services/openclaw_node.nix
./modules/nixos/services/open_code_server.nix ./modules/nixos/security/ai-worker-restricted.nix
./modules/nixos/services/ollama_init_custom_models.nix ./users/gortium.nix
./modules/nixos/services/openclaw_node.nix ./users/ai-worker.nix
./modules/nixos/security/ai-worker-restricted.nix ];
./users/gortium.nix
./users/ai-worker.nix
];
};
cyt-pi = nixpkgs.lib.nixosSystem {
specialArgs = { inherit self keys paths inputs; };
modules = [
{
nixpkgs.overlays = overlays;
nixpkgs.config.allowUnfree = true;
nixpkgs.hostPlatform = "aarch64-linux";
nix.package = lix.packages."aarch64-linux".default;
}
./hosts/cyt-pi/configuration.nix
./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 — pkgs.rpi + overlays standardisés
nixos-raspberrypi.nixosModules.nixpkgs-rpi
nixos-raspberrypi.nixosModules.raspberry-pi-5.base
nixos-raspberrypi.lib.inject-overlays
nixos-raspberrypi.lib.inject-overlays-global
# nixos-uconsole CM5 modules
nixos-uconsole.nixosModules.kernel
(nixos-uconsole.nixosModules.cm { lib = nixpkgs-uconsole.lib; isCM4 = false; })
nixos-uconsole.nixosModules.base
# Lix cross-compilé (lix.packages.aarch64-linux est natif → QEMU)
({ config, lib, pkgs, inputs, ... }: let
lix-cross = import inputs.nixpkgs-uconsole {
localSystem = { system = "x86_64-linux"; };
crossSystem = { system = "aarch64-linux"; };
overlays = [ inputs.lix.overlays.default ];
};
in { nix.package = lix-cross.lix; })
# agenix
agenix.nixosModules.default
# Notre config
./hosts/uconsole-cm5/configuration.nix
./hosts/uconsole-cm5/hardware-configuration.nix
];
};
}; };
devShells.${system}.default = devShell;
packages.${system} = { cyt-pi = nixpkgs.lib.nixosSystem {
# Image SD flashable pour uConsole CM5 (SSH + WiFi + clés) specialArgs = { inherit self keys paths inputs; };
# Usage : dd if=result of=/dev/sda bs=4M status=progress conv=fsync modules = [
uconsole-cm5-image = (nixos-raspberrypi.lib.nixosSystem { {
system = "aarch64-linux"; nixpkgs.overlays = overlays;
specialArgs = { nixpkgs.config.allowUnfree = true;
inherit self keys inputs; nixpkgs.hostPlatform = "aarch64-linux";
nixos-raspberrypi = nixos-raspberrypi; nix.package = lix.packages."aarch64-linux".default;
isCM4 = false; }
}; ./hosts/cyt-pi/configuration.nix
modules = [ ./hosts/cyt-pi/hardware-configuration.nix
{ ];
nixpkgs.buildPlatform = system; };
nixpkgs.hostPlatform = "aarch64-linux";
} uconsole-cm5 = nixpkgs-uconsole.lib.nixosSystem {
nixos-raspberrypi.nixosModules.nixpkgs-rpi system = "aarch64-linux";
nixos-raspberrypi.nixosModules.raspberry-pi-5.base specialArgs = {
nixos-raspberrypi.lib.inject-overlays-global inherit self keys paths inputs;
nixos-raspberrypi.nixosModules.sd-image nixos-raspberrypi = nixos-raspberrypi;
nixos-uconsole.nixosModules.kernel isCM4 = false;
(nixos-uconsole.nixosModules.cm { lib = nixpkgs-uconsole.lib; isCM4 = false; }) };
nixos-uconsole.nixosModules.base modules = [
agenix.nixosModules.default {
./hosts/uconsole-cm5/configuration.nix nixpkgs.buildPlatform = "x86_64-linux";
]; nixpkgs.hostPlatform = "aarch64-linux";
}).config.system.build.sdImage; nixpkgs.config.allowUnfree = true;
boot.loader.raspberry-pi.bootloader = "kernel";
}
nixos-raspberrypi.nixosModules.nixpkgs-rpi
# Patches are now in gortium/nixos-uconsole fork (cm5_fix branch)
nixos-raspberrypi.nixosModules.raspberry-pi-5.base
nixos-raspberrypi.lib.inject-overlays
nixos-raspberrypi.lib.inject-overlays-global
nixos-uconsole.nixosModules.uconsole-cm5
({ config, lib, pkgs, inputs, ... }: let
lix-cross = import inputs.nixpkgs-uconsole {
localSystem = { system = "x86_64-linux"; };
crossSystem = { system = "aarch64-linux"; };
overlays = [ inputs.lix.overlays.default ];
};
in { nix.package = lix-cross.lix; })
agenix.nixosModules.default
./hosts/uconsole-cm5/configuration.nix
./hosts/uconsole-cm5/hardware-configuration.nix
];
}; };
}; };
devShells.${system}.default = devShell;
packages.${system} = {
uconsole-cm5-image = (nixos-raspberrypi.lib.nixosSystem {
system = "aarch64-linux";
specialArgs = {
inherit self keys inputs;
nixos-raspberrypi = nixos-raspberrypi;
isCM4 = false;
};
modules = [
{
nixpkgs.buildPlatform = system;
nixpkgs.hostPlatform = "aarch64-linux";
}
nixos-raspberrypi.nixosModules.nixpkgs-rpi
nixos-raspberrypi.nixosModules.raspberry-pi-5.base
nixos-raspberrypi.lib.inject-overlays-global
nixos-raspberrypi.nixosModules.sd-image
nixos-uconsole.nixosModules.uconsole-cm5
agenix.nixosModules.default
./hosts/uconsole-cm5/configuration.nix
];
}).config.system.build.sdImage;
};
};
} }