我有一个 TP-Link Archer T2U Plus USB WiFi 适配器,带有 Realtek RTL8821AU 芯片组。Ubuntu 上未预装该驱动程序20.04.3(核心5.11.0-27-通用,如果它预装在 21.10 或 20.04.4 上,请告诉我,我会升级)所以我不得不手动安装驱动程序。我在宇宙中找到了一个(https://packages.ubuntu.com/focal/rtl8812au-dkms) 专为 RTL88 打造12AU,但它也适用于 RTL8821AU,因为有RTL8821AU 写入/os_dep/linux/usb_intf.c
文件中。
我使用 安装了它sudo apt install rtl8812au-dkms
,但是驱动程序不起作用,因为文件中没有列出 TP-Link Archer T2U Plus 的 ID /os_dep/linux/usb_intf.c
。因此,我下载了驱动程序的源代码(使用apt download rtl8812au-dkms
),解压缩了 .deb 文件,从命令中获取了 ID lsusb
(它是2357:0120)并添加了一行
{USB_DEVICE(0x2357, 0x0120), .driver_info = RTL8821}, /* TP Link - T2U Plus */
#ifdef CONFIG_RTL8821A
在文件下usb_intf.c
。
make
然后我用和编译了源代码,sudo make install
并重启了电脑,但驱动程序不起作用。它已加载,因为lsmod
每次我插入 WiFi 适配器时都会显示 ,但lsmod
它显示used by: 0
。
我确信驱动程序可以与 RTL88 配合使用21AU 芯片组,我确信 Archer T2U Plus 正在使用此芯片组,但它似乎不起作用。我认为问题是我安装错了,或者8812au
显示的模块lsmod
是另一个模块(在尝试这个来自宇宙的包之前我已经尝试过,因为在尝试这个之前我已经尝试了很多不同的驱动程序)旧模块正在处理 WiFi 适配器,而不是rtl8812au-dkms
来自宇宙的包(使用编辑的文件从源代码编译usb_intf.c
)。
我尝试运行sudo depmod -a
,并且sudo modprobe 8812au
在重新启动电脑之前,我还尝试在拔下适配器时安装它,并在重新启动后插入它,我尝试使用机箱上的 USB 3.0 端口、主板上的 USB 2.0 和 3.0,但都不起作用。
在我编辑源代码后,您能否指导我如何一步步编译和安装驱动程序,或者如何查看模块是否确实是编辑usb_intf.c
文件的模块(我是 Linux 新手)?
顺便说一句,驱动程序有 dkms,但由于我使用它安装的,因此sudo make install
它没有显示在 中dkms status
。此外,安装驱动程序后,WiFi 适配器没有显示在nmcli device
或 中lshw -C network
,只有在 lsusb
以及 中的模块lsmod
。