Mittwoch, 29. April 2020

Wake Me Up After You Go-Go

I took me days but I got Wake-on-LAN working on my new B450 Tomahawk Max. I need this functionality to power-on the machine from another always-on-computer on the network so that I can access it while I am on the road.

The reason that WoL was not working was presumably not the BIOS (which I did update to the current version (E7C02AMS.360)), it was neither the router nor the network cable – as mentioned elsewhere – and my BIOS settings were correct as well. 

It turns out that contrary to my other computers it is not enough to simply turn on the settings in the BIOS as shown below.  The operating system must inform the motherboard Ethernet subsystem “which kind of WoL” it should use – otherwise that setting, which is not accessible from the BIOS, stays disabled, nothing will happen and it looks as if WoL were not working at all.

The most common WoL option is the so called Magic Packet which can be sent by utilities like etherwake (on Linux) or Wake-on-LAN (on Android), but apparently there are other options as well.

Windows user can specify the option to use in the Control Center, but I’m not running Window, I’m using Ubuntu Linux 20.04 LTS… What to do?  The answer is ethtool.

Let’s start with the BIOS settings:

Settings\Advanced\Integrated Peripherals
   Onboard LAN Controller: Enabled  ... (which is the default)

Settings\Advanced\Power Management Setup
   ErP Ready: Disabled   ... (which is the default)

Settings\Advanced\Wake Up Event Setup
  Resume By PCI-E Device: Enabled


With Linux running, determine the device identifier of your onboard Ethernet “card” using the ifconfig command:

    ifconfig

If ifconfig is not installed run:

    sudo apt install net-tools

Furthermore you need ethtool:

    sudo apt install ethtool

The name of my ethernet device is: enp34s0
Change the following commands accordingly.

Enter:

    sudo ethtool enp34s0

Look for the line “Wake-on:”. If the value in this line is “d” then the WoL function is (d)isabled. To make it react to the WoL Magic Packet is has to be set to “g”.

    sudo ethtool -s enp34s0 wol g

Check the setting again with:

    sudo ethtool enp34s0


Shut-down the computer and try to wake it with a WoL tool as mentioned above.

This command needs to be executed after each boot. The simplest way to achieve this is to append or create the file /etc/rc.local:

#!/bin/bash
ethtool -s enp34s0 wol g
exit 0


Don’t forget to make it executable:

    sudo chmod 744 /etc/rc.local


A more elaborate way can be found here. Note: Check the path of ethtool with “which ethtool” and correct the script accordingly.

Wake-up happy….

Links


  • https://www.thomas-krenn.com/en/wiki/Wake_On_LAN_under_Linux

P.S.: Here is the German version of the BIOS options:

Settings\Erweitert\Integrierte Peripheriegeräte
   Onboard LAN Controller: Aktiviert     (default)

Settings\Erweitert\Energieverwaltungs Konfiguration
  ErP Ready: Deaktiviert    (default)

Settings\Erweitert\Einrichtung der Reaktiverungsereignisse
  Fortsetzung durch PCI-E-Gerät: Aktiviert


1 Kommentar:

Unknown hat gesagt…

Thank you very much for your post. Had same task at hand and was able to achieve WoL with you help.