Recently I started playing a bit with Wake-on-LAN to make my home setup a little bit more confortable, but in the process I got curious about ACPI configuration.
After a quick check, I noticed that my Ethernet controller had support for WOL, so I played with it a bit:
Settings for eth0: [...] Supports Wake-on: pumbg Wake-on: g
After some tests, I realised that:
- When my computer is suspended, WOL works fine from another device.
- When my computer is shutdown, nothing happens.
Now the thing is, I want to use WOL so that my computer can get ready before I arrive home. I have no need for the feature if I need to keep the computer in suspend mode for it to work (the system would resume in just a few seconds anyway).
I investigated a bit, and noticed that my Ethernet card had an S4 S-state entry in
Device S-state Status Sysfs node PXSX S4 *enabled pci:0000:09:00.0
From what I've read, this means that my Ethernet controller can be used as a trigger when and only when the system is in state S4 (or below), which corresponds to hibernation. This explains why I can use WOL when in suspend mode (S1/S3), but not once I've run
poweroff (which I believe puts the machine in S5, Soft Off).
I'm not very familiar with ACPI, and my knowledge in hardware certainly doesn't extend to Ethernet controllers. What I'm wondering is: is there any way I could have my system maintain power to the Ethernet controller in S5 (when the system has been powered off) ? Does my (3.13) Linux kernel have a say there, or is it all up to my motherboard's (or controller's) design?
It seems like I can decide which devices can serve as triggers by writing to
/proc/acpi/wakeup (which I believe is deprecated now). But can I be more specific, and also decide at which state a device may wake the machine up?