1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 kernel,
6}:
7
8stdenv.mkDerivation {
9 pname = "rtl88xxau-aircrack";
10 version = "${kernel.version}-unstable-2024-04-09";
11
12 src = fetchFromGitHub {
13 owner = "aircrack-ng";
14 repo = "rtl8812au";
15 rev = "63cf0b4584aa8878b0fe8ab38017f31c319bde3d";
16 hash = "sha256-tDsI/ZzsQm9999EpCpDFArfEIg/ueUJEbSYESbGxd4A=";
17 };
18
19 nativeBuildInputs = kernel.moduleBuildDependencies;
20
21 hardeningDisable = [ "pic" ];
22
23 prePatch = ''
24 substituteInPlace ./Makefile \
25 --replace /lib/modules/ "${kernel.dev}/lib/modules/" \
26 --replace /sbin/depmod \# \
27 --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
28 '';
29
30 preInstall = ''
31 mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
32 '';
33
34 enableParallelBuilding = true;
35
36 meta = with lib; {
37 description = ''
38 Aircrack-ng kernel module for Realtek 88XXau network cards
39 (8811au, 8812au, 8814au and 8821au chipsets) with monitor mode and injection support.'';
40 homepage = "https://github.com/aircrack-ng/rtl8812au";
41 license = licenses.gpl2Only;
42 maintainers = [
43 maintainers.ja1den
44 maintainers.jethro
45 ];
46 platforms = [
47 "x86_64-linux"
48 "i686-linux"
49 "aarch64-linux"
50 ];
51 };
52}