我正在尝试让 LAN 唤醒 (WoL) 在我的桌面上运行。它有一个 Asus P6T Deluxe v2 主板,我已成功启用 BIOS 电源管理中的 WoL 选项 [1]。桌面当前配置为 Windows 7 和 Arch Linux 的双启动。在 Windows 7 上,我可以使用 WoL 启动,但在我的 Arch Linux 上,我只能使用 WoL 恢复工作。我按照 Arch Linux wiki 页面上有关 WoL [2] 的说明进行操作。我必须在 Linux 上配置什么才能使用 WoL 启动?
我能找到的关于 Linux 上 WoL 的所有教程,只描述了如何使用它ethtool
以及如何从另一个设备生成魔法包,但我找不到任何一个可以解释如何确保可以使用 WoL 启动。
从 Ask Ubuntu [3] 上的一篇文章中我推断这可能与启用/proc/acpi/wakeup
我的以太网卡有关。我尝试使用它来启用它echo POP6 > /proc/acpi/wakeup
,不幸的是没有启用它。当我在 USB 设备(例如 USB3)上尝试使用它时,它确实在启用和禁用之间正确切换。
我是否走在正确的轨道上,启用我的以太网卡/proc/acpi/wakeup
,或者与启用 Linux 使用 WoL 启动无关?如果我应该启用它,为我的以太网卡启用它的正确方法是什么?
- http://blog.controlspace.org/2009/09/wake-on-lan-with-windows-7-and-asus-p6t.html
- https://wiki.archlinux.org/index.php/Wake-on-LAN
- https://askubuntu.com/questions/352888/wake-on-lan-13-04-problems
在我做出错误假设的情况下,这就是我假设 POP6 是我的以太网设备的方式。
执行lspci -tv
给了我:
-+-[0000:ff]-+-00.0 Intel Corporation Xeon 5500/Core i7 QuickPath Architecture Generic Non-Core Registers
| +-00.1 Intel Corporation Xeon 5500/Core i7 QuickPath Architecture System Address Decoder
| +-02.0 Intel Corporation Xeon 5500/Core i7 QPI Link 0
| +-02.1 Intel Corporation Xeon 5500/Core i7 QPI Physical 0
| +-03.0 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller
| +-03.1 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Target Address Decoder
| +-03.4 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Test Registers
| +-04.0 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 0 Control Registers
| +-04.1 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 0 Address Registers
| +-04.2 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 0 Rank Registers
| +-04.3 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 0 Thermal Control Registers
| +-05.0 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 1 Control Registers
| +-05.1 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 1 Address Registers
| +-05.2 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 1 Rank Registers
| +-05.3 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 1 Thermal Control Registers
| +-06.0 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 2 Control Registers
| +-06.1 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 2 Address Registers
| +-06.2 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 2 Rank Registers
| \-06.3 Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 2 Thermal Control Registers
\-[0000:00]-+-00.0 Intel Corporation 5520/5500/X58 I/O Hub to ESI Port
+-01.0-[01]--
+-03.0-[02]--+-00.0 Advanced Micro Devices, Inc. [AMD/ATI] Cypress PRO [Radeon HD 5850]
| \-00.1 Advanced Micro Devices, Inc. [AMD/ATI] Cypress HDMI Audio [Radeon HD 5800 Series]
+-07.0-[03]--
+-14.0 Intel Corporation 7500/5520/5500/X58 I/O Hub System Management Registers
+-14.1 Intel Corporation 7500/5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers
+-14.2 Intel Corporation 7500/5520/5500/X58 I/O Hub Control Status and RAS Registers
+-14.3 Intel Corporation 7500/5520/5500/X58 I/O Hub Throttle Registers
+-1a.0 Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #4
+-1a.1 Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #5
+-1a.2 Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #6
+-1a.7 Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #2
+-1b.0 Intel Corporation 82801JI (ICH10 Family) HD Audio Controller
+-1c.0-[06]--
+-1c.2-[05]----00.0 Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller
+-1c.5-[04]----00.0 Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller
+-1d.0 Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #1
+-1d.1 Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #2
+-1d.2 Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #3
+-1d.7 Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #1
+-1e.0-[07]----02.0 VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller
+-1f.0 Intel Corporation 82801JIR (ICH10R) LPC Interface Controller
+-1f.2 Intel Corporation 82801JI (ICH10 Family) 4 port SATA IDE Controller #1
+-1f.3 Intel Corporation 82801JI (ICH10 Family) SMBus Controller
\-1f.5 Intel Corporation 82801JI (ICH10 Family) 2 port SATA IDE Controller #2
具有LAN连接的设备enp5s0
根据呼叫的响应ip addr
。我认为这是来自lspci -tv
:的+-1c.2-[05]----00.0 Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller
。
执行cat /proc/acpi/wakeup
给了我:
Device S-state Status Sysfs node
NPE2 S4 *disabled
NPE4 S4 *disabled
NPE5 S4 *disabled
NPE6 S4 *disabled
NPE8 S4 *disabled
NPE9 S4 *disabled
NPEA S4 *disabled
P0P1 S4 *disabled pci:0000:00:1e.0
PS2K S4 *disabled
PS2M S4 *disabled
USB0 S4 *enabled pci:0000:00:1d.0
USB1 S4 *enabled pci:0000:00:1d.1
USB2 S4 *enabled pci:0000:00:1d.2
USB5 S4 *disabled
EUSB S4 *enabled pci:0000:00:1d.7
USB3 S4 *enabled pci:0000:00:1a.0
USB4 S4 *enabled pci:0000:00:1a.1
USB6 S4 *enabled pci:0000:00:1a.2
USBE S4 *enabled pci:0000:00:1a.7
P0P4 S4 *disabled pci:0000:00:1c.0
P0P5 S4 *disabled
P0P6 S4 *disabled pci:0000:00:1c.2
P0P7 S4 *disabled
P0P8 S4 *disabled
P0P9 S4 *disabled pci:0000:00:1c.5
NPE1 S4 *disabled pci:0000:00:01.0
NPE3 S4 *disabled pci:0000:00:03.0
NPE7 S4 *disabled pci:0000:00:07.0
GBE S4 *disabled
由于 Sysfs 节点与我从lspci -tv
设备 POP6 获得的节点相匹配,因此我认为必须启用 POP6 才能启用以太网卡。
答案1
在尝试了 BIOS 设置后,我终于能够使用 WoL 启动 Linux!显然我必须启用两者通过 PCI 设备开机和通过 PCIE 设备开机让它在 Linux 下使用 WoL 启动。为了确定这就是我尝试了所有组合的原因。
- 为了彻底起见,我尝试禁用它们,看看这是否会导致无法恢复使用 WoL,它确实做到了,因为它使得无法将唤醒标志设置为 g,正如预期的那样。
- 启用其中任何一个后,我能够恢复使用 WoL,但无法使用 WoL 启动。
- 当启用它们时,我能够使用 WoL 恢复和启动。
在 Windows 下,之后启用驱动程序设置以从关机状态唤醒,只有在以下情况下才能使用 WoL 启动通过 PCIE 设备开机已启用。启用通过 PCI 设备开机没有产生任何影响。更改这些驱动程序设置后,Windows 无法再进入睡眠模式。原因是以太网设备已添加到允许唤醒 Windows 的设备列表中。后通过电源配置禁用以太网设备唤醒 Windows,Windows 再次能够进入睡眠模式。