我正在运行 18.04 服务器,最近我的 Netgear AC1900 wifi 卡停止工作了。我不太清楚发生了什么,但经过一番调查,发现驱动程序出了问题。
我尝试过多次移除并重新安装驱动程序,但仍然有问题。以下是我的问题:
我尝试安装此驱动程序(https://github.com/zebulon2/rtl8814au.git) 通过 dkms。添加和构建一切顺利,但当我去安装时,它说已经安装了更新的版本:“警告!构建模块与安装模块之间存在差异!”
从 lusb 来看它显示为 0846:9054 NetGear,但从 ifconig 来看则什么也没有。
我确信我只需要正确删除其中的旧驱动程序,然后重新安装,但我不确定该怎么做。我一直在搜索帖子/在线,但无济于事。
有什么建议吗?
先感谢您。
更新:dkms 状态输出:
ndiswrapper, 1.60, 4.15.0-39-generic, x86_64: installed
ndiswrapper, 1.60, 4.15.0-42-generic, x86_64: installed
ndiswrapper, 1.60, 4.15.0-43-generic, x86_64: installed
realtek-rtl188xxau, 5.2.20.2~20190128: added
rtl8814au, 4.3.21, 4.15.0-43-generic, x86_64: installed (WARNING! Diff between built and installed module!)
lshw -C 网络输出:
*-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:04:00.0
logical name: enp4s0
version: 01
serial: 00:1d:7d:d9:5f:24
size: 10Mbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm vpd msi pciexpress bus_master cap_list rom 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 latency=0 link=no multicast=yes port=MII speed=10Mbit/s
resources: irq:24 ioport:d000(size=256) memory:fa000000-fa000fff memory:f9000000-f901ffff
*-network
description: Wireless interface
physical id: 1
bus info: usb@2:1
logical name: wlx00026f79d295
serial: 00:02:6f:79:d2:95
capabilities: ethernet physical wireless
configuration: broadcast=yes driver=rt2800usb driverversion=4.15.0-43-generic firmware=0.36 ip=192.168.0.182 link=yes multicast=yes wireless=IEEE 802.11
更新 2:
Kernel preparation unnecessary for this kernel. Skipping…
Building module:
Cleaning build area
‘make’ KVER=4.1.5.0.43-generic KSCR= /lib/modules//build... (bad exit status: 2)
ERROR: (dkms apart): binary package for rtl8814au: 4.3.21 not found
Error! Bad return status for module build on kernel: 4.1.5.0-43-generic (x86_64)
Consult /var/lib/dkms/rtl8814au/4.3.21/build/make.log for more information
构建日志:
DKMS make.log for rtl8814au-4.3.21 for kernel 4.15.0-43-generic (x86_64)
Fri Feb 1 11:17:08 PST 2019
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules//build M=/var/lib/dkms/rtl8814au/4.3.21/build modules
make[1]: *** /lib/modules//build: No such file or directory. Stop.
Makefile:1699: recipe for target 'modules' failed
make: *** [modules] Error 2
dkms.conf:
MAKE="'make' KVER=${kernelver}"
CLEAN="'make' clean"
BUILT_MODULE_NAME="8814au"
BUILT_MODULE_LOCATION=.
PACKAGE_NAME=rtl8814au
PACKAGE_VERSION=4.3.21
REMAKE_INITRD=yes
DEST_MODULE_LOCATION="/updates/dkms"
AUTOINSTALL=yes
更新 3:dkms 状态输出
ndiswrapper, 1.60, 4.15.0-39-generic, x86_64: installed
ndiswrapper, 1.60, 4.15.0-42-generic, x86_64: installed
ndiswrapper, 1.60, 4.15.0-43-generic, x86_64: installed
realtek-rtl88xxau, 5.2.20.2~20190128: added
rtl8814au, 4.3.21, 4.15.0-43-generic, x86_64: installed (WARNING! Diff between built and installed module!)
ls -al 输出:
total 2916
drwxr-xr-x 2 root root 4096 Jan 30 11:58 .
drwxr-xr-x 3 root root 4096 Dec 20 06:45 ..
-rw-r--r-- 1 root root 2496480 Dec 20 06:48 8814au.ko
-rw-r--r-- 1 root root 475488 Dec 20 06:45 ndiswrapper.ko
modinfo 8814au | grep ver 输出:
version: v4.3.21_17997.20160531
description: Realtek Wireless Lan Driver
srcversion: 116E23DCCBE75715C266328
vermagic: 4.15.0-39-generic SMP mod_unload
parm: rtw_chip_version:int
/var/lib/dkms/rtl.... modinfo ./8814au.ko | grep ver 输出:
version: v4.3.21_17997.20160531
description: Realtek Wireless Lan Driver
srcversion: 086375719088E1DFA1D1B6E
vermagic: 4.15.0-43-generic SMP mod_unload
parm: rtw_chip_version:int
答案1
在terminal
...
modinfo 8814au | grep ver
#检查已安装的模块
看看维玛吉克号。它应该与您当前的内核版本相匹配。
现在...
cd /var/lib/dkms/rtl8814au/kernel-4.18.0-13-generic-x86_64/module
仅更改kernel-4.18.0-13-generic-x86_64
部分以匹配您的系统上的内容。
然后做...
modinfo ./8814au.ko | grep ver
# 检查构建的模块
再次检查维玛吉克号码,它可能与你当前的内核不匹配,和/或维玛吉克从已安装的模块(从上面)。
然后...
cd /usr/src/rtl8814au-4.3.21
# 更改确切的目录路径以匹配您拥有的
sudo pico dkms.conf
# 编辑此文件
并改变/替换 MAKE 行使其看起来像这样......
MAKE="'make' KVER=${kernelver} KSRC=/lib/modules/${kernelver}/build"
MAKE="'make' KVER=${kernelver}"
然后再次执行dkms build...
命令,并重新检查维玛吉克值,如果看起来不错,则执行dkms install...
命令。
dkms status
# 检查 dkms 模块的状态
它应该显示类似这样的内容...
rtl8814au, 4.3.21, 4.18.0-13-generic, x86_64: installed
如果由于某种原因,这不能解决您的问题,我们将不得不在流程中添加一些步骤。
更新#1:
我们必须长途跋涉才能做到这点...这可能会给我们带来一些困难...但我们还是继续吧...
在terminal
...
cd
# 主目录
sudo dkms remove rtl8814au/4.3.21 --all
# 删除已安装的驱动程序
dkms status
# 不应显示任何 rtl8814au 驱动程序
modinfo 8814au
# 不应显示任何内容
确保修改已/usr/src/rtl8814au-4.3.21/dkms.conf
完成。
sudo dkms add rtl8814au/4.3.21
# 将驱动程序重新添加到 /var/lib/dkms
sudo dkms build rtl8814au/4.3.21
# 再次构建驱动程序
检查维玛吉克值,并且应该显示4.15.0-43-generic
sudo dkms install rtl8814au/4.3.21
#重新安装驱动程序
dkms status
# 应显示为已安装
sudo lshw -C network
# 显示更新的信息
cat /etc/netplan/*.yaml
# 显示 .yaml 文件
更新 #2:
该dkms remove
命令没有完全发挥作用,并且有一个 12 月 20 日的旧 8814au 驱动程序和 vermagic 4.15.0-39-generic,/lib/modules/4.15.0-43-generic/updates/dkms/8814au.ko
这导致出现问题。我们将其删除,然后就可以 dkms build/install/status 了。