Suse 10 and Wake on LAN
Posted on 2006-04-13
Hello, I have spent about 60 hours trying to work out a scenario, and I am at wits end. I am to the point that I am considering REmigrating back to WinXP...
Okay, I have a home network with three machines (along with two not networked). I have a WinXP machine (wife's) and a WinXP/Suse 10 machine (mine), along with a machine that is built to be a backup server, running Suse 10 (at least, that was the plan). What I wanted to do is have my wife's machine (#1) and my machine (#2) perform a Wake on LAN function to the backup server (#3), run the backups, then power #3 off. However, my backup server's Wake on LAN isn't working. Here are some specs about the machines:
#1 (Not really important at this point)
#2 Asus A8V Deluxe with Marvell integrated NIC
#3 DFi Lanparty UT NF4 Ultra D with 2 x Intel Pro/1000MT NICs, 1 x Vitesse integrated NIC, 1 x Marvell integrated NIC
All machine's BIOSes are set to allow WOL(PME)...
Now, using #3 (backup server)... I started only using the two Intel NICs, with the onboard NICs disabled. My ACPI settings in the BIOS reflect 'S1&S3'... If I shut down before Linux loads, using the power button on the case, WOL works. However, if I let Linux load, then shutdown through the OS, the NIC is powered down (as evidenced by my link indicator on the router going out). I used ethtool to find out if WOL is enabled with the kernel module (e1000) and it is by default. I decided to give up on the PCI NICs, and removed them. I then enabled the onboard NICs. I setup both NICs through Suse's YaST and all seemed well. I used ethtool again on both NICs, and they are WOL capable, but it was disabled in the module (sk98lin) by default , I used 'ethtool -s ethx wol g' to enable WOL on both NICs and verified it through ethtool. Still, no workie.
Just for grins, as I was pulling out my hair, I went over to my personal machine (#2) and ran ethtool to verify it's WOL capability. It was capable, but not enabled in the module. So, using ethtool, I enabled this, and verified it. However, this machine also will not WOL. The net link indicator goes out when the machine shutsdown... unless I use the power switch on the case before Linux loads.
For grins, I decided to try this on my work machine (#4), which also runs Suse 10... This machine consists of some MSI motherboard, with an integrated Via Rhine NIC. This is so odd... I used ethtool to verify if the NIC would do WOL, and it could. I shutdown the machine, not even thinking to look in ethtool to see if WOL is enabled in the kernel module. When I shutdown, the activity indicator on my router DID NOT go out, so even though this doesn't prove that WOL works, at least the NIC seems to be powered. Now the kicker... when I booted back into Suse, I ran ethtool on the NIC and WOL was DISABLED!! On #4, it doesn't matter if the kernel module has WOL enabled or not, the NIC still links to the router when the machine is powered off. I am stumped...
Basically, Linux doesn't leave the NIC powered when the system goes down, but the computer itself DOES if I shut the computer off using the case's power switch...
**** In further developments... I have been using lspci and pci-tool to set the power state of the PCI NICs to D3 (sleep) instead of D0. I put this in a script, then verified that it worked. It did work, so I put the script into /etc/init.d/halt.local, and I can see that it happens AFTER the NICs are shutdown (the power state is applied after NIC shutdown), yet my link is lost and the NICs are dead when the computer shuts down.