Getting WOL working on Manjaro 20

This one was quite a battle to conquer, but I got there in the end, so I hope this helps you get there quicker with a lot less trial and error.
First up, make sure that you have changed these lines in the conf file at
/etc/tlp.conf
By default WOL_DISABLE=Y, change this to reflect the below.TLP_ENABLE=1
WOL_DISABLE=N
From the Arch WIKI - https://wiki.archlinux.org/index.php/Wake-on-LAN#udev
"udev is capable of running any command as soon as a device is visible. The following rule will turn on WOL on all network interfaces whose name matches enp*
. The file name is important and must start with a number between 81 and 99 so that it runs after 80-net-setup-link.rules
, which renames interfaces with predicable names. Otherwise, NAME
would be undefined and the rule would not run."
So lets edit, or create if required the file
/etc/udev/rules.d/81-wol.rules
and then add the content below
ACTION=="add", SUBSYSTEM=="net", NAME=="enp*", RUN+="/usr/bin/ethtool -s $name wol g"
Note: The $name
placeholder will be replaced by the value of the NAME
variable for the matched device.
Ensure we have the correct Network Manager settings. To get the Ethernet name:
nmcli con show
With name (replace my "Wired connection 1") run:
nmcli c show "Wired connection 1" | grep 802-3-ethernet.wake-on-lan
If it doesn't say:
802-3-ethernet.wake-on-lan: magic
802-3-ethernet.wake-on-lan-password: --
Then you need to set it using:
nmcli c modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic
Reboot and check it's all working again:
nmcli c show "Wired connection 1" | grep 802-3-ethernet.wake-on-lan
Should now show 'magic' correctly and you can sleep/hibernate/shutdown and test now!