1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 kernel,
6 kernelModuleMakeFlags,
7}:
8
9let
10 modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless/realtek/rtw89";
11in
12stdenv.mkDerivation {
13 pname = "rtw89";
14 version = "unstable-2022-12-18";
15
16 src = fetchFromGitHub {
17 owner = "lwfinger";
18 repo = "rtw89";
19 rev = "e834edfe8bee6e27e31c2f783817a9c13ff45665";
20 sha256 = "19ApYiEvA0E6qgf5XQc03paZ+ghjZL8JoC3vSYYw3xU=";
21 };
22
23 nativeBuildInputs = kernel.moduleBuildDependencies;
24 makeFlags = kernelModuleMakeFlags ++ [
25 "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
26 ];
27
28 enableParallelBuilding = true;
29
30 installPhase = ''
31 runHook preInstall
32
33 mkdir -p ${modDestDir}
34 find . -name '*.ko' -exec cp --parents {} ${modDestDir} \;
35 find ${modDestDir} -name '*.ko' -exec xz -f {} \;
36
37 runHook postInstall
38 '';
39
40 meta = with lib; {
41 description = "Driver for Realtek 8852AE, 8852BE, and 8853CE, 802.11ax devices";
42 homepage = "https://github.com/lwfinger/rtw89";
43 license = with licenses; [ gpl2Only ];
44 maintainers = with maintainers; [ tvorog ];
45 platforms = platforms.linux;
46 broken = kernel.kernelOlder "5.7";
47 priority = -1;
48 };
49}