Published on : 2025-03-14 14:52
       
       WakeOnLan is a very useful feature, especially if you're a lazy 
       person. With WakeOnLan you can start your machines without walking 
       or using your fingers and push the power button.
       
 (IMG)  A photo of how I wake up my cluster
       
       2026-02-28 Update
       ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
       
       The script below stopped working for me. I managed to fix it by 
       adding the Broastcast IP Address to the wakeonlan command. 
       
       Read more at:
       ‾‾‾‾‾‾‾‾‾‾‾‾‾
       
 (DIR)  Wake-on-Lan Script Update
       
       What you need
       ‾‾‾‾‾‾‾‾‾‾‾‾‾
       
       You only need 2 things: wakeonlan and ethtool. You can easily 
       install them with:
       
           sudo apt install wakeonlan ethtool
       
       wakeonlan is needed on the machine you'll be using to send the 
       wake up command while ethtool is used to configure your network 
       card. 
       
       Using ethtool to enable Wake-on-LAN
       ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
       
       Find the Network Adapter (in my case it's `enp1s0`)
       ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
       
           ip a
       
       Check if WakeOnLan is supported
       ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
       
           sudo ethtool enp1s0 | grep "Wake-on"
       
       You should see something like ` Supports Wake-on: pumbg`. 
       To enable WakeOnLan you have to:
       
           sudo ethtool --change enp1s0 wol g
       
       Right now WakeOnLan is enabled but the setting is not persistent. 
       
       Persist Wake-on-LAN After Reboot
       ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
       
           sudo pico /etc/systemd/system/wol.service
       
       Add the following and replace `enp1s0` with your network card
       
           [Unit]
           Description=Enable Wake On Lan
       
           [Service]
           Type=oneshot
           ExecStart = /usr/sbin/ethtool --change enp1s0 wol g
       
           [Install]
           WantedBy=basic.target
       
       
       Enable the service:
       ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
       
           sudo systemctl enable wol.service
       
       Using wakeonlan to start your computers
       ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
       
       In order to wake up your computers with a magic wakeonlan packet 
       you need to know it's MAC address. You can easily find it with 
       
           sudo ethtool -P enp1s0
       
       Once you get the MAC address you can easily wake the computer up 
       from another computer using the wakeonlan command:
       
           wakeonlan "D2:CB:3B:20:DC:AE"
       
       I have create a small bash script to wake up all my 3 Lenovo M53's 
       at once:
       
           #!/usr/bin/env bash
       
           # MAC addresses (Not the real ones)
           MAC1="D2:CB:3B:20:DC:AE" # lenovo1 mac
           MAC2="D2:CB:3B:20:DD:37" # lenovo2 mac
           MAC3="D2:CB:3B:20:D6:04" # lenovo3 mac
       
           # Wake up the three computers
           echo "Waking up lenovo1 ..."
           wakeonlan $MAC1
       
           echo "Waking up lenovo2 ..."
           wakeonlan $MAC2
       
           echo "Waking up lenovo3 ..."
           wakeonlan $MAC3
       
           echo "All computers should be waking up now."
       
       
 (DIR)  Back to my phlog