我最近将 Ubuntu 从内核 5.0.0-37 升级到了 5.3.0-26 (x86_64)。似乎与这次升级同时,我的 wifi USB 加密狗停止工作了(Archer T4U)。它侧面通常会有一些闪烁的灯,但现在它们全部熄灭了。我确实启动了 Windows 以验证它是否仍然可用,事实确实如此。以下是我尝试让它再次运行的步骤(我仍然有有线连接):
$sudo apt remove rtl8812au-dkms
$sudo apt install rtl8812au-dkms
接下来,我检查是否可以看到 USB 加密狗,并得到以下输出:
$cat /var/lib/usbutils/usb.ids | grep "Archer T4U"
0101 RTL8812AU Archer T4U 802.11ac
0103 Archer T4UH wireless Realtek 8812AU
到目前为止一切顺利。接下来,我检查它是否属于我的网络:
$sudo lshw -C network
*-network
description: Ethernet interface
product: 82567LM-3 Gigabit Network Connection
vendor: Intel Corporation
physical id: 19
bus info: pci@0000:00:19.0
logical name: eth2
version: 02
serial: b8:ac:6f:1d:64:14
size: 100Mbit/s
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 duplex=full firmware=0.4-3 ip=192.168.0.40 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s
resources: irq:32 memory:f7fe0000-f7ffffff memory:f7fd9000-f7fd9fff ioport:ece0(size=32)
这显示了我的有线连接,但没有显示 wifi USB。我研究的所有帮助都假设系统在发出此命令时可以看到 wifi。
我检查它是否在 USB ID 列表中:
$cat /var/lib/usbutils/usb.ids | grep 'Archer T4U'
0101 RTL8812AU Archer T4U 802.11ac
0103 Archer T4UH wireless Realtek 8812AU
没关系。接下来我检查 wifi 模块是否已安装:
$sudo lsmod | grep 8812au
8812au 1290240 0
cfg80211 704512 1 8812au
是的。好的,让我尝试激活该模块:
$sudo modprobe 8812au
$echo $?
0
看来它已成功激活。现在我运行 iwconfig:
$iwconfig
lo no wireless extensions.
eth2 no wireless extensions.
与之前的 lshw 命令一样,它不会将 wifi 适配器视为网络的一部分。我尝试多次重新运行这些步骤,这些步骤以前总是有效的,并且重新启动了几次,但都无济于事。我不知道如何让它工作。
答案1
对于内核 5.3,您可能需要更新/修改过的驱动程序。
您可以从此 GitHub 存储库安装最新的驱动程序:https://github.com/aircrack-ng/rtl8812au.git
根据 repo,你可以这样使用 DKMS 方法安装驱动程序:
sudo apt update
sudo apt install dkms
git clone -b v5.6.4.2 https://github.com/aircrack-ng/rtl8812au.git
cd rtl8812au
sudo ./dkms-install.sh
您的 USB WiFi 适配器现在应该可以工作了。
答案2
谢谢@Jags。我下载了源文件
https://github.com/abperiasamy/rtl8812AU_8821AU_linux/archive/master.zip
解压后,我执行了以下命令序列,这些命令放在一个脚本文件中:
cd rtl8812AU_8821AU_linux-master
make
sudo make install
sudo modprobe rtl8812au
sudo apt-get update
# already installed
#sudo apt-get install dkms
sudo cp -R . /usr/src/rtl8812AU_8821AU_linux-1.0
sudo dkms add -m rtl8812AU_8821AU_linux -v 1.0
sudo dkms build -m rtl8812AU_8821AU_linux -v 1.0
sudo dkms install -m rtl8812AU_8821AU_linux -v 1.0
加密狗在完成制作之前就开始闪烁。我检查了我的 wifi,它已经可以运行了,而制作甚至还没有完成!想想吧。
答案3
我使用的是 Ubuntu 20.04(还有 18.04),内核为 5.4.0-66-Generic(uname -r),还有几年前在 Ubuntu 16.04 上使用过的 RTL8811au 加密狗。我在使用新安装的 Ubuntu 连接 Wifi 时遇到了问题。每次冷启动后,系统都会要求我输入密码。
解决方案涉及两部分。
安装正确的 wifi 驱动程序。按照上述 @Jags 的回答操作(请参阅 RTL8812au 驱动程序的确切 Github 源代码/说明,其他 github 解决方案不起作用)。安装后,我能够看到 Wifi 路由器并连接到它,但每次重启后 wifi 都无法连接。它会再次要求输入 wifi 密码,即使密码已在之前成功的链接中保存。
我将其追溯到动态接口名称。(执行“iwconfg”,您将看到无线接口名称采用以下格式:wlsxxxxxxxxxxxx,并且每次重启后它都不同)。以下代码用于强制使用持久名称。
sudo cp /lib/udev/rules.d/80-net-setup-link.rules /etc/udev/rules.d/ sudo vi /etc/udev/rules.d/80-net-setup-link.rules
将“$env{ID_NET_NAME}”更改为“wlan0”,而不是“$env{ID_NET_投币口}”,保存并重新启动。请注意,下面链接中的“$env{ID_NET_SLOT}”仅在我热插拔 wifi 适配器时才对我有用。如果我将其留在计算机上并重新启动,它就无法找到附近的任何热点。