xow_dongle-firmware: install extra firmware blob

This commit is contained in:
Fazzi
2025-05-29 09:55:05 +05:30
committed by Masum Reza
parent 4a065b44a0
commit 2e097f61e2
+26 -12
View File
@@ -4,36 +4,50 @@
fetchurl,
cabextract,
}:
stdenvNoCC.mkDerivation rec {
pname = "xow_dongle-firmware";
version = "2017-07";
version = "0-unstable-2025-04-22";
srcs = [
(fetchurl {
name = "xow_dongle.cab";
url = "http://download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/07/1cd6a87c-623f-4407-a52d-c31be49e925c_e19f60808bdcbfbd3c3df6be3e71ffc52e43261e.cab";
hash = "sha256-ZXNqhP9ANmRbj47GAr7ZGrY1MBnJyzIz3sq5/uwPbwQ=";
})
(fetchurl {
name = "xow_dongle_045e_02e6.cab";
url = "https://catalog.s.download.windowsupdate.com/d/msdownload/update/driver/drvs/2015/12/20810869_8ce2975a7fbaa06bcfb0d8762a6275a1cf7c1dd3.cab";
hash = "sha256-5jiKJ6dXVpIN5zryRo461V16/vWavDoLUICU4JHRnwg=";
})
];
sourceRoot = ".";
dontConfigure = true;
dontBuild = true;
src = fetchurl {
url = "http://download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/07/1cd6a87c-623f-4407-a52d-c31be49e925c_e19f60808bdcbfbd3c3df6be3e71ffc52e43261e.cab";
sha256 = "013g1zngxffavqrk5jy934q3bdhsv6z05ilfixdn8dj0zy26lwv5";
};
nativeBuildInputs = [ cabextract ];
sourceRoot = ".";
unpackPhase = ''
sources=($srcs)
unpackCmd = ''
cabextract -F FW_ACC_00U.bin ${src}
cabextract -F FW_ACC_00U.bin ''${sources[0]}
mv FW_ACC_00U.bin xow_dongle.bin
cabextract -F FW_ACC_00U.bin ''${sources[1]}
mv FW_ACC_00U.bin xow_dongle_045e_02e6.bin
'';
installPhase = ''
install -Dm644 FW_ACC_00U.bin ${placeholder "out"}/lib/firmware/xow_dongle.bin
install -Dm644 xow_dongle.bin $out/lib/firmware/xow_dongle.bin
install -Dm644 xow_dongle_045e_02e6.bin $out/lib/firmware/xow_dongle_045e_02e6.bin
'';
meta = with lib; {
description = "Xbox One wireless dongle firmware";
homepage = "https://www.xbox.com/en-NZ/accessories/adapters/wireless-adapter-windows";
license = licenses.unfree;
maintainers = with lib.maintainers; [ rhysmdnz ];
maintainers = with maintainers; [ rhysmdnz ];
platforms = platforms.linux;
};
}