Put simply, Wake on LAN is a feature found in most network cards which allows you to remotely turn a machine on. It works by detecting for a certain "magic" packet. When received by the card, it will boot the machine. Wake on LAN is sometimes abbreviated WOL.

What you need

  • A suitably equipped motherboard.

    Most modern motherboards now come with a Wake on LAN connector. This is used by the network card to signal the machine to turn on.

  • A suitably equipped NIC.

    Again, most modern network cards now come with a Wake on LAN connector on them. They need to be able to detect the magic Wake on LAN packet.

  • A Wake on LAN cable

    This connects the NIC to the motherboard.

  • No special OS support

    Wake on LAN is done entirely in hardware. You do not need to install any special software on your machine to enable Wake on LAN on it. (You need software on another machine to send the data needed to boot it)

How to set up Wake on LAN

  1. Obtain above list of needed hardware.
  2. Open your machine up.
  3. Connect the NIC to the motherboard with the cable. I had to remove one of my other expansion cards while doing this on my machine as the Wake on LAN connector was underneath it. The connector is three pin and identical at both ends. If in doubt, look at the manual for your motherboard.
  4. Switch on your machine and go into the BIOS setup.
  5. Check that Wake on LAN is enabled in your BIOS, otherwise your machine will not boot.
Once you have done this, Wake on LAN should work.

Testing

To boot a machine using Wake on LAN, you must know the MAC address of the network card. You then need a tool to send the magic wake up packet. I use etherwake by Donald Becker. You can find it here:
ftp://ftp.scyld.com/pub/diag/
This is for Linux; obviously, wake up tools exist for other operating systems as well.

First you must obtain the MAC address. In Linux, you can find this through the "ifconfig" program. Under Windows you can use "ipconfig".

$ ifconfig
eth0 Link encap:Ethernet HWaddr BA:DD:AD:BE:EF:40
inet addr:10.0.3.126 Bcast:10.0.15.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
....
The MAC address is displayed in the "HWaddr" field. Here it is "BA:DD:AD:BE:EF:40".

To boot a machine with this MAC address, then:

$ etherwake BA:DD:AD:BE:EF:40

How it works

The network card listens to the network for its MAC address repeated 16 times. If it finds such a packet, the card enables the output to the Wake on LAN connector, telling the motherboard to boot the machine.

I have only tested this by booting from a machine on the local network, but this presumably means you can boot machines on remote networks by sending packets to the broadcast address for that network.

Further information

Some cards support "passwords", stopping malicious people booting machines when you dont want them to. This isnt very common, however.

The Wake on LAN connector can be used to boot the machine for other reasons; some modems support Wake on Ring, for example.

The Wake on LAN mini-HOWTO is useful:

http://gsd.di.uminho.pt/jpo/software/wakeonlan/mini-howto/