TLDR;这个 wifi 适配器有很多驱动程序。这个驱动程序似乎运行良好:github/rtl8812AU_8821AU_linux
我有最新的 Ubuntu 17.04 zesty。4.10.0-26-generic #30-Ubuntu SMP Tue Jun 27 09:30:12 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
和华硕 VivoBook Pro N752VX。英特尔(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
我的内置 WiFi 适配器工作不正常,所以我买了一个新的 - TP-Link Archer T4UH,因为它声称兼容 Linux。它开箱即用。首先,我尝试从官方 TP-Link 网站下载 Linux 驱动程序(http://www.tp-linkru.com/download/Archer-T4UH.html#Driver)。那是版本 4.3.13_14061.20150505。但它们与我的 Linux 内核不兼容。所以我尝试了其他版本:github/diederikdehaas/rtl8812AU - 版本 4.3.8、4.3.14、4.3.20 github/mk-fg/rtl8812au - 版本 5.1.5 我还必须将我的 device_id 添加到源中,因为那里没有找到它。
lsusb:
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0bda:8763 Realtek Semiconductor Corp.
Bus 001 Device 003: ID 046d:c534 Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 0bda:57f6 Realtek Semiconductor Corp.
Bus 001 Device 005: ID 2357:010e <-- This is my USB WiFi dongle
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
原始驱动源仅包含(针对RTL8812A芯片组):
{USB_DEVICE(0x2357, 0x0101),.driver_info = RTL8812}, /* TP-Link - Archer T4U */
{USB_DEVICE(0x2357, 0x0103),.driver_info = RTL8812}, /* TP-Link - T4UH */
并且所有驱动程序都无法连接到我的 WiFi 路由器。
编译并安装驱动程序后,WiFi 点在 NetworkManager 中可见。我的 WiFi 点配置为使用 WPA/WPA2 授权。如果我使用 NetworkManager,它会接受我的 WiFi 密码,等待一段时间,然后再次询问密码。切换到 WPA2 没有帮助。
所以我决定使用命令行来连接。
配置:
tun0 no wireless extensions.
wlxd46e0e11c476 unassociated Nickname:"<WIFI@REALTEK>"
Mode:Managed Frequency=2.412 GHz Access Point: Not-Associated
Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
lo no wireless extensions.
enp3s0f1 no wireless extensions.
请注意 - 我在示例中使用无线接口名称,但我实际使用的接口名称是 wlxd46e0e11c476。
做了类似的事情(以 root 身份)
# ip link show
# ip link set <wlan0> up
# iwlist <wlan0> scan
# wpa_passphrase <Your_SSID> <Your_passwd> > wpa_supplicant.conf
# wpa_supplicant -B -i <wlan0> -c wpa_supplicant.conf -D wext
那时我得到了:
Successfully initialized wpa_supplicant
ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
我不是 Linux 和 Linux 硬件及驱动程序方面的专家。所以我的问题是关于社区或可以帮助我制定下一步措施以使我的设备正常工作的人。
答案1
最后发现问题出在-D wext。需要改成nl80211所以正确的命令应该是
# wpa_supplicant -B -i <wlan0> -c wpa_supplicant.conf -D nl80211
# dhclient <wlan0>
就是这样。
不知道网络管理器出了什么问题——为什么它无法连接到这个 WiFi。但至少有可用的 WiFi。