[MIRROR] RTL8812AU/21AU and RTL8814AU driver with monitor mode and frame injection https://axenov.dev/как-установить-драйвер-wi-fi-адаптера-dexp-wfa-601-н/
Go to file
2020-07-12 03:35:14 +00:00
android Upload 88XXau Android 10 docs/tools to 'docs/' 2019-11-14 19:37:17 +01:00
core Fix a possible NUMM dereference 2020-07-12 01:17:12 +00:00
docs Upload more docs 2019-11-18 16:51:51 +01:00
hal rtl8814a: do not overwrite sequence number of injected frames 2020-07-12 01:31:23 +00:00
include Fix wrong header guards - found by clang 2020-07-12 03:35:14 +00:00
os_dep Remove unused includes 2020-07-12 03:04:21 +00:00
platform Add RHEL 8 support and support for possible work on future RHEL 2020-03-28 10:16:11 -05:00
tools Fixed build/compile error + some compiler warnings + minor cleanup 2019-11-11 01:04:53 +01:00
.gitignore Ignore *.c.orig files 2019-11-14 11:24:35 +01:00
.travis.yml Add Travis check for GCC-10 2020-07-12 01:35:23 +00:00
dkms-install.sh Fox a kernel trace with hostapd + A minor tweak to 'dkms-install.sh' 2019-11-11 03:29:02 +01:00
dkms-remove.sh Fix new version + add our custom Makefile 2019-10-30 23:29:20 +00:00
dkms.conf Add checks for p->length and remove some goto statements 2020-07-12 00:33:50 +00:00
Kconfig Fix for RPI Raspian compilation 2019-11-11 15:56:22 +01:00
LICENSE Uploading new v5.3.4 2018-08-25 18:21:32 +02:00
Makefile Let the linker optimize things as it thinks is best 2020-07-12 01:00:31 +00:00
README.md Update README.md 2020-05-29 02:57:40 +02:00
ReleaseNotes.pdf Upload ReleaseNotes.pdf from Realtek 2019-10-31 00:20:15 +01:00

RTL8812AU/21AU and RTL8814AU 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!

* v5.3.4 is the stable branch, not this, but this does have
  better range then branches below + more fixes from Realtek

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

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 ./dkms-install.sh

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 ./dkms-remove.sh

Make

For building & installing the driver with 'make' use

$ make && make install

Notes

Download

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

Package / Build dependencies (Kali)

$ sudo apt-get update
$ sudo apt-get install build-essential bc libelf-dev 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 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

But for RPI 3B+ & 4B 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

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:

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

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