{ stdenv, lib, fetchFromGitHub, kernel }: let modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless/realtek/rtw88"; in stdenv.mkDerivation { pname = "rtw88"; version = "unstable-2023-07-23"; src = fetchFromGitHub { owner = "lwfinger"; repo = "rtw88"; rev = "9b6fe04a741a6b0a1edc5ca134927784bff033a5"; hash = "sha256-OzaIy+WTrljwAhC73wEIRUXrkz1NrGNJAS3zofQyV6E="; }; nativeBuildInputs = kernel.moduleBuildDependencies; makeFlags = kernel.makeFlags ++ [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; enableParallelBuilding = true; installPhase = '' runHook preInstall mkdir -p ${modDestDir} find . -name '*.ko' -exec cp --parents {} ${modDestDir} \; find ${modDestDir} -name '*.ko' -exec xz -f {} \; runHook postInstall ''; meta = with lib; { description = "Backport of the latest Realtek RTW88 driver from wireless-next for older kernels"; homepage = "https://github.com/lwfinger/rtw88"; license = with licenses; [ bsd3 gpl2Only ]; maintainers = with maintainers; [ tvorog atila ]; platforms = platforms.linux; broken = kernel.kernelOlder "4.20"; priority = -1; }; }