I did a clean install of EndeavourOS on my PC and now wake on LAN is not working anymore. It used to work with Manjaro without a problem. I have not change anything in the BIOS.
ethtool enp39s0 | grep Wake
Supports Wake-on: pumbg
Wake-on: d
Then I set it:
ethtool -s enp39s0 wol g
ethtool enp39s0 | grep Wake
Supports Wake-on: pumbg
Wake-on: g
But when I reboot it is disabled again.
Default network driver is r8169. But I also followed the suggestion to boot with r8168 once to get it working. Blacklisting r8169 etc. But that did not help.
I also created the file /etc/systemd/network/50-wired.link as suggested in the arch wiki:
This is so weird. Something is messing up the wol settings at the end of the boot process and most likely also during shutdown.
Directly after boot I see that the wol@enp39s0 service was excecuted successfully:
4# systemctl status wol@enp39s0
â—Ź wol@enp39s0.service - Wake-on-LAN for enp39s0
Loaded: loaded (/usr/lib/systemd/system/wol@.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Sun 2020-10-25 15:33:22 CET; 44s ago
Process: 4100 ExecStart=/usr/bin/ethtool -s enp39s0 wol g (code=exited, status=0/SUCCESS)
Main PID: 4100 (code=exited, status=0/SUCCESS)
Okt 25 15:33:22 rakete systemd[1]: Starting Wake-on-LAN for enp39s0...
Okt 25 15:33:22 rakete systemd[1]: wol@enp39s0.service: Succeeded.
Okt 25 15:33:22 rakete systemd[1]: Finished Wake-on-LAN for enp39s0.
But the status of the network device is not reflecting this.
9# ethtool enp39s0 | grep Wake
Supports Wake-on: pumbg
Wake-on: d
When I now start the wol@enp39s0 service again:
systemctl start wol@enp39s0
The settings are correct:
11# ethtool enp39s0 | grep Wake
Supports Wake-on: pumbg
Wake-on: g
Something is reverting what wol@enp39s0` is doing during boot. And I am afraid that something similar happens during shutdown so that the results of the manual wol@enp39s0 run are not surviving.
Any idea how I can find out which sersvice or script is messing with the network device? NetworkManager is deinstalled.
This was it. tlp was installed and active. I disabled it and WOL works immediately.
Thank you, @jonathon. You made my day.
But why is the tlp package installed and active in the first place? This is a desktop PC. I did not install tlp. And /var/log/pacman.log has no entry for tlp. I believe this has come with the initial installation of EndeavourOS. Can that be? If yes, I believe this is a bug.
My view is that power saving is useful on all computers, not just laptops. Also, some might view disabling WoL by default as a good thing (e.g. more secure).
There’s a TLP setting in /etc/tlp.conf to leave WoL alone:
# Disable wake on LAN: Y/N.
# Default: Y
#WOL_DISABLE=Y
Distros distribute the software they think is worth distributing. Defaults are down to the maintainers.
Yes. I understand that. They could even install libreoffice out of the box if they like it. But installing tlp and disabling wake on LAN is a different story. Especially when the tlp config is not customized. The default tlp config says: "TLP comes with a default configuration already optimized for battery life,". Desktop PCs have no battery life to worry about.
I think this is worth while a discussion about EndeavourOS defaults.
I just wanted to write to say that I was running into the exact same problem as @mbod today - thank you for taking the time to write up your experience so thoroughly. I installed EndeavourOS for the first time today and was completely puzzled as to why my WOL behaviour seemed to be completely different from a Manjaro installation on the same machine. Even more curious, I could make hibernate work perfectly if I did echo disk > /sys/power/state, so I was certain that I had my swap and kernel resume parameters set correctly - but as soon as I ran systemctl hibernate, sadness ensued. It seemed like the issue must be a service that systemd was triggering that was triggering the issue, but it was very hard to find (as I’m sure you found out too).
I’ll throw my two cents in here and also say that saving power is a great idea, but enabling TLP by default on a desktop machine was a bit of a surprise. Maybe the EndeavourOS installer could ask a couple questions of the user during installation to get a better feel as to whether or not enabling TLP is a good idea? (e.g. “Is this a laptop, desktop, or server?”)