Linux

網路(通過乙太網)在睡眠模式後不工作

  • October 3, 2020

我最近在我的台式電腦上安裝了 Debian 10.6,並在將電腦從睡眠模式喚醒後發現我的乙太網網路連接出現問題。具體來說,從睡眠模式喚醒電腦後,我沒有乙太網連接。重新啟動電腦後,連接恢復。我的 Linux 核心版本是 4.19.0-11-amd64。任何想法如何解決這個奇怪的問題?

根據 AB 的建議,以下是來自的輸出lspci -k | grep -A3 Ethernet

02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8071 PCI-E Gigabit Ethernet Controller (rev 16)
   Subsystem: Acer Incorporated [ALI] 88E8071 PCI-E Gigabit Ethernet Controller
   Kernel driver in use: sky2
   Kernel modules: sky2
03:00.0 FireWire (IEEE 1394): JMicron Technology Corp. IEEE 1394 Host Controller

我不知道它是否有幫助,但我現在還添加了一些從dmesg下面執行的相關行: 從睡眠中醒來後:

[ 7544.632643] ata3.00: configured for UDMA/133
[ 7544.935093] IPv6: ADDRCONF(NETDEV_UP): enp2s0: link is not ready
[ 7544.937339] sky2 0000:02:00.0 enp2s0: enabling interface
[ 7544.937528] IPv6: ADDRCONF(NETDEV_UP): enp2s0: link is not ready
[ 7547.437266] do_IRQ: 2.34 No irq handler for vector

重啟後:

[   19.698910] IPv6: ADDRCONF(NETDEV_UP): enp2s0: link is not ready
[   19.701050] sky2 0000:02:00.0 enp2s0: enabling interface
[   19.701183] IPv6: ADDRCONF(NETDEV_UP): enp2s0: link is not ready
[   22.187327] sky2 0000:02:00.0 enp2s0: Link is up at 1000 Mbps, full duplex, flow control both
[   22.187359] IPv6: ADDRCONF(NETDEV_CHANGE): enp2s0: link becomes ready
[   53.492928] fuse init (API version 7.27)
[   60.534172] rfkill: input handler disabled

事實證明,我的問題與輸出中的以下行有關dmesg

[ 7547.437266] do_IRQ: 2.34 No irq handler for vector

這個問題在以下關於 askubuntu 的文章中得到解決:https ://askubuntu.com/questions/1029620/ubuntu-18-04-lts-sky2-ethernet-stops-working-after-system-resume-from-suspend#comment1956841_1094045 . 非常感謝使用者 AB 向我指出這篇文章!

我做了以下事情來解決這個問題:

  • 將該行添加GRUB_CMDLINE_LINUX_DEFAULT="quiet splash sky2.disable_msi=1"到文件 /etc/default/grub
  • 執行命令update-grub。注意:我必須這樣做,su - root而不僅僅是su為了能夠執行update-grub.
  • 重新啟動電腦。

引用自:https://unix.stackexchange.com/questions/612712