WiFi模块8812AU不使用内核版本> = 4.4.0-28-generic

问题

我的台式电脑上安装了Linksys WUSB 6300双频USB WiFi适配器,驱动模块8812AU。

当我第一次开始工作时,我使用驱动程序签名方法使其与Secure Boot一起使用。 它适用于内核版本4.4.0-23 – 通用版,后来还用于4.4.0-24通用版,我在更新后将其重新签名。

在更新到4.4.0-28之后 – 由于某种原因的通用重新签名不再具有期望的效果并且它似乎不加载驱动程序模块88 12AU

更新到4.4.0-38-generic后,行为保持不变。

附加驱动程序工具现在告诉我这个 ,所以我不确定模块文件是否被搞砸了。 我对Ubuntu很新,所以我不知道怎么说。 当它还在工作时它向我展示了这一点 。

因此,网络适配器无法工作,我不知道要检查或做什么,以使其恢复工作。

细节

lsusb告诉我适配器被识别为USB设备:

 Bus 002 Device 002: ID 13b1:003f Linksys WUSB6300 802.11a/b/g/n/ac Wireless Adapter [Realtek RTL8812AU] 

sudo lshw -C network只显示以太网和内部WiFi(它有一个非常相似的名称)。 它是一个集成的WiFi适配器,在Ubuntu下运行不佳,因此对我没用。

注意 :88 21AE是内部WiFi。 我试图让88 12AU运行,这里没有列出,因为它似乎没有加载。

 *-network description: Ethernet interface product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller vendor: Realtek Semiconductor Co., Ltd. physical id: 0 bus info: pci@0000:03:00.0 logical name: enp3s0 version: 11 serial: 54:a0:50:d5:4b:0b size: 10Mbit/s capacity: 1Gbit/s width: 64 bits clock: 33MHz capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=half firmware=rtl8168g-2_0.0.1 02/06/13 latency=0 link=no multicast=yes port=MII speed=10Mbit/s resources: irq:42 ioport:e000(size=256) memory:f7d00000-f7d00fff memory:f0000000-f0003fff *-network description: Wireless interface product: RTL8821AE 802.11ac PCIe Wireless Network Adapter vendor: Realtek Semiconductor Co., Ltd. physical id: 0 bus info: pci@0000:04:00.0 logical name: wlp4s0 version: 00 serial: 54:27:1e:d6:91:8d width: 64 bits clock: 33MHz capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=rtl8821ae driverversion=4.4.0-22-generic firmware=N/A ip=192.168.0.20 latency=0 link=yes multicast=yes wireless=IEEE 802.11abgn resources: irq:46 ioport:d000(size=256) memory:f7c00000-f7c03fff 

运行rfkill list all表明似乎没有阻止:

 0: hci0: Bluetooth Soft blocked: no Hard blocked: no 1: phy0: Wireless LAN Soft blocked: no Hard blocked: no 

任何帮助将不胜感激!

非常感谢。

这是我编写的一个快速脚本,用于手动修复每次内核软件更新后发生的损坏的rtl8812au-dkms驱动程序问题。 发生内核软件更新后,使用sudo运行脚本。 这个驱动程序的问题是dkms为错误的内核构建它。 这是源代码中dkms.conf的问题。 我可能有一个永久性修复待定。

您可以在启动时判断/ var / log / syslog中是否有kernel module load error 。 在终端中, modinfo 8812au会将vermagic显示为不正确。

 #!/bin/bash # save as ~/Desktop/fix_8812au.sh # in terminal: chmod +x ~/Desktop/fix_8812au.sh # in terminal, run with: sudo ~/Desktop/fix_8812au.sh cd /var/lib/dkms # rtl8812au dkms remove rtl8812au/4.3.8.12175.20140902+dfsg -k "$(uname -r)/$(uname -p)" dkms build rtl8812au/4.3.8.12175.20140902+dfsg -k "$(uname -r)/$(uname -p)" dkms install rtl8812au/4.3.8.12175.20140902+dfsg -k "$(uname -r)/$(uname -p)" 

更新:用户还使用了旧版本的8812au驱动程序,因此我们从存储库安装了当前版本的rtl8812au-dkms ,这一切都奏效了。 在下一次内核软件更新后,将立即需要该脚本。

更新#2: 正确修复(感谢@ Jeremy31)这个错误是编辑这两个文件:

 gksudo gedit /usr/src/rtl8812au-4.3.8.12175.20140902+dfsg/dkms.conf

 gksudo gedit /var/lib/dkms/rtl8812au/4.3.8.12175.20140902+dfsg/build/dkms.conf

并用此行替换MAKE =“'make'all”:

 MAKE [0] =“'make'all KVER = $ {kernelver}”

可以通过编辑dkms.conf文件修复此包…

 sudo -H gedit /usr/src/rtl8812au-4.3.8.12175.20140902+dfsg/dkms.conf 

然后将第4行从MAKE="'make' all" MAKE="'make' all KVER=${kernelver}" MAKE="'make' all"更改为MAKE="'make' all KVER=${kernelver}"

保存并退出编辑器,然后执行以下操作:

 sudo -H gedit /var/lib/dkms/rtl8812au/4.3.8.12175.20140902+dfsg/build/dkms.conf 

由于在Ubuntu论坛上报告了一个类似的问题,我的编辑也适用于我得到的最后一次内核更新。

对于您当前的内核,您应该能够:

 dkms build rtl8812au/4.3.8.12175.20140902+dfsg -k $(uname -r) dkms install rtl8812au/4.3.8.12175.20140902+dfsg -k $(uname -r) 

重启

我鼓吹你应该使用完全签名并编译成正确版本的内核模块……然后我犯了罪并强迫一个模块,因为我无法弄清楚如何签名(我是安全挑战的)。 确实在学习dkms之前我认为我必须已经离题并强制使用错误的内核版本(但是它仍然有用!)。

您可能会发现自己处于同样的境地。 无论如何使用modprobe您可以通过添加以下参数来安装未签名的内核模块:

 -f, --force Force module insertion or removal. implies --force-modversions and --force-vermagic --force-modversion Ignore module's version --force-vermagic Ignore module's version magic 

当然我传道你应该永远不要这样做,但话又说….