1. Information

Wake on LAN (WoL) allows a remote computer to be woken up by sending a magic packet with its MAC address.

Note: The following may make WoL fail.

  • Any computer hibernating cannot be woken up by sending a Wake on LAN packet.

  • Any VirtualBox network adapters may make the computer fail sending Wake on LAN packets.

  • BIOS/UEFI firmware having Deep Sleep or Deep State in Power Options enabled.

  • BIOS/UEFI firmware having Wake on LAN disabled.

  • Out-of-date network card drivers.

  • Switches with 802.1x port authentication enabled may block the Wake on LAN packets.

  • Switches with MAC Authentication enabled may block the Wake on LAN packets.

  • The ethernet cable of the computer being unplugged.

  • The power cable of the computer being unplugged.

  • The PSU (Power Supply Unit) of the computer being turned off.

  • The UPS (Uninterruptable Power Supply) being turned off.

  • The Windows operating system having fast startup enabled in Control Panel > Power Options.

  • The Windows operating system not having been gracefully shutdown.

  • The Windows operating system not having all 3 options checked under Power Management for the network card.

    ■ Allow the computer to turn off this device to save power
    ■ Allow this device to wake the computer
      ■ Only allow a magic packet to wake the computer

Note: Commands to enable WoL on various switch models.

  • Aruba 2530 (YA.16.11.0006): aaa port-access <port> controlled-direction in

  • Aruba 2920 WB.16.01.0004): ???

  • Aruba 2930F (WC.16.10.0009): ???

  • Aruba 6000 (ArubaOS-CX PL.10.11.1021): port-access allow-flood-traffic enable

  • Aruba 6100 (ArubaOS-CX PL.10.06.0110): port-access allow-flood-traffic enable

  • Cisco SG350X (2.5.9.15): access-session control-direction in

2. BIOS

  • Upgrade BIOS to latest version.

  • Disable Deep Sleep option in Power Options.

  • Disable any Deep State option in Power Options.

  • Enable Wake on LAN.

3. BIOS + Hardware Test

3.1. Network Interface Names

The classic naming scheme for network interfaces applied by the kernel is to simply assign names beginning with eth0, eth1, etc. to all interfaces as they are probed by the drivers. With systemd v197 native support is added for a number of different naming policies into systemd/udevd proper and a scheme similar to biosdevname is made the default. The following different naming schemes for network interfaces are supported by systemd v197.

  1. Names incorporating Firmware/BIOS provided index numbers for on-board devices (example: eno1).

  2. Names incorporating Firmware/BIOS provided PCI Express hotplug slot index numbers (example: ens1).

  3. Names incorporating physical/geographical location of the connector of the hardware (example: enp2s0).

  4. Names incorporating the interfaces’s MAC address (example: enx78e7d1ea46da).

  5. Classic, unpredictable kernel-native ethX naming (example: eth0).

By default, systemd v197 will name interfaces following policy 1) if that information from the firmware is applicable and available, falling back to 2) if that information from the firmware is applicable and available, falling back to 3) if applicable, falling back to 5) in all other cases. Policy 4) is not used by default, but is available if the user chooses so.

The systemd v197 network interface naming scheme can be disabled by passing net.ifnames=0 on the kernel command line.

3.2. Test

  • Attach the Ubuntu 16.04.5 LTS i386 USB device.

  • Boot the computer from the USB device.

  • Optional: Disable the systemd v197 network interface naming scheme.

    • Press any key at the purple screen with a keyboard logo at the bottom.

    • Select English and press Enter.

    • Press F6 to show the Boot Options line together with the Other Options popup menu.

    • Press the Escape key to close the Other Options popup menu.

    • Type net.ifnames=0 at the end of the Boot Options line and press Enter.

  • Optional: Click Try Ubuntu.

  • Press Ctrl+Alt+T to open a Terminal.

  • Enter the following commands at a Command Line.

    sudo ifconfig
    sudo ethtool eth0
    sudo ethtool -s eth0 wol g
    sudo ethtool eth0
  • Make a note of the MAC address of the ethernet adapter.

  • Shutdown the computer.

  • Detach the Ubuntu 16.04.5 LTS i386 USB device.

  • Send a magic packet from another computer.

Wake-on-LAN options.

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       d Disable (wake on nothing)

4. Linux

4.1. Detection of WoL Magic Packet

  • Enter the following commands at a Command Line.

    sudo apt-get update
    sudo apt-get install ngrep
    # Ngrep: match 0xff 6 times, followed by any 6 bytes,
    # followed by those same 6 bytes repeated 15 more times.
    sudo ngrep '\xff{6}(.{6})\1{15}'

4.2. Installation

  • Enter the following commands at a Command Line.

    sudo apt-get update
    sudo apt-get install ethtool
    sudo ifconfig
    sudo ethtool eth0
    sudo ethtool -s eth0 wol g
    sudo ethtool eth0

4.3. Usage

  • Enter the following commands at a Command Line.

    sudo apt-get install etherwake
    sudo etherwake <mac address>

5. Windows

5.2. Network Card Driver

For Windows 10 computers with the Intel 82579LM and Intel I217-LM network cards, the drivers installed by Windows 10 are not working for Wake on Lan. Download and install the latest driver from the Intel website. Try to install with the Search automatically for updated driver software option. If that fails with the Cannot install drivers. No Intel Adapters are present in this computer error then extract the contents of the .exe file and try again but now select the Browse my computer for driver software option.

  • Open Control Panel > Device Manager with administrative privileges.

  • Expand Network adapters.

  • Right-click the ethernet adapter and select Properties.

  • Select the Advanced tab.

  • Optional: Select Enable PME | Enabled.

  • Select Wake on Magic Packet | Enabled.

  • Select Wake on Magic Packet | Enabled.

  • Select Wake on Pattern Match | Enabled.

  • Select the Power Management tab.

  • Check Allow the computer to turn off this device to save power.

  • Check Allow this device to wake the computer.

  • Check Only allow a magic packet to wake the computer.

■ Allow the computer to turn off this device to save power
■ Allow this device to wake the computer
  ■ Only allow a magic packet to wake the computer
  • Select OK.

  • Close Device Manager.

5.3. Fast Startup / Hybrid Shutdown

Windows 8 and later.

  • Open Control Panel > Power Options.

  • Select Choose what the power buttons do.

  • Seelct Change settings that are currently unavailable.

  • Uncheck Turn on fast startup (recommended).

  • Click Save changes.

  • Close Power Options.

5.4. Oracle VirtualBox

5.5. Usage

  • Install Delta Windows Tools.

  • Enter the following commands at a Command Line.

    send-wakeonlan <mac address>

5.6. Other

  • Enter the following commands at a Command Line.

    powercfg.exe /devicequery wake_armed
    powercfg.exe /devicequery S3_supported
    powercfg.exe /deviceenablewake "xxxxxxxxx"
    
    powercfg.exe /devicequery wake_programmable     # Find devices that are WOL capable.
    powercfg.exe /deviceenablewake <Device>         # Enable WOL for device.
  • Enter the following commands at a PowerShell Command Prompt.

    $Adapters = Get-WmiObject MSNdis_DeviceWakeOnMagicPacketOnly -namespace 'root\wmi'
    if ($Adapters.Count -gt 0){
        foreach ($Adapter in $Adapters) { $Adapter.EnableWakeOnMagicPacketOnly = $True }
    } else {
        $Adapters.EnableWakeOnMagicPacketOnly = "$True"
    }
    
    $Adapters = Get-WmiObject MSPower_DeviceWakeEnable -Namespace 'root\wmi'
    if ($Adapters.Count -gt 0){
        foreach ($Adapter in $Adapters) { $Adapter.Enable = $True }
    } else {
        $Adapters.enable = "$True"
    }