Skip to content
RTL8812AU/21AU and RTL8814AU driver with monitor mode and frame injection
Branch: v5.3.4
Clone or download
Pull request Compare This branch is 634 commits ahead, 48 commits behind astsam:master.
kimocoder Merge pull request #337 from visbs/patch-1
Update Makefile for uninstall
Latest commit 0439b50 Apr 23, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
core Testing a fix for P2P IE Apr 9, 2019
docs Added modprobe to disable powersave and autosuspend Apr 6, 2019
include Set CONFIG_IOCTL_CFG80211 in autoconf.h Apr 6, 2019
os_dep Trying another channel switching code Apr 7, 2019
platform Some pine64 board support added Apr 6, 2019
.gitignore Added .gitignore Jul 2, 2018
.travis.yml Add Travis CI integration Apr 5, 2019
Kconfig Uploading the v5.3.4 version Aug 24, 2018
LICENSE Uploading new v5.3.4 Aug 25, 2018
Makefile Update Makefile for uninstall Apr 23, 2019 Update Apr 5, 2019
Realtek_Changelog.txt Update Oct 5, 2018
dkms.conf Testing a fix for P2P IE Apr 9, 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 ./


For building & installing the driver with 'make' use

make install



git clone -b v5.3.4
cd rtl*

Package / Build dependencies (Kali)

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

For Raspberry (RPI)

sudo apt-get install bc raspberrypi-kernel-headers

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

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 wherever, for 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


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


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.