最近,我的 NUC5i5RYH 上的以太网连接停止工作,前一天还好,第二天就不行了。我尝试了各种方法来诊断和修复此问题。
ifconfig -a 显示
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 700395 bytes 42370951 (42.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 700395 bytes 42370951 (42.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.25 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::1baf:1704:fcf1:8bbe prefixlen 64 scopeid 0x20<link>
ether 00:21:5c:d2:31:51 txqueuelen 1000 (Ethernet)
RX packets 250650 bytes 142163026 (142.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 59591 bytes 11880584 (11.8 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lspci -nn | grep Eth 显示以下内容:
00:19.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection (3) I218-V [8086:15a3] (rev 03)
sudo lshw -C network 显示以太网设备无人认领:
*-network UNCLAIMED
description: Ethernet controller
product: Ethernet Connection (3) I218-V
vendor: Intel Corporation
physical id: 19
bus info: pci@0000:00:19.0
version: 03
width: 32 bits
clock: 33MHz
capabilities: pm msi cap_list
configuration: latency=0
resources: memory:aa100000-aa11ffff memory:aa13b000-aa13bfff ioport:2080(size=32)
*-network
description: Wireless interface
product: Wireless 7265
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:02:00.0
logical name: wlp2s0
version: 59
serial: 00:21:5c:d2:31:51
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=4.8.0-27-generic firmware=22.361476.0 ip=192.168.1.25 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:46 memory:aa000000-aa001fff
运行 dmesg | grep e1000e 显示错误代码:
[ 0.944913] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[ 0.944914] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[ 0.945111] e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[ 1.770398] e1000e: probe of 0000:00:19.0 failed with error -2
经过多次搜索我尝试过:
- 关闭计算机,拔下以太网线,重新打开电源,然后重新插入以太网线 - 问题依旧
- 使用 modprobe 删除并重新添加 e1000e 模块 - 没有变化
从英特尔 NUC 网站下载最新的 e1000e 压缩包,结果却显示
/bin/sh: 1: [: -ge: 意外运算符 Makefile:181:* *中止构建。*** 此驱动程序不支持早于 2.4.0 的内核版本。停止。
我甚至启动了 Debian 8 的安装,直到检测到网络时,安装程序也没有看到 NIC。
我不确定下一步该尝试什么。虽然无线接口仍然有效,但我真的很想理清有线连接并让它也能正常工作。
更新:2016 年 11 月 22 日 以下是 MariusMatutiae 提供的 diff 命令的结果。我必须认真做些 DuckDuckGo 工作才能理解这一切。
mark@fermata:~$ diff <(cat /proc/interrupts) <(modprobe e1000e 2>/dev/null || cat /proc/interrupts)
1,35d0
< CPU0 CPU1 CPU2 CPU3
< 0: 20 0 0 0 IR-IO-APIC 2-edge timer
< 1: 0 1 1 0 IR-IO-APIC 1-edge i8042
< 3: 0 0 0 0 IR-IO-APIC 3-edge nuvoton-cir
< 8: 0 1 0 0 IR-IO-APIC 8-edge rtc0
< 9: 0 1 3 0 IR-IO-APIC 9-fasteoi acpi
< 12: 3 0 1 0 IR-IO-APIC 12-edge i8042
< 23: 8 5 17 5 IR-IO-APIC 23-fasteoi ehci_hcd:usb1
< 40: 0 0 0 0 DMAR-MSI 0-edge dmar0
< 41: 0 0 0 0 DMAR-MSI 1-edge dmar1
< 42: 137 61 151 560 IR-PCI-MSI 327680-edge xhci_hcd
< 43: 4083 1400 36869 1544 IR-PCI-MSI 512000-edge ahci[0000:00:1f.2]
< 44: 2506 211 6307 143 IR-PCI-MSI 32768-edge i915
< 45: 12 0 0 2 IR-PCI-MSI 360448-edge mei_me
< 46: 525 0 49 26 IR-PCI-MSI 442368-edge snd_hda_intel:card1
< 47: 141 24 128 8568 IR-PCI-MSI 1048576-edge iwlwifi
< 48: 617 39 728 56 IR-PCI-MSI 49152-edge snd_hda_intel:card0
< NMI: 8 10 9 7 Non-maskable interrupts
< LOC: 9051 9355 9378 8757 Local timer interrupts
< SPU: 0 0 0 0 Spurious interrupts
< PMI: 8 10 9 7 Performance monitoring interrupts
< IWI: 0 0 0 0 IRQ work interrupts
< RTR: 3 0 0 0 APIC ICR read retries
< RES: 3722 3593 3893 3330 Rescheduling interrupts
< CAL: 1744 1586 1352 1744 Function call interrupts
< TLB: 229 200 127 168 TLB shootdowns
< TRM: 0 0 0 0 Thermal event interrupts
< THR: 0 0 0 0 Threshold APIC interrupts
< DFR: 0 0 0 0 Deferred Error APIC interrupts
< MCE: 0 0 0 0 Machine check exceptions
< MCP: 3 3 3 3 Machine check polls
< ERR: 7
< MIS: 0
< PIN: 0 0 0 0 Posted-interrupt notification event
< PIW: 0 0 0 0 Posted-interrupt wakeup event
由于我开始怀疑这是一个硬件问题,我已向英特尔提交了保修索赔。等待他们的回复。
答案1
难题。首先,无人认领意味着你没有该接口的驱动程序,我们知道这是消息输出(在您的评论中):
[ 1.770398] e1000e: probe of 0000:00:19.0 failed with error -2
我再三确认e1000e是适合您的接口的驱动程序(8086:15a3),事实上它是:
# modinfo e1000e | grep 8086 | grep -i 15a3
alias: pci:v00008086d000015A3sv*sd*bc*sc*i*
然后我在谷歌上搜索
e1000e: probe of failed with error "-2"
请注意你需要引用-2,因为-是个排除运算符,因此如果你不使用引号,它将返回所有链接,这些链接不要包括2。
你可以亲眼看到,对于导致你出现问题的原因,并没有明确的共识:你可以阅读这里彻底的讨论,解决问题的方案只对一个人有效,或者这里你找到有人通过更新驱动程序解决问题的成功案例,甚至这里一个男人为了解决坏掉的 wifi 卡问题而加了一张额外的 wifi 卡的故事e1000驱动程序,结果发现,在重新通电后,以太网接口工作正常。上面的 Google 搜索返回的结果更多是相同的,包括几个人认为这是一个与 BIOS 相关的问题。
您可以通过运行以下命令提供更多信息:
# rmmod e1000e
# diff <(cat /proc/interrupts) <(modprobe e1000e 2>/dev/null || cat /proc/interrupts)
至少显示哪个中断连接到e1000e失败。深的您的情况下所需的调试可能应该从此开始。