无法看到 USB wifi

无法看到 USB wifi

我最近将 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 时遇到了问题。每次冷启动后,系统都会要求我输入密码。

解决方案涉及两部分。

  1. 安装正确的 wifi 驱动程序。按照上述 @Jags 的回答操作(请参阅 RTL8812au 驱动程序的确切 Github 源代码/说明,其他 github 解决方案不起作用)。安装后,我能够看到 Wifi 路由器并连接到它,但每次重启后 wifi 都无法连接。它会再次要求输入 wifi 密码,即使密码已在之前成功的链接中保存。

  2. 我将其追溯到动态接口名称。(执行“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 适配器时才对我有用。如果我将其留在计算机上并重新启动,它就无法找到附近的任何热点。

參閱避免动态 USB wifi 接口名称的解决方案

相关内容