refactor(deploy-rpi5): switch to nixos-hardware module

This commit is contained in:
Kiana Sheibani 2025-04-06 02:33:03 -04:00
parent a48005eec4
commit 7501370ae9
Signed by: toki
GPG key ID: 6CB106C25E86A9F7
3 changed files with 30 additions and 67 deletions

View file

@ -1,20 +1,6 @@
{ config, lib, ... }:
{
options.aether.deploy.rpi5 = {
_internal.kernelPackages = lib.mkOption {
type = lib.types.raw;
description = ''
Kernel package to use for Raspberry Pi 5 support.
'';
};
};
config =
let cfg = config.aether.deploy.rpi5;
in {
nixpkgs.system = "aarch64-linux";
boot.kernelPackages = cfg._internal.kernelPackages;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = false;
};
nixpkgs.system = "aarch64-linux";
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = false;
}

60
flake.lock generated
View file

@ -23,20 +23,6 @@
"type": "github"
}
},
"flake-compat": {
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"revCount": 57,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"forgejo-tokyo-night": {
"flake": false,
"locked": {
@ -72,13 +58,28 @@
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1743420942,
"narHash": "sha256-b/exDDQSLmENZZgbAEI3qi9yHkuXAXCPbormD8CSJXo=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "de6fc5551121c59c01e2a3d45b277a6d05077bc4",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixos-hardware",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1743448293,
"narHash": "sha256-bmEPmSjJakAp/JojZRrUvNcDX2R5/nuX6bm+seVaGhs=",
"lastModified": 1743583204,
"narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "77b584d61ff80b4cef9245829a6f1dfad5afdfa3",
"rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434",
"type": "github"
},
"original": {
@ -92,29 +93,8 @@
"inputs": {
"agenix": "agenix",
"forgejo-tokyo-night": "forgejo-tokyo-night",
"nixpkgs": "nixpkgs",
"rpi5-kernel": "rpi5-kernel"
}
},
"rpi5-kernel": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1704485878,
"narHash": "sha256-i7UH31IZyil99EUB5qnQJAiszFkea1B1yZf5pQEDIYg=",
"owner": "vriska",
"repo": "nix-rpi5",
"rev": "ac9942532e1dc2f825ad2aa3a6d31bfbd3b42eed",
"type": "gitlab"
},
"original": {
"owner": "vriska",
"repo": "nix-rpi5",
"type": "gitlab"
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs"
}
},
"systems": {

View file

@ -3,9 +3,7 @@ description = "Aether - web server configuration";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
rpi5-kernel.url = "gitlab:vriska/nix-rpi5";
rpi5-kernel.inputs.nixpkgs.follows = "nixpkgs";
nixos-hardware.url = "github:NixOS/nixos-hardware";
agenix.url = "github:ryantm/agenix";
agenix.inputs.nixpkgs.follows = "nixpkgs";
@ -15,7 +13,7 @@ inputs = {
forgejo-tokyo-night.flake = false;
};
outputs = inputs@{ self, nixpkgs, agenix, rpi5-kernel, ... }:
outputs = inputs@{ self, nixpkgs, nixos-hardware, agenix, ... }:
let
inherit (nixpkgs) lib;
@ -23,8 +21,7 @@ outputs = inputs@{ self, nixpkgs, agenix, rpi5-kernel, ... }:
# (Mostly used for injecting flake inputs)
extraConfig = {
deploy-rpi5 = {
aether.deploy.rpi5._internal.kernelPackages = lib.mkDefault
rpi5-kernel.legacyPackages.aarch64-linux.linuxPackages_rpi5;
imports = [ nixos-hardware.nixosModules.raspberry-pi-5 ];
};
};
@ -47,11 +44,11 @@ outputs = inputs@{ self, nixpkgs, agenix, rpi5-kernel, ... }:
(name: ./deploy/${lib.removePrefix "deploy-" name});
modulesWithCfg = builtins.mapAttrs (k: v: {
imports = [ v ];
} // extraConfig.${k} or {}) modules;
imports = [ v (extraConfig.${k} or {}) ];
}) modules;
deploymentsWithCfg = builtins.mapAttrs (k: v: {
imports = [ v ];
} // extraConfig.${k} or {}) deployments;
imports = [ v (extraConfig.${k} or {}) ];
}) deployments;
in {
nixosModules =
modulesWithCfg // deploymentsWithCfg // {