1

I am trying to get Wake-on-LAN (WoL) to work on my desktop. It has an Asus P6T Deluxe v2 motherboard and I have successfully enabled the WoL option within the BIOS power management [1]. The desktop is currently configured as a dual boot of Windows 7 and Arch Linux. On Windows 7 I am able to boot using WoL, but on my Arch Linux I only got resume to work using WoL. I followed the instructions on the Arch Linux wiki page about WoL [2]. What do I have to configure on Linux to make it possible to boot using WoL as well?

All the tutorials about WoL on Linux I have been able to find, only describe how to enable it using ethtool and how to generate a magic package from another device, but none that I could find that would explain how to make sure you can boot using WoL.

From a post on Ask Ubuntu [3] I deduced that it probably has something to do with enabling /proc/acpi/wakeup for my Ethernet card. I tried enabling it using echo POP6 > /proc/acpi/wakeup which unfortunately did not enable it. When I tried it for a USB device, e.g. USB3, it did toggle correctly between being enabled and disabled.

Am I on the right track, with enabling my Ethernet card using /proc/acpi/wakeup or is it irrelevant to enabling Linux to boot using WoL? And if I should enable it, what is the correct way to enable it for my Ethernet card?

  1. http://blog.controlspace.org/2009/09/wake-on-lan-with-windows-7-and-asus-p6t.html
  2. https://wiki.archlinux.org/index.php/Wake-on-LAN
  3. https://askubuntu.com/questions/352888/wake-on-lan-13-04-problems

In the case I made a bad assumption, this is how I assumed POP6 is my Ethernet device.

Executing lspci -tv gave me:

-+-[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

The device with a LAN connection is enp5s0 according to the respone of calling ip addr. Which I assumed is this one from lspci -tv: +-1c.2-[05]----00.0 Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller.

Executing cat /proc/acpi/wakeup gave me:

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

Since the Sysfs node matches that what I got from lspci -tv for device POP6, I assumed I had to enable POP6 to enable my Ethernet card.

1

After experimenting with the BIOS settings I finally was able to get Linux to boot using WoL! Apparently I had to enable both Power On By PCI Devices and Power On By PCIE Devices for it to boot under Linux using WoL. To be sure that was the cause I tried all combinations.

  1. Just to be thorough I tried disabling them both to see whether that would make it impossible to resume using WoL, which it did, because it made it impossible to set the Wake-on flag to g, as was to be expected.
  2. When enabling either of them I was able to resume using WoL, but unable to boot using WoL.
  3. When enabling them both I was able to both resume and boot using WoL.

Under Windows, after enabling the driver settings to Wake From Shutdown, it was only able to boot using WoL when Power On By PCIE Devices was enabled. Enabling Power On By PCI Devices made no impact. After changing these driver settings, Windows was no longer able to go into sleep mode. The reason for this was that the Ethernet device was added to the list of devices that are allowed to wake Windows. After disabling the Ethernet device from waking Windows through the power configuration, Windows was again able to go into sleep mode.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.