How to enable WOL?

Hi everyone. I would like to have the possibility to wake on lan my pc which has suse 11.1 from another pc with suse 10.2 on it. Both computers are on the same subnet, but they are not conected via cable to the same router, instead they are both connected via cable to their own router. The two routers are connected together wirelessly via WDS. Now I have tried to use the ether-wake command from the pc wich 10.2, but the other pc didn’t wake up. I know my ethernet card supports WOL since I had win xp previosly installed on this pc and had no trouble waking it on lan from the second pc. But at that time both pc ware connected via cable to the same router, while now they are not. So I gues there must be some option on suse 11.1 to enable WOL support. I googled around and found some clues about writing a shutdown script which enables WOL, but still don’t know how to write it correctly and where to put it, so that it would execute correctly. Any help you can give me will be highly appreciated, thanks.

WOL uses a magic packet. You have to arrange to forward that packet between the subnets. Generally this magic packet is a UDP packet and is broadcast. So you have to work out how to get this to be forwarded.

Wake-on-LAN - Wikipedia, the free encyclopedia

Another way is to use a WOL proxy. I had a quick look on the net and there are some likely candidates, including one I wrote a while ago. Maybe I should figure out some way to publish my work again.

You could also make some kind of homebrew WOL proxy using ssh or something like that.

ken_yap thanks. Both routers and also both pc are on the same subnet 192.168.1.x, since I use WDS Wireless Distribution System - Wikipedia, the free encyclopedia mode, it means the second router works as a repeater and extends the existing subnet of the first router, without traditional bridging to new subnet. So I don’t know if I need any forwarding of the WOL packet at all (correct me if I’m wrong). Maybe the WOL packet gets to the second pc, but the pc doesn’t wake up, because suse by default prevents the wol of the network card on shutdown. So before going any further with network configuration, I would like to make sure the WOL is enabled on suse 11.1, is there any way to check this? Thanks again for your help.

I’ve heard of some NICs being left in a state where they won’t receive packets, but those problems are specific to the model of the NIC or due to BIOS problems, and you have to search for reports of those. If you have third machine you can at least see if the packets are being broadcasted by using something like wireshark to sniff the medium.

arcull wrote:
> Hi everyone. I would like to have the possibility to wake on lan my pc
> which has suse 11.1 from another pc with suse 10.2 on it. Both computers
> are on the same subnet, but they are not conected via cable to the same
> router, instead they are both connected via cable to their own router.
> The two routers are connected together wirelessly via WDS. Now I have
> tried to use the ether-wake command from the pc wich 10.2, but the other

The ether-wake program uses the AMD WoL Magic Packet, which is a pure
ethernet-level packet.

E.g.:


No.     Time        Source                Destination           Protocol Info
2333 13.573656   Supermic_83:b2:a4     3Com_e0:cd:2d         0x0842   Ethernet II

Frame 2333 (116 bytes on wire, 116 bytes captured)
Arrival Time: Jan  5, 2009 13:58:08.955488000
[Time delta from previous captured frame: 0.013718000 seconds]
[Time delta from previous displayed frame: 0.013718000 seconds]
[Time since reference or first frame: 13.573656000 seconds]
Frame Number: 2333
Frame Length: 116 bytes
Capture Length: 116 bytes
[Frame is marked: False]
[Protocols in frame: eth:data]
Ethernet II, Src: Supermic_83:b2:a4 (00:30:48:83:b2:a4), Dst: 3Com_e0:cd:2d (00:04:76:e0:cd:2d)
Destination: 3Com_e0:cd:2d (00:04:76:e0:cd:2d)
Address: 3Com_e0:cd:2d (00:04:76:e0:cd:2d)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source: Supermic_83:b2:a4 (00:30:48:83:b2:a4)
Address: Supermic_83:b2:a4 (00:30:48:83:b2:a4)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: Unknown (0x0842)
Data (102 bytes)

0000  ff ff ff ff ff ff 00 04 76 e0 cd 2d 00 04 76 e0   ........v..-..v.
0010  cd 2d 00 04 76 e0 cd 2d 00 04 76 e0 cd 2d 00 04   .-..v..-..v..-..
0020  76 e0 cd 2d 00 04 76 e0 cd 2d 00 04 76 e0 cd 2d   v..-..v..-..v..-
0030  00 04 76 e0 cd 2d 00 04 76 e0 cd 2d 00 04 76 e0   ..v..-..v..-..v.
0040  cd 2d 00 04 76 e0 cd 2d 00 04 76 e0 cd 2d 00 04   .-..v..-..v..-..
0050  76 e0 cd 2d 00 04 76 e0 cd 2d 00 04 76 e0 cd 2d   v..-..v..-..v..-
0060  00 04 76 e0 cd 2d                                 ..v..-

Because this only works when the PCs are on the same ethernet collision segment, you may
want to try the ‘other’ type of WoL packet, which uses an IP broadcast address to an UDP
port. This works across separate networks, as long as they are routed to one another.
E.g.:


No.     Time        Source                Destination           Protocol Info
24562 314.316207  192.168.0.3           255.255.255.255       UDP      Source port: 35921  Destination port: 32767
[UDP CHECKSUM INCORRECT]

Frame 24562 (144 bytes on wire, 144 bytes captured)
Ethernet II, Src: Supermic_83:b2:a4 (00:30:48:83:b2:a4), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Destination: Broadcast (ff:ff:ff:ff:ff:ff)
Address: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol, Src: 192.168.0.3 (192.168.0.3), Dst: 255.255.255.255 (255.255.255.255)
Version: 4
Header length: 20 bytes
User Datagram Protocol, Src Port: 35921 (35921), Dst Port: 32767 (32767)
Source port: 35921 (35921)
Destination port: 32767 (32767)
Length: 110
Checksum: 0xc12a [incorrect, should be 0xf0f1 (maybe caused by "UDP checksum offload"?)]
[Good Checksum: False]
[Bad Checksum: True]
Data (102 bytes)

0000  ff ff ff ff ff ff 00 04 76 e0 cd 2d 00 04 76 e0   ........v..-..v.
0010  cd 2d 00 04 76 e0 cd 2d 00 04 76 e0 cd 2d 00 04   .-..v..-..v..-..
0020  76 e0 cd 2d 00 04 76 e0 cd 2d 00 04 76 e0 cd 2d   v..-..v..-..v..-
0030  00 04 76 e0 cd 2d 00 04 76 e0 cd 2d 00 04 76 e0   ..v..-..v..-..v.
0040  cd 2d 00 04 76 e0 cd 2d 00 04 76 e0 cd 2d 00 04   .-..v..-..v..-..
0050  76 e0 cd 2d 00 04 76 e0 cd 2d 00 04 76 e0 cd 2d   v..-..v..-..v..-
0060  00 04 76 e0 cd 2d                                 ..v..-

A program that does this is available at:
ftp://sunsite.unc.edu/pub/Linux/system/network/misc/wakelan-1.1.tar.gz

I did some progress :slight_smile: with you suggestions I did install wireshark on the pc which I want to wake up (it has suse 11.1) and tried to do ether-wake from other pc with suse 10.2, which resulted in no packet received on 11.1, but when I installed the application from ftp://sunsite.unc.edu/pub/Linux/syst…lan-1.1.tar.gz and sent the wol packet, pc with 11.1 registred the packet in wireshark. So the wol packet gets over my network configuration to the pc without problems. Now the only problem seems to be in the configuration of suse 11.1. How can I presuade it to leave the ethernet card free to accept wol packet? Thanks gain for your help.

It works now :), I just needed to add “ethtool -s eth0 wol g” in /etc/init.d/boot.local, thanks

arcull wrote:
> I did some progress :slight_smile: with you suggestions I did install wireshark on
> the pc which I want to wake up (it has suse 11.1) and tried to do
> ether-wake from other pc with suse 10.2, which resulted in no packet
> received on 11.1, but when I installed the application from
> ftp://sunsite.unc.edu/pub/Linux/syst...lan-1.1.tar.gz and sent the wol
> packet, pc with 11.1 registred the packet in wireshark. So the wol
> packet gets over my network configuration to the pc without problems.

Good.

> Now the only problem seems to be in the configuration of suse 11.1. How
> can I presuade it to leave the ethernet card free to accept wol packet?
> Thanks gain for your help.

Did you enable WoL in the BIOS? You also might want to look in you mainboard’s
or ethernet card’s booklet to see on which port it listens for WoL packets.
I have seen different ports mentioned, like UDP 9 or some high value like 32767
as in the second capture.

There is also ethtool(8) to set WoL options.

ethtool -s ethX wol p|u|m|b|a|g|s|d…
Sets Wake-on-LAN options. Not all devices support this. The
argument to this option is a string of characters specifying
which options to enable.
p Wake on phy activity
u Wake on unicast messages
m Wake on multicast messages
b Wake on broadcast messages
a Wake on ARP
g Wake on MagicPacket™
s Enable SecureOn™ password for MagicPacket™
d Disable (wake on nothing). This option clears all previous
options.