Skip to content
No description, website, or topics provided.
Branch: v5.2.20
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
core More cleanup around testchip Mar 29, 2019
documents Upload more docs Feb 10, 2019
include fix for missing signal Mar 29, 2019
os_dep linux-5.2: disable fallback from rtw_select_queue May 15, 2019
platform Reduce some firmware load Dec 29, 2018
tools Upload APK tool Jan 28, 2019
.gitignore Added .gitignore Jul 2, 2018
.travis.yml Update CI to last mainline and LTS version May 22, 2019
Kconfig Kconfig alignement Aug 5, 2018
LICENSE Add LICENSE paper Jul 4, 2018
Makefile Enable CONFIG_USB2_EXTERNAL_POWER Jun 7, 2019 Add Arch to supporters OS Feb 10, 2019
Realtek_Changelog.txt Allow build for kernels with backported cfg80211 API Aug 8, 2018 sysctl restart Mar 28, 2019 Optimized Makefile + added DKMS Jul 2, 2018
dkms.conf Fix alloc stainfo code Mar 28, 2019
realtek_88XXau.conf Fix typo Feb 28, 2019

RTL8812AU/21AU and RTL8814AU drivers

Supports Realtek 8811, 8812, 8814 and 8821 chipsets

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


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

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 ./

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 ./

Build / Install with Make

For building & installing the driver with 'make' use

$ make
$ make install

Using hostapd?

Check the documents folder for more information on how to setup wpa_cli and hostapd support on these drivers.
For 802.11ac (high speed), the driver also needs to be loaded with:
"modprobe -r 88XXau" && "modprobe 88XXau rtw_vht_enable=2"

# For a bit more info on AP/STA mode configuration, see following links:

Download / Build / Install


$ git clone -b v5.2.20
$ cd rtl*

Package / Build dependencies (Kali)

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

For Raspberry (RPI 2/3) you will need kernel sources

$ wget "" -O /usr/bin/rpi-source
$ chmod 755 /usr/bin/rpi-source
$ rpi-source 

Then you need to download and compile the driver on the RPI

$ git clone -b v5.2.20
$ cd rtl*
$ make
$ cp 8812au.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
$ depmod -a
$ modprobe 88XXau

then run this step to change platform in Makefile, For RPI 2/3:

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

But for RPI 3 B+ you will need to run those below which builds the ARM64 arch driver:

$ 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

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
$ ip link set <wlan1> down
  1. Set monitor mode
$  airmon-ng start <wlan1>
$ iw dev <wlan1> set type monitor
  1. Set interface up
$ ip link set <wlan1> up

For setting TX power

$ iwconfig <wlan1> txpower 30
$ iw <wlan1> set txpower fixed 3000

LED control

You can now control LED behaviour statically by Makefile, for example:


value can be y or n

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

options 88XXau rtw_led_enable=0

value can be 0 or 1

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

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

value can be 0 or 1

check current value:

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

Testing / Debug

Check "documents" and "tools" folders for information
We also got a Android APK tool for debugging several chipsets


Newer versions of NetworkManager got some options you might want to disable. Simply add these lines into the NetworkManager.conf




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

$ sudo service NetworkManager restart
You can’t perform that action at this time.