diff --git a/pkgs/os-specific/linux/firmware/rtw89-firmware/default.nix b/pkgs/os-specific/linux/firmware/rtw89-firmware/default.nix new file mode 100644 index 00000000000..8e71770df9c --- /dev/null +++ b/pkgs/os-specific/linux/firmware/rtw89-firmware/default.nix @@ -0,0 +1,25 @@ +{ stdenvNoCC, lib, linuxPackages }: + +stdenvNoCC.mkDerivation { + pname = "rtw89-firmware"; + inherit (linuxPackages.rtw89) version src; + + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib/firmware/rtw89 + cp *.bin $out/lib/firmware/rtw89 + + runHook postInstall + ''; + + meta = with lib; { + description = "Driver for Realtek 8852AE, an 802.11ax device"; + homepage = "https://github.com/lwfinger/rtw89"; + license = licenses.unfreeRedistributableFirmware; + maintainers = with maintainers; [ tvorog ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/os-specific/linux/rtw89/default.nix b/pkgs/os-specific/linux/rtw89/default.nix new file mode 100644 index 00000000000..86ca72c537c --- /dev/null +++ b/pkgs/os-specific/linux/rtw89/default.nix @@ -0,0 +1,40 @@ +{ stdenv, lib, fetchFromGitHub, kernel }: + +let + modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless/realtek/rtw89"; +in +stdenv.mkDerivation { + pname = "rtw89"; + version = "unstable-2021-07-03"; + + src = fetchFromGitHub { + owner = "lwfinger"; + repo = "rtw89"; + rev = "cebafc6dc839e66c725b92c0fabf131bc908f607"; + sha256 = "1vw67a423gajpzd5d51bxnja1qpppx9x5ii2vcfkj6cbnqwr83af"; + }; + + 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 = " Driver for Realtek 8852AE, an 802.11ax device"; + homepage = "https://github.com/lwfinger/rtw89"; + license = with licenses; [ gpl2Only ]; + maintainers = with maintainers; [ tvorog ]; + platforms = platforms.linux; + broken = kernel.kernelOlder "5.4"; + priority = -1; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fa17692f12f..2e04bc25bb8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21004,6 +21004,8 @@ in rtw88 = callPackage ../os-specific/linux/rtw88 { }; rtlwifi_new = rtw88; + rtw89 = callPackage ../os-specific/linux/rtw89 { }; + openafs_1_8 = callPackage ../servers/openafs/1.8/module.nix { }; openafs_1_9 = callPackage ../servers/openafs/1.9/module.nix { }; # Current stable release; don't backport release updates! @@ -21600,6 +21602,8 @@ in rtw88-firmware = callPackage ../os-specific/linux/firmware/rtw88-firmware { }; + rtw89-firmware = callPackage ../os-specific/linux/firmware/rtw89-firmware { }; + s3ql = callPackage ../tools/backup/s3ql { }; sass = callPackage ../development/tools/sass { };