[MIRROR] RTL8812AU/21AU and RTL8814AU driver with monitor mode and frame injection https://axenov.dev/как-установить-драйвер-wi-fi-адаптера-dexp-wfa-601-н/
Go to file
Linetkux Wang 41ea46fa15 Revert "Remove leftovers of Intel WIDI and take a general cleanup"
This reverts commit c7f8f6e363.
This commit is reverted because it introduces such issues as
monitor stops working. Before the issue is solved, we should
keep the code on main branch work
2024-07-02 14:10:04 +08:00
.github/workflows Fixed job name in raspberry action 2023-05-02 13:43:54 +02:00
android Add Android 10 docs/scripts to 'android' dir/collection 2024-05-10 06:56:08 +02:00
core Revert "Remove leftovers of Intel WIDI and take a general cleanup" 2024-07-02 14:10:04 +08:00
docs Upload more docs 2019-11-18 16:51:51 +01:00
hal Revert "Remove leftovers of Intel WIDI and take a general cleanup" 2024-07-02 14:10:04 +08:00
include Revert "Remove leftovers of Intel WIDI and take a general cleanup" 2024-07-02 14:10:04 +08:00
os_dep Revert "Remove leftovers of Intel WIDI and take a general cleanup" 2024-07-02 14:10:04 +08: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
dkms.conf Revert "Remove leftovers of Intel WIDI and take a general cleanup" 2024-07-02 14:10:04 +08: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 Revert "Remove leftovers of Intel WIDI and take a general cleanup" 2024-07-02 14:10:04 +08: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
save-log.sh Add logfile script 2024-05-10 06:56:54 +02:00

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