5. Configuring Wake-on-LAN¶
Wake-On-Lan allows a computer to be turned off by a network message.
Requirements for the destination computer¶
- ATX power box, motherboard with Wake-On-Lan support
- hardware support of Wake-On-LAN
- MAC address of the network adapter
Requirements for the main computer¶
- a program that can send the Magic Packet
How it works¶
The direction computer is in standby mode and is feeding the network adapter. The adapter is in economy mode: it examines all packages sent to its MAC address, but does not respond. If one of them happens to be a Magic Packet, the network adapter то will give a signal to wake the computer.
Implementation¶
You must switch the WoL support on in the destonation computer's_BIOS_. The field you need may be called Wake On Lan Enable or Power On By PCIE or any other like that; it may also happen that your BIOS does not allow setting this mode while the motherboard supports it by default.
If you do not know whether your network card supports WoL, load the destination computer and enter in the console:
ethtool eth0
It will return something like:
Settings for eth0: Supported ports: [ MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: MII PHYAD: 1 Transceiver: external Auto-negotiation: on Supports Wake-on: g Wake-on: d Link detected: yes
You will need the lines Supports Wake-on and Wake-on. The first of them shows the available wakeup modes for the network adapter (actually, g stands for wakeup with Magic Pocket) and the second shows the current mode (d stands for WoL off).
To switch your network card to WoL mode, execute:
ethtool -s eth0 wol g
To set WoL on, enter:
ethtool -s eth0 wol d
The adapter may save its final status, but it may also initialize it (usually setting it to d), that is why you need to set the required WoL mode at each booting. To do so, add the lines below to
/etc/conf.d/net
, and they will set WoL mode on on all network adapters that support it:preup() { if ethtool $1 | grep "Supports Wake-on:" | grep g >/dev/null; then ethtool -s $1 wol g fi }
To get the MAC address of the network adapter on the destination computer you should
- execute on the destination computer:
ifconfig -a eth0 Link encap:Ethernet HWaddr 01:02:03:04:05:06 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::215:f2ff:fe6f:3487/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:71495 errors:0 dropped:0 overruns:0 frame:0 TX packets:76190 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:23164212 (22.0 MiB) TX bytes:7625016 (7.2 MiB) Interrupt:217 Base address:0xd400
- display the ARP cache on the destination computer:
arp Address HWtype HWaddress Flags Mask Iface 10.0.0.1 ether 00:01:02:03:04:05 C eth0 10.0.0.2 ether 06:07:08:09:0a:0b C eth0 10.0.0.3 ether 0c:0d:0e:0f:10:11 C eth0
- to cache all computers in the network, you can use the nmap tool: it will ping the network machines so that their MAC addresses are cached.
nmap -v -Sp 10.0.0.0/24
To wake the machine, use the wol tool on the main computer:wol MAC_address
As regards handling of the programs, be aware that all computers are not loaded immediately after they are switched on, because the network card feeding is not initialized (when the computer has not loaded yet and does not know which devices it must feed to receive special signals, including the Magic Packet). It means that you will have to do it manually the first time. If this is cumbersome (for instance, if the server is locked or is very remote geographically), you should set the power option Wake After Power Fail in your BIOS to ON.