Collect firmware files using buildEnv
This commit is contained in:
parent
1c204258af
commit
740e835bc8
|
@ -7,6 +7,7 @@ pkgs:
|
|||
let
|
||||
inherit (pkgs)
|
||||
lib
|
||||
buildEnv
|
||||
buildLinux
|
||||
fetchFromGitHub
|
||||
gccStdenv
|
||||
|
@ -19,31 +20,15 @@ let
|
|||
inherit (pkgs) lib hostPlatform;
|
||||
};
|
||||
|
||||
firmwareCollection =
|
||||
runCommand "linux-firmware"
|
||||
{
|
||||
inherit firmware;
|
||||
firmwarePackages = with pkgs; [
|
||||
linux-firmware
|
||||
sof-firmware
|
||||
wireless-regdb
|
||||
];
|
||||
}
|
||||
''
|
||||
for dir in ''${firmwarePackages[@]}; do
|
||||
pushd "$dir/lib/firmware"
|
||||
|
||||
for fw in ''${firmware}; do
|
||||
if [ -e "$fw" ]; then
|
||||
local base="$(dirname "$fw")"
|
||||
mkdir -p "$out/lib/firmware/$base"
|
||||
ln -s "$dir/lib/firmware/$fw" "$out/lib/firmware/$base"
|
||||
fi
|
||||
done
|
||||
|
||||
popd
|
||||
done
|
||||
'';
|
||||
firmwareEnv = buildEnv {
|
||||
name = "linux-firmware";
|
||||
pathsToLink = [ "/lib/firmware" ];
|
||||
paths = with pkgs; [
|
||||
linux-firmware
|
||||
sof-firmware
|
||||
wireless-regdb
|
||||
];
|
||||
};
|
||||
in
|
||||
buildLinux rec {
|
||||
pname = "linux-hardened";
|
||||
|
@ -65,7 +50,7 @@ let
|
|||
// (import config args)
|
||||
// lib.optionalAttrs (firmware != [ ]) {
|
||||
EXTRA_FIRMWARE = lib.kernel.freeform (toString firmware);
|
||||
EXTRA_FIRMWARE_DIR = lib.kernel.freeform "${firmwareCollection}/lib/firmware";
|
||||
EXTRA_FIRMWARE_DIR = lib.kernel.freeform "${firmwareEnv}/lib/firmware";
|
||||
};
|
||||
|
||||
features = {
|
||||
|
|
Reference in a new issue