[MIRROR] RTL8812AU/21AU and RTL8814AU driver with monitor mode and frame injection https://github.com/aircrack-ng/rtl8812au
 
 
 
 
Go to file
Ben Hutchings b3f7e7a428 Fix eth_hw_addr_set() definition for compatibility with stable branches
eth_hw_addr_set() was added in Linux 5.15 but has now been backported
to 4.19.291, 5.4.251, and 5.10.188.  This currently results in build
failure for these stable branches.

There's no simple way to test for the addition of this function since
LINUX_VERSION_CODE limits version components to 255.

Work around this by defining an inline function rtw_eth_hw_addr_set()
and a macro eth_hw_addr_set().  This effectively shadows any
backported definition of the eth_hw_addr_set() function without any
conflict.

Signed-off-by: Ben Hutchings <ben.hutchings@mind.be>
2023-11-07 20:52:16 +01:00
.github/workflows Fixed job name in raspberry action 2023-05-02 13:43:54 +02:00
android Upload 88XXau Android 10 docs/tools to 'docs/' 2019-11-14 19:37:17 +01:00
core Address warning in createbss_hdl() 2023-07-02 02:50:24 +02:00
docs Upload more docs 2019-11-18 16:51:51 +01:00
hal Revert "Some cleanup of unused chips" 2023-06-06 17:50:45 +02:00
include Fix eth_hw_addr_set() definition for compatibility with stable branches 2023-11-07 20:52:16 +01:00
os_dep Make use of MODULE_IMPORT_NS conditional 2023-11-07 20:52:16 +01:00
platform Add RHEL 8 support and support for possible work on future RHEL 2020-03-28 10:16:11 -05:00
tools Add signing to Makefile 2022-06-06 03:27:12 +02:00
.gitignore Ignore *.c.orig files 2019-11-14 11:24:35 +01:00
Kconfig fix Kconfig compatibility for kernel v5.9 2020-08-29 10:04:21 -07:00
LICENSE Uploading new v5.3.4 2018-08-25 18:21:32 +02:00
Makefile Add kernel v6.6 support 2023-10-29 16:29:30 +01:00
README.md updated readme flow 2022-06-23 11:24:52 -06:00
ReleaseNotes.pdf Upload ReleaseNotes.pdf from Realtek 2019-10-31 00:20:15 +01:00
dkms.conf Update dkms.conf 2023-05-01 22:05:54 +02:00

README.md

RTL8812AU/21AU and RTL8814AU Wireless drivers

Only for use with Linux & Android

Monitor mode Frame Injection GitHub version GitHub issues GitHub forks GitHub stars Build Status GitHub license
Kali Arch Armbian ArchLinux aircrack-ng wifite2

Important!

* Use "ip" and "iw" instead of "ifconfig" and "iwconfig"
     It's described further down, READ THE README!

IPERF3 benchmark

[Device] Alfa Networks AWUS036ACH
[Chipset] 88XXau (rtl8812au)
[Branch] v5.6.4.1
[Distance] 10m free sight

[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  11.6 MBytes  97.4 Mbits/sec    0   96.2 KBytes
[  5]   1.00-2.00   sec  11.2 MBytes  93.8 Mbits/sec    0    100 KBytes
[  5]   2.00-3.00   sec  11.2 MBytes  93.8 Mbits/sec    0    100 KBytes
[  5]   3.00-4.00   sec  11.2 MBytes  93.8 Mbits/sec    0    100 KBytes
[  5]   4.00-5.00   sec  11.2 MBytes  93.8 Mbits/sec    0    100 KBytes
[  5]   5.00-6.00   sec  11.4 MBytes  95.9 Mbits/sec    0    105 KBytes
[  5]   6.00-7.00   sec  11.2 MBytes  93.8 Mbits/sec    0    105 KBytes
[  5]   7.00-8.00   sec  11.3 MBytes  94.9 Mbits/sec    0    157 KBytes
[  5]   8.00-9.00   sec  11.2 MBytes  93.8 Mbits/sec    0    157 KBytes
[  5]   9.00-10.00  sec  11.2 MBytes  94.3 Mbits/sec    0    157 KBytes
[  5]  10.00-11.00  sec  11.2 MBytes  93.8 Mbits/sec    0    157 KBytes
[  5]  11.00-12.00  sec  11.2 MBytes  93.8 Mbits/sec    0    157 KBytes
[  5]  12.00-13.00  sec  11.2 MBytes  94.4 Mbits/sec    0    157 KBytes
[  5]  13.00-14.00  sec  11.2 MBytes  93.8 Mbits/sec    0    157 KBytes
[  5]  14.00-15.00  sec  11.2 MBytes  94.4 Mbits/sec    0    157 KBytes
[  5]  15.00-16.00  sec  10.9 MBytes  91.7 Mbits/sec    0    157 KBytes
[  5]  16.00-17.00  sec  11.2 MBytes  94.4 Mbits/sec    0    157 KBytes
[  5]  17.00-18.00  sec  11.2 MBytes  94.4 Mbits/sec    0    157 KBytes
[  5]  18.00-19.00  sec  11.2 MBytes  94.4 Mbits/sec    0    157 KBytes
[  5]  19.00-20.00  sec  11.2 MBytes  93.8 Mbits/sec    0    157 KBytes
[  5]  20.00-21.00  sec  11.2 MBytes  93.8 Mbits/sec    0    157 KBytes
[  5]  21.00-22.00  sec  11.2 MBytes  93.8 Mbits/sec    0    157 KBytes
[  5]  22.00-23.00  sec  11.2 MBytes  93.8 Mbits/sec    0    157 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-23.15  sec   260 MBytes  94.2 Mbits/sec    0             sender
[  5]   0.00-23.15  sec  0.00 Bytes  0.00 bits/sec                  receiver

DKMS

This driver can be installed using [DKMS]. This is a system which will automatically recompile and install a kernel module when a new kernel gets installed or updated. To make use of DKMS, install the dkms package, which on Debian (based) systems is done like this:

$ sudo apt-get install dkms

Download

$ git clone -b v5.6.4.2 https://github.com/aircrack-ng/rtl8812au.git
cd rtl*

Installation of Driver

In order to install the driver open a terminal in the directory with the source code and execute the following command:

$ sudo make dkms_install

Removal of Driver

In order to remove the driver from your system open a terminal in the directory with the source code and execute the following command:

$ sudo make dkms_remove

Make

For building & installing the driver with 'make' use

$ make && make install

Package / Build dependencies (Kali)

$ sudo apt-get update
$ sudo apt-get install bc mokutil build-essential libelf-dev linux-headers-`uname -r`

For Raspberry (RPI)

$ sudo apt-get install raspberrypi-kernel-headers

Then change the platform in Makefile to 32-bit ARM architecture (RPi 1/2/3/ & 0/Zero):

$ sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile
$ sed -i 's/CONFIG_PLATFORM_ARM_RPI = n/CONFIG_PLATFORM_ARM_RPI = y/g' Makefile

Or, for ARM64 (RPI 3B+, 4B and Zero2) you will need to run:

$ sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile
$ sed -i 's/CONFIG_PLATFORM_ARM64_RPI = n/CONFIG_PLATFORM_ARM64_RPI = y/g' Makefile

In addition, if you receive an error message about unrecognized command line option -mgeneral-regs-only (i.e., Raspbian Buster), you will need to run the following commands for ARM architecture, then retry building and installing:

$ export ARCH=arm
$ sed -i 's/^MAKE="/MAKE="ARCH=arm\ /' dkms.conf

Or, for ARM64 run the following before re-building:

$ export ARCH=arm64
$ sed -i 's/^MAKE="/MAKE="ARCH=arm64\ /' dkms.conf

Building the driver may exceed RAM on some RPi's resulting in a gcc: fatal error: Killed signal terminated program cc1 error. Swap space can be increased in /etc/dphys-swapfile e.g. to 2000 megabytes, followed by /etc/init.d/dphys-swapfile restart. Building on swap is very slow, however.

For setting monitor mode

  1. Fix problematic interference in monitor mode.
$ airmon-ng check kill

You may also uncheck the box "Automatically connect to this network when it is avaiable" in nm-connection-editor. This only works if you have a saved wifi connection.

  1. Set interface down
$ sudo ip link set wlan0 down
  1. Set monitor mode
$ sudo iw dev wlan0 set type monitor
  1. Set interface up
$ sudo ip link set wlan0 up

For setting TX power

$ sudo iw wlan0 set txpower fixed 3000

LED control

statically by module parameter in /etc/modprobe.d/8812au.conf or wherever, for example:

options 88XXau rtw_led_ctrl=0

value can be 0 or 1

or dynamically by writing to /proc/net/rtl8812au/$(your interface name)/led_ctrl, for example:

$ echo "0" > /proc/net/rtl8812au/$(your interface name)/led_ctrl

value can be 0 or 1

check current value:

$ cat /proc/net/rtl8812au/$(your interface name)/led_ctrl

USB Mode Switch

0: doesn't switch, 1: switch from usb2.0 to usb 3.0 2: switch from usb3.0 to usb 2.0

$ rmmod 88XXau
$ modprobe 88XXau rtw_switch_usb_mode=int (0: no switch 1: switch from usb2 to usb3 2: switch from usb3 to usb2)

NetworkManager

Newer versions of NetworkManager switches to random MAC address. Some users would prefer to use a fixed address. Simply add these lines below

[device]
wifi.scan-rand-mac-address=no

at the end of file /etc/NetworkManager/NetworkManager.conf and restart NetworkManager with the command:

$ sudo service NetworkManager restart

Credits / Contributors

Alfa Networks - https://www.alfa.com.tw/
Realtek.      - https://www.realtek.com
aircrack-ng   - https://www.aircrack-ng.org

astsam        - https://github.com/astsam
evilphish     - https://github.com/evilphish
fariouche     - https://github.com/fariouche
CGarces       - https://github.com/CGarces
ZerBea        - https://github.com/ZerBea
lwfinger      - https://github.com/lwfinger
Ulli-Kroll.   - https://github.com/Ulli-Kroll