![Belkin 双频无线适配器 AC867 帮助](https://linux22.com/image/1126351/Belkin%20%E5%8F%8C%E9%A2%91%E6%97%A0%E7%BA%BF%E9%80%82%E9%85%8D%E5%99%A8%20AC867%20%E5%B8%AE%E5%8A%A9.png)
我一直想让我的 Belkin AC867 双频 USB 适配器与 Ubuntu 15.04 配合使用,但没有成功。我按照这个教程操作http://blog.danielscrivano.com/installing-rtl8812au-on-linux-for-wireless-dual-band-usb-adapters/。我目前通过蓝牙网络共享上网。
我希望它能够起作用,但是当我在终端窗口中输入以下命令时收到错误消息:
cd rtl8821AU_8821AU_linux
make
在输入 make 之后,我在代码脚本的末尾收到一个错误
jonathan@pc:~/rtl8812AU_8821AU_linux$ make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/3.19.0-16-generic/build M=/home/jonathan/rtl8812AU_8821AU_linux modules
make[1]: Entering directory '/usr/src/linux-headers-3.19.0-16-generic'
CC [M] /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.o
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c: In function ‘cfg80211_rtw_add_key’:
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:1250:35: warning: passing argument 2 of ‘_rtw_memcpy’ discards ‘const’ qualifier from pointer target type
_rtw_memcpy(param->u.crypt.seq, params->seq, params->seq_len);
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:32:0,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
/home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service.h:167:13: note: expected ‘void *’ but argument is of type ‘const u8 *’
extern void _rtw_memcpy(void* dec, void* sour, u32 sz);
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:1256:35: warning: passing argument 2 of ‘_rtw_memcpy’ discards ‘const’ qualifier from pointer target type
_rtw_memcpy(param->u.crypt.key, params->key, params->key_len);
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:32:0,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
/home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service.h:167:13: note: expected ‘void *’ but argument is of type ‘const u8 *’
extern void _rtw_memcpy(void* dec, void* sour, u32 sz);
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c: In function ‘cfg80211_rtw_connect’:
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:2550:30: warning: passing argument 2 of ‘_rtw_memcpy’ discards ‘const’ qualifier from pointer target type
_rtw_memcpy(ndis_ssid.Ssid, sme->ssid, sme->ssid_len);
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:32:0,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
/home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service.h:167:13: note: expected ‘void *’ but argument is of type ‘const u8 *’
extern void _rtw_memcpy(void* dec, void* sour, u32 sz);
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:2587:49: warning: passing argument 2 of ‘_rtw_memcmp’ discards ‘const’ qualifier from pointer target type
if(_rtw_memcmp(pnetwork->network.MacAddress, sme->bssid, ETH_ALEN) == _FALSE)
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:32:0,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
/home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service.h:168:12: note: expected ‘void *’ but argument is of type ‘const u8 *’
extern int _rtw_memcmp(void *dst, void *src, u32 sz);
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:2593:49: warning: passing argument 2 of ‘_rtw_memcmp’ discards ‘const’ qualifier from pointer target type
|| _rtw_memcmp(pnetwork->network.Ssid.Ssid, sme->ssid, sme->ssid_len) == _FALSE
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:32:0,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
/home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service.h:168:12: note: expected ‘void *’ but argument is of type ‘const u8 *’
extern int _rtw_memcmp(void *dst, void *src, u32 sz);
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:2601:14: warning: assignment discards ‘const’ qualifier from pointer target type
src_bssid = sme->bssid;
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:2682:42: warning: passing argument 2 of ‘rtw_cfg80211_set_wpa_ie’ discards ‘const’ qualifier from pointer target type
ret = rtw_cfg80211_set_wpa_ie(padapter, sme->ie, sme->ie_len);
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:2243:12: note: expected ‘u8 *’ but argument is of type ‘const u8 *’
static int rtw_cfg80211_set_wpa_ie(_adapter *padapter, u8 *pie, size_t ielen)
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c: In function ‘cfg80211_rtw_set_pmksa’:
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:2913:20: warning: passing argument 1 of ‘_rtw_memcmp’ discards ‘const’ qualifier from pointer target type
if ( _rtw_memcmp( pmksa->bssid, strZeroMacAddress, ETH_ALEN ) == _TRUE )
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:32:0,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
/home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service.h:168:12: note: expected ‘void *’ but argument is of type ‘const u8 *’
extern int _rtw_memcmp(void *dst, void *src, u32 sz);
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:2923:59: warning: passing argument 2 of ‘_rtw_memcmp’ discards ‘const’ qualifier from pointer target type
if( _rtw_memcmp( psecuritypriv->PMKIDList[index].Bssid, pmksa->bssid, ETH_ALEN) ==_TRUE )
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:32:0,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
/home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service.h:168:12: note: expected ‘void *’ but argument is of type ‘const u8 *’
extern int _rtw_memcmp(void *dst, void *src, u32 sz);
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:2927:56: warning: passing argument 2 of ‘_rtw_memcpy’ discards ‘const’ qualifier from pointer target type
_rtw_memcpy( psecuritypriv->PMKIDList[index].PMKID, pmksa->pmkid, WLAN_PMKID_LEN);
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:32:0,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
/home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service.h:167:13: note: expected ‘void *’ but argument is of type ‘const u8 *’
extern void _rtw_memcpy(void* dec, void* sour, u32 sz);
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:2941:74: warning: passing argument 2 of ‘_rtw_memcpy’ discards ‘const’ qualifier from pointer target type
_rtw_memcpy(psecuritypriv->PMKIDList[psecuritypriv->PMKIDIndex].Bssid, pmksa->bssid, ETH_ALEN);
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:32:0,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
/home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service.h:167:13: note: expected ‘void *’ but argument is of type ‘const u8 *’
extern void _rtw_memcpy(void* dec, void* sour, u32 sz);
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:2942:74: warning: passing argument 2 of ‘_rtw_memcpy’ discards ‘const’ qualifier from pointer target type
_rtw_memcpy(psecuritypriv->PMKIDList[psecuritypriv->PMKIDIndex].PMKID, pmksa->pmkid, WLAN_PMKID_LEN);
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:32:0,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
/home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service.h:167:13: note: expected ‘void *’ but argument is of type ‘const u8 *’
extern void _rtw_memcpy(void* dec, void* sour, u32 sz);
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c: In function ‘cfg80211_rtw_del_pmksa’:
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:2967:59: warning: passing argument 2 of ‘_rtw_memcmp’ discards ‘const’ qualifier from pointer target type
if( _rtw_memcmp( psecuritypriv->PMKIDList[index].Bssid, pmksa->bssid, ETH_ALEN) ==_TRUE )
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:32:0,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
/home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service.h:168:12: note: expected ‘void *’ but argument is of type ‘const u8 *’
extern int _rtw_memcmp(void *dst, void *src, u32 sz);
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:141:0,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c: In function ‘rtw_cfg80211_rx_action_p2p’:
/home/jonathan/rtl8812AU_8821AU_linux/include/ioctl_cfg80211.h:114:71: error: too many arguments to function ‘cfg80211_rx_mgmt’
#define rtw_cfg80211_rx_mgmt(adapter, freq, sig_dbm, buf, len, gfp) cfg80211_rx_mgmt((adapter)->rtw_wdev, freq, sig_dbm, buf, len, 0, gfp)
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:3883:2: note: in expansion of macro ‘rtw_cfg80211_rx_mgmt’
rtw_cfg80211_rx_mgmt(padapter, freq, 0, pmgmt_frame, frame_len, GFP_ATOMIC);
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service_linux.h:76:0,
from /home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service.h:41,
from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:32,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
include/net/cfg80211.h:4612:6: note: declared here
bool cfg80211_rx_mgmt(struct wireless_dev *wdev, int freq, int sig_dbm,
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:141:0,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c: In function ‘rtw_cfg80211_rx_p2p_action_public’:
/home/jonathan/rtl8812AU_8821AU_linux/include/ioctl_cfg80211.h:114:71: error: too many arguments to function ‘cfg80211_rx_mgmt’
#define rtw_cfg80211_rx_mgmt(adapter, freq, sig_dbm, buf, len, gfp) cfg80211_rx_mgmt((adapter)->rtw_wdev, freq, sig_dbm, buf, len, 0, gfp)
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:3921:2: note: in expansion of macro ‘rtw_cfg80211_rx_mgmt’
rtw_cfg80211_rx_mgmt(padapter, freq, 0, pmgmt_frame, frame_len, GFP_ATOMIC);
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service_linux.h:76:0,
from /home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service.h:41,
from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:32,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
include/net/cfg80211.h:4612:6: note: declared here
bool cfg80211_rx_mgmt(struct wireless_dev *wdev, int freq, int sig_dbm,
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:141:0,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c: In function ‘rtw_cfg80211_rx_action’:
/home/jonathan/rtl8812AU_8821AU_linux/include/ioctl_cfg80211.h:114:71: error: too many arguments to function ‘cfg80211_rx_mgmt’
#define rtw_cfg80211_rx_mgmt(adapter, freq, sig_dbm, buf, len, gfp) cfg80211_rx_mgmt((adapter)->rtw_wdev, freq, sig_dbm, buf, len, 0, gfp)
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:3951:2: note: in expansion of macro ‘rtw_cfg80211_rx_mgmt’
rtw_cfg80211_rx_mgmt(adapter, freq, 0, frame, frame_len, GFP_ATOMIC);
^
In file included from /home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service_linux.h:76:0,
from /home/jonathan/rtl8812AU_8821AU_linux/include/osdep_service.h:41,
from /home/jonathan/rtl8812AU_8821AU_linux/include/drv_types.h:32,
from /home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:22:
include/net/cfg80211.h:4612:6: note: declared here
bool cfg80211_rx_mgmt(struct wireless_dev *wdev, int freq, int sig_dbm,
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c: At top level:
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:5041:2: warning: initialization from incompatible pointer type
.get_station = cfg80211_rtw_get_station,
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:5041:2: warning: (near initialization for ‘rtw_cfg80211_ops.get_station’)
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:5069:2: warning: initialization from incompatible pointer type
.add_station = cfg80211_rtw_add_station,
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:5069:2: warning: (near initialization for ‘rtw_cfg80211_ops.add_station’)
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:5070:2: warning: initialization from incompatible pointer type
.del_station = cfg80211_rtw_del_station,
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:5070:2: warning: (near initialization for ‘rtw_cfg80211_ops.del_station’)
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:5071:2: warning: initialization from incompatible pointer type
.change_station = cfg80211_rtw_change_station,
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:5071:2: warning: (near initialization for ‘rtw_cfg80211_ops.change_station’)
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:5087:2: warning: initialization from incompatible pointer type
.mgmt_tx = cfg80211_rtw_mgmt_tx,
^
/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.c:5087:2: warning: (near initialization for ‘rtw_cfg80211_ops.mgmt_tx’)
scripts/Makefile.build:257: recipe for target '/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.o' failed
make[2]: *** [/home/jonathan/rtl8812AU_8821AU_linux/os_dep/linux/ioctl_cfg80211.o] Error 1
Makefile:1394: recipe for target '_module_/home/jonathan/rtl8812AU_8821AU_linux' failed
make[1]: *** [_module_/home/jonathan/rtl8812AU_8821AU_linux] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.19.0-16-generic'
Makefile:1040: recipe for target 'modules' failed
make: *** [modules] Error 2
这是我输入 lsusb(顶部的 belkin 组件)时的设备信息:
jonathan@pc:~$ lsusb
Bus 003 Device 006: ID 050d:1109 Belkin Components
Bus 003 Device 002: ID 357d:7788
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 006 Device 002: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 2109:3431
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
jonathan@pc:~$
另外,我目前正在运行 Ubuntu 15.04。我是 Linux 新手,如果我遗漏了重要信息或这篇文章的格式不可接受,请原谅。如果您需要更多信息,请告诉我。
答案1
请尝试这个包:
git clone https://github.com/abperiasamy/rtl8812AU_8821AU_linux.git
cd rtl8812AU_8821AU_linux
make
sudo make install
sudo depmod -a
sudo modprobe 8812au
它使我的 3.19.0-16 内核出现警告但没有错误。