插入以太网电缆后立即从 S3 睡眠状态恢复

插入以太网电缆后立即从 S3 睡眠状态恢复

问题:

  • 如果以太网电缆已连接,计算机将在挂起后 5 秒内从 S3 睡眠状态(挂起到内存)恢复

硬件:

  • 英特尔 E2180
  • 技嘉 P35-DS3L
  • Realtek RTL8111b(使用 r8169 模块)

软件:

  • 我已禁用所有设备的 ACPI 唤醒,/proc/acpi/wakeup
  • 每内核日志消息看起来正常 - 没有驱动程序阻止挂起,也没有任何其他问题。成功挂起(以太网电缆断开)和中断挂起(以太网电缆连接)的日志是相同的。
  • 在 S3 挂起到 RAM 时,内核强制启用 PCI-e 桥的 ACPI 唤醒。我怀疑这是正常的。
  • BIOS:USB 鼠标/键盘唤醒已禁用、铃声唤醒已禁用、PME 唤醒已启用
  • ethtool报告 WOL 设置为

我怀疑有故障的设备发出连续的 WOL 数据包,但计算机开启时 Wireshark 没有记录任何 WOL 数据包。

即使所有其他端口(USB)都已断开(只留下 VGA/以太网),也会发生这种情况。

另外,我需要 WOL 功能

编辑:

  • 使用以下方式禁用网络接口上的 WOLethtool阻止立即恢复。

答案1

事实证明,这是对内核的 LAN 唤醒接口设置的误解。从ethtool 手册

Sets Wake-on-LAN options.  Not all devices support this.
The argument to this option is a string of characters
specifying which options to enable.

p   Wake on PHY activity
u   Wake on unicast messages
m   Wake on multicast messages
b   Wake on broadcast messages
a   Wake on ARP
g   Wake on MagicPacket™
s   Enable SecureOn™ password for MagicPacket™
d   Disable (wake on nothing).  This option
    clears all previous options.

我假设单播或广播标志会限制魔术包的来源,即:

  • ug:仅当收到单播 WoL 数据包时才唤醒
  • bg:仅当收到广播 WoL 数据包时才唤醒

但是,单播或广播标志匹配任何单播或广播数据包。实际发生的情况是:

  • ug:如果收到单播数据包或收到 WoL 数据包(单播或广播;只要 MAC 匹配就无所谓)则唤醒
  • bg:如果收到广播数据包或收到 WoL 数据包则唤醒(单播或广播;只要 MAC 匹配就无所谓)

当然,常见的单播警告适用于单播 (u) 和 WoL (g) 标志:仅当目标的 MAC 仍由 ARP 表保存时才能接收单播数据包。

答案2

我有相同的主板和相同的问题……您几乎已经找到解决方案了。更改网络接口的配置,使其仅接受“magicpacket”,忘记多播/单播……

sudo ethtool -s eth0 wol g

这对我来说很有效,而且作为额外的好处,我能够从网络唤醒计算机(使用 etherwake)

相关内容