Last Updated on October 17, 2022
This series highlights essential system tools. These are small utilities, useful for system administrators as well as regular users of Linux based systems. The series examines both graphical and text based open source utilities. For details of all tools in this series, please check the table in the summary section.
gWakeOnLAN is a small graphical utility that lets you wake up machines using the Wake on LAN (WOL) feature. WOL lets you wake a computer from a low-power state when a network adapter detects a WOL event. Typically, such an event is a specially constructed Ethernet packet, often known as a “magic packet”. When the packet is received, the target machine’s network device (Network Interface Controller or NIC) wakes up the rest of the machine.
We’re using Ubuntu as our main desktop distribution. Installing gWakeOnLAN is straightforward. Issue the command:
$ sudo apt install gwakeonlan
There’s a few things we need to configure on each machine we want to wake up (we’ll call that the target machine). The precise steps depend on the BIOS of each target machine. For example, with the HP EliteDesk 800 G2 Mini Desktop PC we need to enable boot to hard drive from the network. We also need to set “Energy Efficient Ethernet” to OFF, and to set “Wake on Magic Packet” to Enabled.
It may also be necessary to configure the operating system of the target machine. We need to ensure WOL is enabled in the NIC. In Linux, this can be established with the ethtool utility. Install ethtool with the command:
$ sudo apt install ethtool
Here’s the output below from one of our systems.
Look for the line Wake-on:
For this particular system, the g tells us that the Magic Packet is already enabled. We therefore don’t need to make any changes to the operating system. However, if the letter shown was d, the Magic Packet would not be enabled. It can be enabled with the command:
$ ethtool -s
where
This command is required after each boot or we can make an appropriate change to the interfaces file.
If the target machine is running Windows, generally there’s nothing needed to be done. However, we have some systems which required a few changes in the Device Manager and the Control Panel.
In Operation
Here’s an image of gWakeOnLAN in action. The image shows we’ve set up three machines that we can wake up over the LAN.
To add another machine we click the green + button. We need to enter a name for the machine and its MAC address. A MAC address is a unique physical address assigned to each network adapter in a computer. It is a 48 bit value, consisting of twelve hexadecimal characters. Our router holds this physical address for each computer on our local network.
We then need to click the box next to each machine we want to boot, and click the Turn on button. It’s that simple. A system administrator can therefore turn on many computers across the network at the same time.
Summary
gWakeOnLAN is a really simple and sweet utility. It’s not only useful for system administrators. Even if your network has only two computers, it’s often convenient to be able to turn it on across the network.
The only complexity is that it can take a little investigation to work out what changes are needed for each machine’s BIOS settings.
And remember that for WOL to work, parts of the network interface need to stay on. This consumes a very small amount of standby power.
Website: www.muflone.com/jekyll/gwakeonlan
Support: GitHub Code Repository
Developer: Fabio Castelli
License: GNU General Public License v3.0
gWakeOnLAN is written in Python. Learn Python with our recommended free books and free tutorials.
All the essential tools in this series:
Essential System Tools | |
---|---|
Alacritty | Innovative, hardware-accelerated terminal emulator |
BleachBit | System cleaning software. Quick and easy way to service your computer |
bottom | Graphical process/system monitor for the terminal |
btop++ | Monitor usage and stats for CPU, memory, disks, network and processes |
catfish | Versatile file searching software |
Clonezilla | Partition and disk cloning software |
CPU-X | System profiler with both a GUI and text-based |
Czkawka | Find duplicate files, big files, empty files, similar images, and much more |
ddrescue | Data recovery tool, retrieving data from failing drives as safely as possible |
dust | More intuitive version of du written in Rust |
f3 | Detect and fix counterfeit flash storage |
Fail2ban | Ban hosts that cause multiple authentication errors |
fdupes | Find or delete duplicate files |
Firejail | Restrict the running environment of untrusted applications |
Glances | Cross-platform system monitoring tool written in Python |
GParted | Resize, copy, and move partitions without data |
GreenWithEnvy | NVIDIA graphics card utility |
gtop | System monitoring dashboard |
gWakeOnLAN | Turn machines on through Wake On LAN |
hyperfine | Command-line benchmarking tool |
HyFetch | System information tool written in Python |
inxi | Command-line system information tool that's a time-saver for everyone |
journalctl | Query and display messages from the journal |
kmon | Manage Linux kernel modules with this text-based tool |
Krusader | Advanced, twin-panel (commander-style) file manager |
Nmap | Network security tool that builds a "map" of the network |
nmon | Systems administrator, tuner, and benchmark tool |
nnn | Portable terminal file manager that's amazingly frugal |
pet | Simple command-line snippet manager |
Pingnoo | Graphical representation for traceroute and ping output |
ps_mem | Accurate reporting of software's memory consumption |
SMC | Multi-featured system monitor written in Python |
Timeshift | Reliable system restore tool |
QDirStat | Qt-based directory statistics |
QJournalctl | Graphical User Interface for systemd’s journalctl |
TLP | Must-have tool for anyone running Linux on a notebook |
Unison | Console and graphical file synchronization software |
VeraCrypt | Strong disk encryption software |
Ventoy | Create bootable USB drive for ISO, WIM, IMG, VHD(x), EFI files |
WTF | Personal information dashboard for your terminal |