PDA

View Full Version : Wake-on-LAN (WOL) and e100: Are FC3's init scripts broken?



jared
13th July 2005, 03:14 PM
I have a Compaq Deskpro EN SFF P500 (business workstation) which has an Intel 82557/8/9 [Ethernet Pro 100] integrated NIC. I enable WOL via the BIOS (Wakeup on PME Event). It has Fedora Core 3 installed, using the e100 driver. I want my server to automatically wakup this machine with WOL so it can make a backup then shutdown by itself.

The only way to make WOL work is by unplugging the power cable and plugging it back in (hard NIC reset). Then sending the Magic Packet wakes-up the machine. Once I boot FC3, WOL never works again. I need to pass acpi=force (old BIOS date) to the kernel in order for the OS to turn the power off to the system, otherwise it just halts the system with the power still on.

I have tried the stock FC3 kernel (2.6.9) and built 2.6.12.2 kernel. 2.6.12.2 uses e100-3.4.8, so I even built the latest e100-3.4.10 driver. None of these work. Once the machine booted-up, I did `ethtool eth0` and it confirmed WOL was enabled, just to make sure I did `ethtool -s eth0 wol g` to enable WOL on Magic Packet. Still, WOL did not work.

I tried booting the machine with WOL (power cord method), booting into FC3, verified network connectivity, then used `shutdown -h now`, WOL does not work. I also tried `init 0`, WOL does not work.

That let me to believe the init shutdown scripts were disabling the WOL setting. So, I tried `poweroff- f` which bypasses all the init shutdown scripts (at the risk of disk corruption), WOL still did not work. Even though `ethtool eth0` said it was enabled before I ran `poweroff -f`, no WOL wakeup!

Does anyone have more experiments I can try or insight to this problem, I would appreciate it!

Jman
14th July 2005, 03:03 AM
What tool is sending the WOL packets? Tried sending them with ether-wake yet?

jared
14th July 2005, 03:23 AM
Yes, ether-wake comes with FC3 and is the Magic Packet sender I am using. Since I am able to wake up the machine after unplugging and plugging in the power cable with ether-wake, that proves my network is able to do WOL. The real trick is narrowing the problem in FC3 somewhere.

eglnx
14th July 2005, 06:43 PM
Jared, I have been fighting with the same exact problem. My system is a Dell (circa 2001), but also has the e100.

Initially I was doing the acpi=force in grub. The main reason I did that is I like for the physical power button to initiate a shutdown -h now in stead of just cut the power. From my limited testing, this acpi option seems to make it work.

However, I could not get WOL to power on the PC if I shut down from Linux (any method: init 0, poweroff, shutdown -h now...). But if I turn the PC on with the power button, wait until it beeps, then turn it back off, I could get WOL to work. So, I knew I was sending the right Magic Packet and that the hardware is set up properly.

I also tried using ethtool and it seems to already have 'g' set for WOL.

It appears that something is disabling WOL, but I could not narrow it down exactly.

Finally, I removed the acpi=force from my grub line and booted up. Then shut down with init 0 and ... ta-da... the WOL works. Without forcing acpi, my system does power down completely (unlike Jared's, apparently). Maybe this is due to apm running now instead of acpi?

So, that is where I left it on my system. I can remotely power off and on the system, so it is basically fine.

BUT, now I can't press the front power switch to do an orderly shutdown. The PC cuts off immediately. Due to the remote location of this PC, I wanted to have this ability. I'd rather have WOL work, though.

If anyone knows how to enable the power button to do this without acpi, that would be helpful.

Eric

Yikes2000
17th July 2005, 09:17 PM
I have a solution. Although my OS is Debian 3.1, it should work for you too. Kernel 2.6.12.3 with ACPI enabled...


# cd /proc/acpi
# cat wakeup

I noticed 'PCI0' has 'Status' being 'disabled', and my e100 resides on 'PCI0'. So I did:


# echo -n "PCI0" >> /proc/acpi/wakeup

Afterwards the computer will wakeup from S3 via magic packet. To make it stick, I added the following to my /etc/network/interfaces:


iface eth0 inet static
...
post-up echo -n "PCI0" >> /proc/acpi/wakeup

Good luck!

jared
19th July 2005, 02:51 AM
This machine is a Compaq Deskpro EN SFF (small form-factor) P500 business desktop. The NIC is an integrated Intel 100 with WOL working if the power plug is removed and plugged-in again. I believe it to be a Linux software issue, I am running kernel 2.6.12.2 with the latest e100-3.4.10 NIC driver.

Checking the wakeup state as you mentioned...


# cat /proc/acpi/wakeup
Device Sleep state Status
PCI0 4 disabled
RTC 4 disabled
PS2M 1 disabled
KBD 1 disabled
COM1 1 disabled
COM2 1 disabled
USB0 1 disabled
PBTN 4 *enabled


Changing the wakeup state...


# echo -n PCI0 >> /proc/acpi/wakeup


A result of changing the wakeup state...


# dmesg
ACPI: 'RTC' and 'PCI0' have the same GPE, can't disable/enable one seperately
ACPI: 'COM1' and 'PCI0' have the same GPE, can't disable/enable one seperately
ACPI: 'COM2' and 'PCI0' have the same GPE, can't disable/enable one seperately
ACPI: 'PBTN' and 'PCI0' have the same GPE, can't disable/enable one seperately


Verifying the change...


# cat /proc/acpi/wakeup
Device Sleep state Status
PCI0 4 enabled
RTC 4 enabled
PS2M 1 disabled
KBD 1 disabled
COM1 1 enabled
COM2 1 enabled
USB0 1 disabled
PBTN 4 *enabled


What sleep modes can this machine handle...


# cat /proc/acpi/sleep
S0 S1 S4 S5

#cat /sys/power/state
standby mem disk


None of these had an effect...


#echo -n 4 >> /proc/acpi/sleep
#echo -n 5 >> /proc/acpi/sleep
#echo -n S4 >> /proc/acpi/sleep
#echo -n S5 >> /proc/acpi/sleep
#echo -n "mem" >> /sys/power/state
#echo -n "disk" >> /sys/power/state


Only command that was able to affect the state of the machine. The only way to get it back to normal operation is by pressing the power button...


#echo -n "standby" >> /sys/power/state


Cleanly shutdown and poweroff the machine (power only turns off if acpi=force is passed to the kernel)... I think this is S5 though.


# shutdown -h now


Sending the Magic Packet does not wakeup the machine. If I pull the power cord and plug it back in, the Magic Packet works OK.

h-b
19th July 2005, 02:33 PM
With my Fujitsu Siemens Board D1107 with integrated Intel Etherpro 100, I have had the same problem. WOL only works when pulling the power plug.

After reading this thread I added a "acpi=off" to the kernel and that does it!

HTH
hb

jared
19th July 2005, 02:49 PM
My BIOS is old so I need acpi=force to enable it. However, if I do not enable ACPI then `shutdown -h now` will not turn the power off to the machine, it halts fine, but the power remains on. I need it to turn off completely.

pmoerenhout
16th May 2008, 08:17 AM
Hi, I have an Compaq W6000 which experienced same problem. After some kernel upgrade, WOL stopped working. By adding the folllowing line to /sbin/halt.local, the machine responded to WOL Magic Packets again! During the halt script, the /sbin/halt.local user script is executed.

rmmod e100