TL;DR:我的网络接口似乎不接受/加载/安装适当的内核驱动程序模块 e1000e。唯一的解决方案提示来自 dmesg,它暗示已加载另一个驱动程序 (igb)。
预期结果:
使用板载 LAN,而不是使用手机的 USB 网络共享。
实际结果:板载局域网不会从内核模块加载/绑定驱动程序。
受影响的硬件:
技嘉 GA-Z87-UD3H - 板载 LAN - 英特尔公司以太网连接 I217-V (rev 05)
已尝试:我已在三种启动上尝试过此操作:原始 kubuntu 18.04 LTS。大多数故障排除都发生在此启动上,但我还在单独的 SSD 上尝试了其他一些启动,以查看是否特定于版本。
我已经对以下内核的源内核模块进行了 modprobed 和编译:4.15.0-96-lowlatency(随 18.04 ubuntu-studio 提供)5.3.0-26/43/45/46-generic(原始 kubuntu 18.04,pop_os)5.4.0-21/23-lowlatency(ubuntu-studio 20.04)。
在过去的 6 个月中,它曾经在 kubuntu 18.04 安装上运行。过去,它曾在相同的硬件上运行过 win 8.1、win 10、macos maverick/sierra/high sierra 以及 ubuntu 16.04、18.04。
受影响的设备:
sudo lshw -c network
[sudo] password for -:
*-network UNCLAIMED
description: Ethernet controller
product: Ethernet Connection I217-V
vendor: Intel Corporation
physical id: 19
bus info: pci@0000:00:19.0
version: 05
width: 32 bits
clock: 33MHz
capabilities: pm msi cap_list
configuration: latency=0
resources: memory:f7900000-f791ffff memory:f793d000-f793dfff ioport:f080(size=32)
sudo lspci -nnk 给我
00:19.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection I217-V [8086:153b] (rev 05)
DeviceName: Onboard LAN
Subsystem: Gigabyte Technology Co., Ltd Ethernet Connection I217-V [1458:e000]
Kernel modules: e1000e
请注意,所有正常工作的设备/模块上都没有出现“内核驱动程序正在使用:”这一行。
modprobe e1000e
modprobe -a e1000e
什么也不做。
因此我尝试从源代码进行编译:(对于 5.4 模块,我遵循了https://github.com/koljah-de/e1000e-dkms-debian更改 /usr/src/e1000e-3.6.0/src/kcompat.h 中的一行:
line:command
2799:#include <linux/pci-aspm.h>
到
line:command
2799:#include <linux/pci.h>
效果很好)
我尝试了简单的方法make make install
,重启系统,但没有任何效果。我尝试了前面提到的 git 中的 deb 安装方法。我尝试了
dkms add -m e1000e -v 3.6.0
dkms build -m e1000e -v 3.6.0
dkms -m e1000e -v 3.6.0
最后一次尝试手动绑定接口:
# apt install dpdk
和
sudo dpdk-devbind.py -b e1000e 0000:00:19.0
[sudo] password for -:
Error: bind failed for 0000:00:19.0 - Cannot bind to driver e1000e
从 journalctl 我有以下两行相关内容:
apr 10 19:55:43 a-Z87X-UD3H kernel: e1000e: probe of 0000:00:19.0 failed with error -2
apr 10 19:55:42 a-Z87X-UD3H kernel: e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
从 dmesg 中可以看到这些:
[ 2173.754182] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.6.0-k
[ 2173.754183] igb: Copyright (c) 2007-2014 Intel Corporation.
[ 5735.904821] e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[ 5736.742509] e1000e: probe of 0000:00:19.0 failed with error -2
[ 5736.742623] e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[ 5737.579534] e1000e: probe of 0000:00:19.0 failed with error -2
从此 dmesg 判断,接口正在加载 igb 内核模块,而该模块在其他地方没有出现,但这可能是问题的原因。但是,rmmod/modprobe -r 无法将其分离,因为从技术上讲它并未加载... 我也未能重现此 dmesg。我被难住了。