问题:
- 如果以太网电缆已连接,计算机将在挂起后 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)