网络管理器无法连接到网络(Debian 10 / Kernel 4.19)

网络管理器无法连接到网络(Debian 10 / Kernel 4.19)

我将整个桌面设置从 Windows 切换到 GNU/Linux + Debian 10。我能够运行 debian netinstaller 并连接主板进行互联网软件更新。

但每当我完成完整的设置并运行时,Debian 就无法通过以太网连接到网络。登录后界面立即显示网络已断开。更换主板后,我相当确定这是某种软件/驱动程序问题。

我的硬件设置包括:

  • 华硕 ROG Crosshair Hero VI
  • PCI1 中的 Nvidia GTX 670
  • PCI2 中的 Nvidia GTX 970(目的是直通到虚拟机)
  • 锐龙 7 2700X
  • 三星 EVO SSD 带加密 LVM,无需进一步分区

这个问题类似于https://askubuntu.com/questions/1135412/updated-to-19-04-and-no-ethernet-now,但我的设置不同,对 stackexchange 等的研究没有带来任何帮助。

输出systemctl status NetworkManager

device (enp4s0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')  
device (enp4s0): state change: config -> ip-config (reason 'none', sys-iface-state:'managed')  
dhcp4 (enp4s0): activation: beginning transaction (timeout in 45 seconds)
DHCPrequests  
dhcp4 (enp4s0): dhclient started with pid 1334
device (enp4s0): state change: ip-config -> unavailable (reason 'carrier-changed', sys-iface-state: 'managed')  
dhcp4 (enp4s0): canceled DHCP transaction, DHCP client pid 1334  
dhcp4 (enp4s0): state changed unknown -> done  
manager: NetworkManager state is now DISCONNECTED

输出lspci | grep Ethernet

Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)

/etc/network/interfaces 保持不变,将其更改为热插拔或静态 IP 地址没有帮助。与在 nmcli 中设置静态网络设置相同。

输出nmcli device show enp4s0

GENERAL.DEVICE: enp4s0
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 04:92:26:DA:16:CC
GENERAL.MTU: 1500
GENERAL.STATE: 20 (unavailable)

输出uname -a

Linux NAMEOFPC 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5+deb10u1 (2019-07-19) x86_64 GNU/Linux

输出Dmesg | grep enp4s0

    1.054338] igb 0000:04:00.0 enp4s0: renamed from eth0
[   56.832109] IPv6: ADDRCONF(NETDEV_UP): enp4s0: link is not ready
[   56.857033] IPv6: ADDRCONF(NETDEV_UP): enp4s0: link is not ready
[   59.608583] igb 0000:04:00.0 enp4s0: igb: enp4s0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX
[   59.608829] IPv6: ADDRCONF(NETDEV_CHANGE): enp4s0: link becomes ready
[   83.708581] igb 0000:04:00.0 enp4s0: igb: enp4s0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX
[  147.966461] IPv6: ADDRCONF(NETDEV_UP): enp4s0: link is not ready
[  320.546500] IPv6: ADDRCONF(NETDEV_UP): enp4s0: link is not ready
[  323.280590] igb 0000:04:00.0 enp4s0: igb: enp4s0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX
[  323.280831] IPv6: ADDRCONF(NETDEV_CHANGE): enp4s0: link becomes ready
[  326.168592] igb 0000:04:00.0 enp4s0: igb: enp4s0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX

物理断开连接不是解决方案,NetworkManager 会立即通知物理连接不会再次断开。唯一的解决方案似乎是ip link set enp4s0 down紧随其后ip link set enp4s0 up。这将是 ps

我也添加了非自由存储库 - 但无济于事。我没有尝试的唯一解决方案是专有的英特尔 I211 驱动程序。但我不知道这是否是解决方案,因为提到的 askubuntu-post 使用内核 5.x 和 Realtek 网卡 - 也有同样的问题。

编辑:此外,这个问题似乎很少被提及,我想如果唯一的解决方案是将新的驱动程序编译到内核空间中,您会找到更多有关此问题的帖子。此外,英特尔表示,I211 的 IGP-linux 驱动程序是为内核 2.x 和 3.x 制作的...

cat /sys/class/net/enp4s0/device/power/control 的输出:

“在”

直接连接到路由器即可立即建立网络连接。此外,交换机确实限制在 100mbps。我还没有时间安装 ethtool。当我有时间的时候我会更新。

这个问题有什么解决办法吗?

也许是 NetworkManager 的消息“reason '载体更改',sys-iface-state: '托管'”,这可以给问题带来一些提示?也许事实是,加密的 LVM 在关闭后仍处于某种休眠状态?这就是 CLI 在关闭和启动(例如从休眠状态恢复)时告诉您的信息。

答案1

您的集成英特尔网卡很可能支持节能以太网 (EEE):如果链接一段时间不活动,它将降至较低的速度水平,直到再次出现流量。这对于千兆位链路最为重要,但根据消息,该接口仅协商 100Mbps 链路,因此链路的另一端可能不支持千兆位速度和 EEE。

或者,如果另一端肯定具有千兆位能力,那么仅协商 100Mbps 链路的事实表明远程端可能会因 EEE 导致的 100Mbps 和千兆位模式之间的快速切换而感到困惑。从一种模式到另一种模式的意外或太慢的切换可能会导致 NetworkManager 的carrier-changed状态。

所以你可以尝试关闭 EEE:

ethtool --set-eee enp4s0 eee off

或者它可能类似于这个错误: 这个命令说什么?

cat /sys/class/net/enp4s0/device/power/control

如果它说auto,请尝试以下操作:

echo "on" > /sys/class/net/enp4s0/device/power/control

这告诉内核保持网络接口的 PCIe 端通电,而不是在 NIC 似乎未配置使用时可能将其断电。

最坏的情况是,新主板中的 NIC 与网络电缆另一端的任何设备之间可能存在硬件兼容性问题。我曾经有一个 8 端口 DLink 10/100Mbps 交换机,它拒绝与一些新的千兆位 NIC 配合使用。

答案2

我注意到日志中有“运营商更改”的断开连接。

我遇到了“运营商更改”错误,经常断开以太网连接,在尝试了多个论坛中的所有解决方案后,我最终将 CAT5 电缆升级为 CAT7 电缆(10 米长 - eBay 上很便宜),解决了问题。显然,旧的 CAT5 电缆无法处理我的 ISP 的升级速度(Virgin Media,英国)。新的 CAT7 电缆不仅杜绝了丢包现象,而且现在还允许速度从 100Mb/s 自动配置到 1000Mb/s。希望这可以帮助任何想要解决“运营商更改”问题的人。

相关内容