mirror of
https://github.com/chinawrj/rtl8812au
synced 2024-11-28 08:04:25 +00:00
Merge pull request #139 from kimocoder/v5.2.20
Fix injected frames drop + platform fixes
This commit is contained in:
commit
5bb1aacdc8
24
Makefile
24
Makefile
@ -157,6 +157,7 @@ CONFIG_PLATFORM_HISILICON = n
|
|||||||
CONFIG_PLATFORM_NV_TK1 = n
|
CONFIG_PLATFORM_NV_TK1 = n
|
||||||
CONFIG_PLATFORM_RTL8197D = n
|
CONFIG_PLATFORM_RTL8197D = n
|
||||||
CONFIG_PLATFORM_ARM_ODROIDC2 = n
|
CONFIG_PLATFORM_ARM_ODROIDC2 = n
|
||||||
|
CONFIG_PLATFORM_PPC = n
|
||||||
###############################################################
|
###############################################################
|
||||||
|
|
||||||
CONFIG_DRVEXT_MODULE = n
|
CONFIG_DRVEXT_MODULE = n
|
||||||
@ -1006,7 +1007,7 @@ EXTRA_CFLAGS += -DDM_ODM_SUPPORT_TYPE=0x04
|
|||||||
ifeq ($(CONFIG_PLATFORM_I386_PC), y)
|
ifeq ($(CONFIG_PLATFORM_I386_PC), y)
|
||||||
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
|
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
|
||||||
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
|
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
|
||||||
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
|
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ | sed -e s/aarch64/arm64/ )
|
||||||
ARCH ?= $(SUBARCH)
|
ARCH ?= $(SUBARCH)
|
||||||
CROSS_COMPILE ?=
|
CROSS_COMPILE ?=
|
||||||
KVER := $(shell uname -r)
|
KVER := $(shell uname -r)
|
||||||
@ -1263,13 +1264,15 @@ endif
|
|||||||
|
|
||||||
ifeq ($(CONFIG_PLATFORM_FS_MX61), y)
|
ifeq ($(CONFIG_PLATFORM_FS_MX61), y)
|
||||||
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
|
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
|
||||||
|
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
|
||||||
ARCH := arm
|
ARCH := arm
|
||||||
CROSS_COMPILE := /home/share/CusEnv/FreeScale/arm-eabi-4.4.3/bin/arm-eabi-
|
CROSS_COMPILE ?=
|
||||||
KSRC ?= /home/share/CusEnv/FreeScale/FS_kernel_env
|
KVER ?= $(shell uname -r)
|
||||||
|
KSRC := /lib/modules/$(KVER)/build
|
||||||
|
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
|
||||||
|
INSTALL_PREFIX :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_PLATFORM_ACTIONS_ATJ227X), y)
|
ifeq ($(CONFIG_PLATFORM_ACTIONS_ATJ227X), y)
|
||||||
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ACTIONS_ATJ227X
|
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ACTIONS_ATJ227X
|
||||||
ARCH := mips
|
ARCH := mips
|
||||||
@ -1512,6 +1515,17 @@ CROSS_COMPILE := /home/android_sdk/Allwinner/a20/kitkat-a20_v4.4/lichee/out/andr
|
|||||||
KSRC := /home/android_sdk/Allwinner/a20/kitkat-a20_v4.4/lichee/linux-3.4
|
KSRC := /home/android_sdk/Allwinner/a20/kitkat-a20_v4.4/lichee/linux-3.4
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_PLATFORM_PPC), y)
|
||||||
|
EXTRA_CFLAGS += -DCONFIG_BIG_ENDIAN
|
||||||
|
SUBARCH := $(shell uname -m | sed -e s/ppc/powerpc/)
|
||||||
|
ARCH ?= $(SUBARCH)
|
||||||
|
CROSS_COMPILE ?=
|
||||||
|
KVER ?= $(shell uname -r)
|
||||||
|
KSRC := /lib/modules/$(KVER)/build
|
||||||
|
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
|
||||||
|
INSTALL_PREFIX :=
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_PLATFORM_ARM_SUN8I_W3P1), y)
|
ifeq ($(CONFIG_PLATFORM_ARM_SUN8I_W3P1), y)
|
||||||
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
|
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
|
||||||
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN8I
|
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUN8I
|
||||||
|
@ -4221,6 +4221,21 @@ int rtw_ieee80211_radiotap_iterator_init(
|
|||||||
int max_length, const struct ieee80211_radiotap_vendor_namespaces *vns);
|
int max_length, const struct ieee80211_radiotap_vendor_namespaces *vns);
|
||||||
|
|
||||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24))
|
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24))
|
||||||
|
static struct xmit_frame* monitor_alloc_mgtxmitframe(struct xmit_priv *pxmitpriv) {
|
||||||
|
int tries;
|
||||||
|
int delay = 300;
|
||||||
|
struct xmit_frame *pmgntframe = NULL;
|
||||||
|
|
||||||
|
for(tries = 3; tries >= 0; tries--) {
|
||||||
|
pmgntframe = alloc_mgtxmitframe(pxmitpriv);
|
||||||
|
if(pmgntframe != NULL)
|
||||||
|
return pmgntframe;
|
||||||
|
rtw_udelay_os(delay);
|
||||||
|
delay += delay/2;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
s32 rtw_monitor_xmit_entry(struct sk_buff *skb, struct net_device *ndev)
|
s32 rtw_monitor_xmit_entry(struct sk_buff *skb, struct net_device *ndev)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
@ -4264,6 +4279,11 @@ s32 rtw_monitor_xmit_entry(struct sk_buff *skb, struct net_device *ndev)
|
|||||||
if (unlikely(skb->len < rtap_len))
|
if (unlikely(skb->len < rtap_len))
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
if ((pmgntframe = monitor_alloc_mgtxmitframe(pxmitpriv)) == NULL) {
|
||||||
|
DBG_COUNTER(padapter->tx_logs.core_tx_err_pxmitframe);
|
||||||
|
return NETDEV_TX_BUSY;
|
||||||
|
}
|
||||||
|
|
||||||
ret = rtw_ieee80211_radiotap_iterator_init(&iterator, rtap_hdr, skb->len, NULL);
|
ret = rtw_ieee80211_radiotap_iterator_init(&iterator, rtap_hdr, skb->len, NULL);
|
||||||
while (!ret) {
|
while (!ret) {
|
||||||
ret = rtw_ieee80211_radiotap_iterator_next(&iterator);
|
ret = rtw_ieee80211_radiotap_iterator_next(&iterator);
|
||||||
@ -4344,11 +4364,7 @@ s32 rtw_monitor_xmit_entry(struct sk_buff *skb, struct net_device *ndev)
|
|||||||
// dot11_hdr = (struct ieee80211_hdr *)skb->data;
|
// dot11_hdr = (struct ieee80211_hdr *)skb->data;
|
||||||
// frame_ctl = le16_to_cpu(dot11_hdr->frame_control);
|
// frame_ctl = le16_to_cpu(dot11_hdr->frame_control);
|
||||||
/* Check if the QoS bit is set */
|
/* Check if the QoS bit is set */
|
||||||
|
|
||||||
if ((pmgntframe = alloc_mgtxmitframe(pxmitpriv)) == NULL) {
|
|
||||||
rtw_udelay_os(500);
|
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
pattrib = &pmgntframe->attrib;
|
pattrib = &pmgntframe->attrib;
|
||||||
update_monitor_frame_attrib(padapter, pattrib);
|
update_monitor_frame_attrib(padapter, pattrib);
|
||||||
|
|
||||||
@ -4377,10 +4393,11 @@ s32 rtw_monitor_xmit_entry(struct sk_buff *skb, struct net_device *ndev)
|
|||||||
|
|
||||||
pattrib->last_txcmdsz = pattrib->pktlen;
|
pattrib->last_txcmdsz = pattrib->pktlen;
|
||||||
dump_mgntframe(padapter, pmgntframe);
|
dump_mgntframe(padapter, pmgntframe);
|
||||||
|
DBG_COUNTER(padapter->tx_logs.core_tx);
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
rtw_skb_free(skb);
|
rtw_skb_free(skb);
|
||||||
return 0;
|
return NETDEV_TX_OK;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
PACKAGE_NAME="realtek-rtl8812au"
|
PACKAGE_NAME="realtek-rtl8812au"
|
||||||
PACKAGE_VERSION="5.2.20~20180622"
|
PACKAGE_VERSION="5.2.20~20180625"
|
||||||
BUILT_MODULE_NAME[0]="8812au"
|
BUILT_MODULE_NAME[0]="8812au"
|
||||||
PROCS_NUM=`nproc`
|
PROCS_NUM=`nproc`
|
||||||
[ $PROCS_NUM -gt 16 ] && PROCS_NUM=16
|
[ $PROCS_NUM -gt 16 ] && PROCS_NUM=16
|
||||||
|
@ -3,12 +3,13 @@
|
|||||||
----------------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
|
- Add support for namespaces (NS)
|
||||||
|
- Fix count for frames in RadioTap header (add to stats)
|
||||||
- Enable TX queue in monitor mode
|
- Enable TX queue in monitor mode
|
||||||
- Place signal quality and per antenna rssi into radiotap header
|
- Place signal quality and per antenna rssi into radiotap header
|
||||||
- Calculate signal quality in the monitor mode
|
- Calculate signal quality in the monitor mode
|
||||||
- Add channels 151 and 153
|
- Add channels 151 and 153
|
||||||
- Unmask all available channels
|
- Unmask all available channels
|
||||||
- Disable power saving mode
|
|
||||||
- Switch channels to 80 MHz widt in monitor mode
|
- Switch channels to 80 MHz widt in monitor mode
|
||||||
- Enable channel 14 and 80 MHz width in the regdom
|
- Enable channel 14 and 80 MHz width in the regdom
|
||||||
- Switch channel in monitor mode
|
- Switch channel in monitor mode
|
||||||
@ -22,8 +23,15 @@
|
|||||||
|
|
||||||
+++ And propably alot more. We'll see.
|
+++ And propably alot more. We'll see.
|
||||||
|
|
||||||
|
[2018.06.25]
|
||||||
|
- Fix injected frames drop
|
||||||
|
- Fixed compilation on some ARM platforms
|
||||||
|
- Added support for PPC platform
|
||||||
|
- Minor cleanups
|
||||||
|
|
||||||
|
[2018.06.23]
|
||||||
|
- Added more VID/PID's + moved 1 to correct place
|
||||||
|
- Moved changelogs into "docs/" folder
|
||||||
|
|
||||||
[2018.06.22]
|
[2018.06.22]
|
||||||
- Enabled monitor mode
|
- Enabled monitor mode
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
#DHCP client
|
|
||||||
DEVICE=wlan0
|
|
||||||
BOOTPROTO=dhcp
|
|
||||||
ONBOOT=yes
|
|
@ -80,7 +80,7 @@
|
|||||||
#ifdef CONFIG_SINGLE_XMIT_BUF
|
#ifdef CONFIG_SINGLE_XMIT_BUF
|
||||||
#define NR_XMIT_EXTBUFF (1)
|
#define NR_XMIT_EXTBUFF (1)
|
||||||
#else
|
#else
|
||||||
#define NR_XMIT_EXTBUFF (32)
|
#define NR_XMIT_EXTBUFF (64)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_RTL8812A
|
#ifdef CONFIG_RTL8812A
|
||||||
|
@ -522,10 +522,9 @@ int rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev)
|
|||||||
if (pkt) {
|
if (pkt) {
|
||||||
if (check_fwstate(pmlmepriv, WIFI_MONITOR_STATE) == _TRUE) {
|
if (check_fwstate(pmlmepriv, WIFI_MONITOR_STATE) == _TRUE) {
|
||||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24))
|
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 24))
|
||||||
rtw_monitor_xmit_entry((struct sk_buff *)pkt, pnetdev);
|
ret = rtw_monitor_xmit_entry((struct sk_buff *)pkt, pnetdev);
|
||||||
#endif
|
#endif
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
rtw_mstat_update(MSTAT_TYPE_SKB, MSTAT_ALLOC_SUCCESS, pkt->truesize);
|
rtw_mstat_update(MSTAT_TYPE_SKB, MSTAT_ALLOC_SUCCESS, pkt->truesize);
|
||||||
ret = _rtw_xmit_entry(pkt, pnetdev);
|
ret = _rtw_xmit_entry(pkt, pnetdev);
|
||||||
}
|
}
|
||||||
|
20
runwpa
20
runwpa
@ -1,20 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ "`which iwconfig`" = "" ] ; then
|
|
||||||
echo "WARNING:Wireless tool not exist!"
|
|
||||||
echo " Please install it!"
|
|
||||||
exit
|
|
||||||
else
|
|
||||||
if [ `uname -r | cut -d. -f2` -eq 4 ]; then
|
|
||||||
wpa_supplicant -D ipw -c wpa1.conf -i wlan0
|
|
||||||
else
|
|
||||||
if [ `iwconfig -v |awk '{print $4}' | head -n 1` -lt 18 ] ; then
|
|
||||||
wpa_supplicant -D ipw -c wpa1.conf -i wlan0
|
|
||||||
else
|
|
||||||
wpa_supplicant -D wext -c wpa1.conf -i wlan0
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
16
wlan0dhcp
16
wlan0dhcp
@ -1,16 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
var0=`ps aux|awk '/dhclient wlan0/'|awk '$11!="awk"{print $2}'`
|
|
||||||
|
|
||||||
kill $var0
|
|
||||||
cp ifcfg-wlan0 /etc/sysconfig/network-scripts/
|
|
||||||
|
|
||||||
dhclient wlan0
|
|
||||||
|
|
||||||
var1=`ifconfig wlan0 |awk '/inet/{print $2}'|awk -F: '{print $2}'`
|
|
||||||
|
|
||||||
|
|
||||||
rm -f /etc/sysconfig/network-scripts/ifcfg-wlan0
|
|
||||||
|
|
||||||
echo "get ip: $var1"
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user