From c216e71c0cf01042da7f608cfdd1b976ca4cfcc9 Mon Sep 17 00:00:00 2001 From: Christian B Date: Sat, 4 Aug 2018 19:16:54 +0200 Subject: [PATCH 1/5] Update README.md --- README.md | 53 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index c0a632d..b7b2ba1 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,25 @@ -# RTL8812AU/21AU and RTL8814AU drivers -# with monitor mode and frame injection +## RTL8812AU/21AU and RTL8814AU drivers +## with monitor mode and frame injection -## DKMS +### 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 install dkms ``` -## Installation of Driver +### 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 +### 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 +### Make For building & installing the rtl8812au/rtl8821au driver with 'make' use ``` make @@ -31,7 +31,7 @@ make RTL8814=1 make install RTL8814=1 ``` -## Notes +### Notes Download ``` git clone -b v5.2.20 https://github.com/aircrack-ng/rtl8812au.git @@ -72,15 +72,38 @@ For setting TX power sudo iw wlan0 set txpower fixed 3000 ``` -## LED Parameter -``` -We've added the "realtek-leds.conf" in build directory, -with this you may change the leds to -"2: Allways On", "1: Normal" or "0: Allways Off" with placing the file in "/etc/modprobe.d/ +### LED control -Manual modprobe will override this file if option value also included at the command line, e.g., -$ sudo modprobe -r 8812au -$ sudo modprobe 8812au rtw_led_ctrl=1 +Thanks to @dkadioglu and others for a start on this. + +#### You can now control LED behaviour statically by Makefile, for example: + +```sh +CONFIG_LED_ENABLE = n +``` +value can be y or n + +#### statically by module parameter in /etc/modprobe.d/8812au.conf or wherever, for example: + +```sh +options 8812au 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: + +```sh +$ echo "0" > /proc/net/rtl8812au/$(your interface name)/led_enable +``` +value can be 0 or 1 + +#### check current value: + +```sh +$ cat /proc/net/rtl8812au/$(your interface name)/led_enable +``` + +### NetworkManager Newer versions of NetworkManager switches to random MAC address. Some users would prefer to use a fixed address. Simply add these lines below From 6b80d7366928a14b919a25905a5dbd5e297feee2 Mon Sep 17 00:00:00 2001 From: kimocoder Date: Sat, 4 Aug 2018 20:06:34 +0200 Subject: [PATCH 2/5] fix USB3 mode switch for 8814au --- hal/rtl8814a/usb/usb_halinit.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/hal/rtl8814a/usb/usb_halinit.c b/hal/rtl8814a/usb/usb_halinit.c index a9c7e71..15c21ea 100644 --- a/hal/rtl8814a/usb/usb_halinit.c +++ b/hal/rtl8814a/usb/usb_halinit.c @@ -2004,16 +2004,14 @@ hal_ReadUsbModeSwitch_8814AU( IN BOOLEAN AutoloadFail ) { -#if 0 - if(AutoloadFail) - { - UsbModeSwitch_SetUsbModeMechOn(Adapter, _FALSE); - } + + HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter); + + if (AutoloadFail) + pHalData->EEPROMUsbSwitch = _FALSE; else - { - UsbModeSwitch_SetUsbModeMechOn(Adapter, ((PROMContent[8]&BIT1)>>1)); - } -#endif + /* check efuse 0x0E bit2 */ + pHalData->EEPROMUsbSwitch = (PROMContent[EEPROM_USB_MODE_8814A] & BIT1) >> 1; } static VOID From 79e44be3d0f0f761fdb076f56db2db40b28d7b1d Mon Sep 17 00:00:00 2001 From: kimocoder Date: Sat, 4 Aug 2018 20:09:03 +0200 Subject: [PATCH 3/5] adopt upstream: net: Fix inconsistent teardown --- os_dep/linux/ioctl_cfg80211.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c index 0f0adc9..156aa2c 100644 --- a/os_dep/linux/ioctl_cfg80211.c +++ b/os_dep/linux/ioctl_cfg80211.c @@ -4162,6 +4162,11 @@ static int rtw_cfg80211_add_monitor_if(_adapter *padapter, char *name, struct ne mon_ndev->type = ARPHRD_IEEE80211_RADIOTAP; strncpy(mon_ndev->name, name, IFNAMSIZ); mon_ndev->name[IFNAMSIZ - 1] = 0; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12 ,0)) + mon_ndev->needs_free_netdev = true; +#else + mon_ndev->destructor = rtw_ndev_destructor; +#endif #if (LINUX_VERSION_CODE > KERNEL_VERSION(4, 11, 8)) mon_ndev->priv_destructor = rtw_ndev_destructor; #else From 25f51888192e64da9ac2ebdad8c485dd8649ac8d Mon Sep 17 00:00:00 2001 From: kimocoder Date: Sat, 4 Aug 2018 20:12:29 +0200 Subject: [PATCH 4/5] fixed hardcoded stream count for 8814au --- hal/rtl8814a/rtl8814a_hal_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hal/rtl8814a/rtl8814a_hal_init.c b/hal/rtl8814a/rtl8814a_hal_init.c index c026546..6c2f471 100644 --- a/hal/rtl8814a/rtl8814a_hal_init.c +++ b/hal/rtl8814a/rtl8814a_hal_init.c @@ -6535,7 +6535,7 @@ u8 GetHalDefVar8814A(PADAPTER padapter, HAL_DEF_VARIABLE variable, void *pval) break; case HAL_DEF_RX_STBC: - *(u8*)pval = 1; + *(u8*)pval = 4; break; case HAL_DEF_EXPLICIT_BEAMFORMER: From f475f2ff7480e0ec215753c345067fb6b023ce4b Mon Sep 17 00:00:00 2001 From: kimocoder Date: Sat, 4 Aug 2018 20:18:01 +0200 Subject: [PATCH 5/5] Changed macro KSRC to be parametrizable instead of being hardcoded --- Makefile | 2 +- README.md | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Makefile b/Makefile index b4324ad..2c557d7 100755 --- a/Makefile +++ b/Makefile @@ -1037,7 +1037,7 @@ SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ | sed -e s/aarch64/arm64/ ) ARCH ?= $(SUBARCH) CROSS_COMPILE ?= KVER := $(shell uname -r) -KSRC := /lib/modules/$(KVER)/build +KSRC ?= /lib/modules/$(KVER)/build MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/ INSTALL_PREFIX := STAGINGMODDIR := /lib/modules/$(KVER)/kernel/drivers/staging diff --git a/README.md b/README.md index b7b2ba1..7839c69 100644 --- a/README.md +++ b/README.md @@ -74,8 +74,6 @@ sudo iw wlan0 set txpower fixed 3000 ### LED control -Thanks to @dkadioglu and others for a start on this. - #### You can now control LED behaviour statically by Makefile, for example: ```sh