網路管理器無法連接到網路(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
- 帶有加密 LVM 的三星 EVO SSD,沒有其他分區
這個問題類似於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 保持不變,將其更改為 hotplug 或靜態 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 ‘carrier-changed’, sys-iface-state: ‘managed’”,可以給問題一些提示?也許這是事實,加密的 LVM 在關閉後仍處於某種休眠狀態?這就是 CLI 在關閉和啟動時告訴您的內容(例如從休眠狀態恢復)。
您的集成英特爾 NIC 很可能支持節能乙太網 (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 交換機,它拒絕與一些新的千兆網卡一起工作。