我在最终确定与 TP-Link Archer T4UH v2 实际连接时遇到了问题。我正在使用这个驱动程序:https://github.com/diederikdehaas/rtl8812AU。
我的发行版:
$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu Bionic Beaver (development branch)"
NAME="Ubuntu"
VERSION="18.04 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu Bionic Beaver (development branch)"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
lsusb
输出:
$ lsusb
Bus 001 Device 004: ID 2357:010e
我注意到它不在https://github.com/diederikdehaas/rtl8812AU/blob/driver-4.3.20/os_dep/linux/usb_intf.c#L171但是,所以我添加了它:
{USB_DEVICE(0x2357, 0x010E),.driver_info = RTL8812}, /* TP-Link - T4UH v2 */
从这里我运行了 DKMS 指南,README.md
一切顺利,没有出现错误:
$ sudo dkms status
rtl8812AU, 4.3.20, 4.15.0-13-generic, x86_64: installed
virtualbox, 5.2.8, 4.15.0-13-generic, x86_64: installed
然后我检查了以下内容:
$ lsmod | grep 88
8812au 1077248 0
$ sudo modprobe 8812au
# Empty output
$ sudo /sbin/depmod -a
# Empty output
$ ifconfig -a
enp0s31f6: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether e0:d5:5e:82:22:62 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xf7100000-f7120000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 47443 bytes 33615823 (33.6 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 47443 bytes 33615823 (33.6 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet hidden netmask 255.255.255.255 destination hidden
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC)
RX packets 25681199 bytes 21203557217 (21.2 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 19830026 bytes 9146100182 (9.1 GB)
TX errors 0 dropped 20972 overruns 0 carrier 0 collisions 0
wlx001e2a3838cb: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.8 netmask 255.255.255.0 broadcast 192.168.2.255
ether 00:1e:2a:38:38:cb txqueuelen 1000 (Ethernet)
RX packets 38668731 bytes 25575957972 (25.5 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 25577486 bytes 12808764441 (12.8 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
我现在可以看到 T4UH v2 处于一个看似生成的名称下enp0s31f6
,但仍然是以太网设备。当我尝试将其安装在 MacBook Pro 上以查看它是否正常工作时也发生了这种情况。它保留了一个以太网接口,但 TP-Link Mac 驱动程序附带的 GUI 似乎在水下做了一些事情,将其连接为 WiFi,这让 Mac 认为该设备已有效连接到以太网。
设备上的蓝灯没有像在 macOS 上安装时那样亮起或闪烁。在那里,即使没有 WiFi 连接,它仍然亮起和/或闪烁。
然后我在驱动程序文件夹中尝试:
$ cd /lib/modules/4.15.0-13-generic/kernel/drivers/net/wireless
$ sudo wpa_supplicant -D nl80211 -i enp0s31f6 -c ./ wpa_0_8.conf -B
Successfully initialized wpa_supplicant
nl80211: Could not configure driver mode
nl80211: deinit ifname=enp0s31f6 disabled_11b_rates=0
enp0s31f6: Failed to initialize driver interface
在之前的尝试中,它还给出了:
nl80211: Drivers does not support authentication/association or connect commands
新棒是为了替换旧棒,旧棒几乎无法通过内联网稳定下载 1MB。这款新棒的规格非常棒,所以我真的希望我能让它以某种方式工作。TP-Link 宣传它与 Linux 兼容,但在其网站上,他们停留在内核版本 3.1.* :(。前面提到的 GitHub repo 中的驱动程序的自定义版本似乎可以工作,但我对 Ubuntu WiFi CLI 工具不够熟悉,无法弄清楚。
提前致谢!
- 这是产品页面: https://www.tp-link.com/us/download/Archer-T4UH.html
- 他们的旧 Linux 安装 PDF 在这里: https://static.tp-link.com/Installation%20for%20linux%20driver_RTL.pdf
- 我的路由器是默认 ISP ExperiaBox v10(ZTE V1.01.00T03.4)。它支持 2.4GHz 和 5GHz
ac
协议
更新 1
完整lsusb
输出:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 0846:4260 NetGear, Inc. WG111v3 54 Mbps Wireless [realtek RTL8187B]
Bus 001 Device 004: ID 2357:010e
Bus 001 Device 005: ID 413c:2110 Dell Computer Corp.
Bus 001 Device 003: ID 413c:1010 Dell Computer Corp.
Bus 001 Device 002: ID 145f:01f1 Trust
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
sudo modprobe 8812au && dmesg | grep 8812
输出:
[ 7.401386] 8812au: loading out-of-tree module taints kernel.
[ 7.444058] 8812au: module verification failed: signature and/or required key missing - tainting kernel
[ 7.446136] RTL871X: rtl8812au v4.3.20_16317.20160108
[ 7.446151] usbcore: registered new interface driver rtl8812au
也许错误是由于dkms-8812au
之前安装过?但之后它被干净地删除了。甚至清除了源文件。所以它应该只是来自 repo 的新安装版本。
更新 2
dmesg | grep enp
输出:
[ 4.835489] e1000e 0000:00:1f.6 enp0s31f6: renamed from eth0
[ 8.252764] IPv6: ADDRCONF(NETDEV_UP): enp0s31f6: link is not ready
[ 8.440257] IPv6: ADDRCONF(NETDEV_UP): enp0s31f6: link is not ready
iwconfig
输出:
lo no wireless extensions.
wlx001e2a3838cb IEEE 802.11 ESSID:"H220N8210B1"
Mode:Managed Frequency:2.447 GHz Access Point: 74:B5:7E:26:1D:FE
Bit Rate=54 Mb/s Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=70/70 Signal level=-38 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:1365 Invalid misc:349 Missed beacon:0
vboxnet0 no wireless extensions.
enp0s31f6 no wireless extensions.
sudo lshw -C network
输出:
*-network
description: Ethernet interface
product: Ethernet Connection (2) I219-V
vendor: Intel Corporation
physical id: 1f.6
bus info: pci@0000:00:1f.6
logical name: enp0s31f6
version: 00
serial: e0:d5:5e:82:22:62
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k firmware=0.2-4 latency=0 link=no multicast=yes port=twisted pair
resources: irq:137 memory:f7100000-f711ffff
*-network
description: Wireless interface
physical id: 2
bus info: usb@1:6
logical name: wlx001e2a3838cb
serial: 00:1e:2a:38:38:cb
capabilities: ethernet physical wireless
configuration: broadcast=yes driver=rtl8187 driverversion=4.15.0-13-generic firmware=N/A ip=192.168.2.8 link=yes multicast=yes wireless=IEEE 802.11
答案1
在我们的聊天中,我们确定用于下载源代码并修改它以添加您的特定设备 2357:010e 的序列存在错误。您下载了一份新副本,修改了 usb_intf.c 代码以添加您的设备,然后使用 dkms 进行安装。
我们还发现,您的 4.15 内核版本默认存在 8812au 模块。我们使用 dkms --force 来安装修正版本,并覆盖内核默认版本。
将路由器设置为 WPA2-AES 和固定频道 6(而不是自动频道选择)后,设备就能够连接并浏览互联网。