This commit is contained in:
DavHau 2025-03-17 17:19:35 +01:00 committed by GitHub
commit 8e4da8e054
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 43 additions and 4 deletions

View file

@ -27,13 +27,13 @@ let
boards = [ "bcm2711" "bcm2712" ];
# Helpers for building the `pkgs.rpi-kernels' map.
rpi-kernel = { version, board }:
rpi-kernel = { version, board, pkgs ? final }:
let
kernel = builtins.getAttr version versions;
version-slug = builtins.replaceStrings [ "v" "_" ] [ "" "." ] version;
in
{
"${version}"."${board}" = (final.buildLinux {
"${version}"."${board}" = (pkgs.buildLinux {
modDirVersion = version-slug;
version = version-slug;
pname = "linux-rpi";
@ -72,9 +72,21 @@ let
'';
});
};
rpi-kernels = builtins.foldl'
(b: a: final.lib.recursiveUpdate b (rpi-kernel a))
{ };
rip-kernels-cross = buildSystem: builtins.foldl'
(b: a: final.lib.recursiveUpdate b (rpi-kernel (
a // {
pkgs = import final.pkgs.path {
system = buildSystem;
crossSystem = "aarch64-linux";
};
}
)))
{ };
in
{
# disable firmware compression so that brcm firmware can be found at
@ -112,11 +124,16 @@ in
} // {
# rpi kernels and firmware are available at
# `pkgs.rpi-kernels.<VERSION>.<BOARD>'.
# `pkgs.rpi-kernels.<VERSION>.<BOARD>'.
#
# For example: `pkgs.rpi-kernels.v6_6_78.bcm2712'
rpi-kernels = rpi-kernels (
final.lib.cartesianProduct
{ board = boards; version = (builtins.attrNames versions); }
);
rpi-kernels-cross = buildSystem: rip-kernels-cross buildSystem (
final.lib.cartesianProduct
{ board = boards; version = (builtins.attrNames versions); }
);
}