Netgear AC600(又名 A6100)wifi 适配器,由 dkms 管理,在 4.4.0-47 内核中失败

Netgear AC600(又名 A6100)wifi 适配器,由 dkms 管理,在 4.4.0-47 内核中失败

我已经在我的 16.04 系统中成功使用了 Netgear AC600(又名 A6100)wifi 适配器一段时间了,并且也成功地通过 dkms 对其进行了管理,以便它在内核更新时自动重建。

在最新的内核更新到 4.4.0-47-generic 后,该模块已成功重建并由 dkms 加载,但它完全不起作用。它甚至没有显示在 iwconfig 中。

恢复到 4.4.0-45 内核即可恢复功能。

有人知道新内核中发生了什么导致这个问题吗?也许 rtl8812AU 驱动程序包含在这个内核中?如果是这样,我该如何删除为我构建的一个 dkms?

谢谢您的任何建议。

编辑:的输出modinfo 8812au|grep vermagic

vermagic: 4.4.0-45-generic SMP mod_unload modversions 686

的输出ls -al /var/lib/dkms/rtl8812au

ls: cannot access '/var/lib/dkms/rtl8812au': no such file or directory

编辑2:

的输出ls /usr/src

linux-headers-4.4.0-45          linux-headers-4.4.0-47-generic
linux-headers-4.4.0-47-generic  rtl8812AU_8821AU_linux-1.0
linux-headers-4.4.0-47

的输出ls /var/lib/dkms

dkms_dbversion rtl8812AU_8821AU_linux

编辑3:

的输出dkms status

rtl8812AU_8821AU_linux, 1.0, 4.4.0-45-generic, i686: installed
rtl8812AU_8821AU_linux, 1.0, 4.4.0-47-generic, i686: installed

答案1

dkms 8812au 内核模块有一个错误,导致它在包含内核更新的软件更新期间为错误的内核构建。

针对您的具体情况,请执行以下操作:

从以下位置下载较新的源代码(zip 格式)https://github.com/diederikdehaas/rtl8812AU. 解压 zip 文件并将源文件夹复制到/usr/src/rtl8812au-4.3.14. 编辑 dkms.conf 文件并更改:

MAKE="'make'"

MAKE="'make' KVER=${kernelver}"

在终端中(不要费心复制/粘贴# 后的任何内容,它们只是给你的注释):

  1. sudo dkms remove rtl8812AU_8821AU_linux/1.0 --all# 删除旧的内核模块
  2. sudo rm -r /usr/src/rtl8812AU_8821AU_linux-1.0# 删除旧源代码

  3. sudo dkms add rtl8812au/4.3.14# 将 /usr/src 源添加到 dkms 树

  4. sudo dkms build rtl8812au/4.3.14# 构建驱动程序

  5. sudo dkms install rtl8812au/4.3.14# 安装驱动程序

  6. dkms status# 检查当前内核是否安装了正确的版本

  7. modinfo 8812au|grep vermagic# 检查 vermagic 值是否正确

相关内容