63 lines
1.5 KiB
Nix
63 lines
1.5 KiB
Nix
{
|
|
msitools,
|
|
tree,
|
|
fetchurl,
|
|
lib,
|
|
stdenv,
|
|
...
|
|
}:
|
|
|
|
stdenv.mkDerivation (
|
|
let
|
|
fw_files = [
|
|
"adsp_dtbs.elf"
|
|
"adspr.jsn"
|
|
"adsps.jsn"
|
|
"adspua.jsn"
|
|
"battmgr.jsn"
|
|
"cdsp_dtbs.elf"
|
|
"cdspr.jsn"
|
|
"qcadsp8380.mbn"
|
|
"qccdsp8380.mbn"
|
|
"qcdxkmsuc8380.mbn"
|
|
"bdwlan01.e0b"
|
|
];
|
|
|
|
in
|
|
|
|
rec {
|
|
name = "x1e80100-firmware";
|
|
version = "26100_25.101.12926.0";
|
|
src = fetchurl {
|
|
# https://www.microsoft.com/en-us/download/details.aspx?id=106120
|
|
url = "https://download.microsoft.com/download/b7ca2c3f-d320-4795-be0f-529a0117abb4/SurfaceLaptop7_ARM_Win11_${version}.msi";
|
|
hash = "sha256-4LVqkA4YwGrAh3gNSUQ5G2ahwBoj/5QvyFqvNgznvX4=";
|
|
};
|
|
nativeBuildInputs = [
|
|
msitools
|
|
tree
|
|
];
|
|
unpackPhase = ''
|
|
msiextract -C . "$src"
|
|
'';
|
|
buildPhase = ''
|
|
mkdir -p "$out/lib/firmware/qcom/x1e80100/microsoft/Romulus"
|
|
for file in ${lib.concatStringsSep " " fw_files}; do
|
|
echo -e "\tSearching for $file..."
|
|
fw_path=$(find . -type f -name "$file" -print | head -n 1)
|
|
if [[ -n "$fw_path" ]]; then
|
|
cp -v "$fw_path" "$out/lib/firmware/qcom/x1e80100/microsoft/Romulus/"
|
|
else
|
|
echo "Error: $file not found!"
|
|
exit 1
|
|
fi
|
|
done
|
|
cp "$out/lib/firmware/qcom/x1e80100/microsoft/Romulus/qcdxkmsuc8380.mbn" "$out/lib/firmware/qcom/x1e80100/microsoft/qcdxkmsuc8380.mbn"
|
|
'';
|
|
meta = {
|
|
platforms = [ "aarch64-linux" ];
|
|
};
|
|
|
|
}
|
|
)
|