1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 kernel,
6 kernelModuleMakeFlags,
7 unstableGitUpdater,
8}:
9
10let
11 modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless/realtek/rtw88";
12in
13stdenv.mkDerivation {
14 pname = "rtw88";
15 version = "0-unstable-2025-09-05";
16
17 src = fetchFromGitHub {
18 owner = "lwfinger";
19 repo = "rtw88";
20 rev = "bb0ed9d5709afd30e928d2d11f7b650e03c8c72b";
21 hash = "sha256-ySIj9ZSIwdsn3WDFZ48xUGTFLA1BMU+hjvpDwifq4k4=";
22 };
23
24 nativeBuildInputs = kernel.moduleBuildDependencies;
25 makeFlags = kernelModuleMakeFlags ++ [
26 "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
27 ];
28
29 enableParallelBuilding = true;
30
31 installPhase = ''
32 runHook preInstall
33
34 mkdir -p ${modDestDir}
35 find . -name '*.ko' -exec cp --parents {} ${modDestDir} \;
36 find ${modDestDir} -name '*.ko' -exec xz -f {} \;
37
38 runHook postInstall
39 '';
40
41 passthru.updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
42
43 meta = with lib; {
44 description = "Backport of the latest Realtek RTW88 driver from wireless-next for older kernels";
45 homepage = "https://github.com/lwfinger/rtw88";
46 license = with licenses; [
47 bsd3
48 gpl2Only
49 ];
50 maintainers = with maintainers; [
51 tvorog
52 atila
53 ];
54 platforms = platforms.linux;
55 broken = kernel.kernelOlder "4.20";
56 priority = -1;
57 };
58}