R8168 parameter s5wol ignored

Hey all,

As per the Arch Wiki Wake-On-Lan entry I want to pass the s5wol=1 parameter to the kernel while loading, but apparently it gets ignored by both sudo modprobe r8168 s5wol=1 and by manually adding a /etc/modprobe.d/myfile.conf and then rebuilding the initram. No matter what, it looks like the parameter is not applied (no /sys/modules/r8168/parameters) or anything, and of course the wake on lan isn't working. I honestly have no idea on how to troubleshoot, any help would be really appreciated.

I think a start up service may do the job for you.

This should fix you up:

Create the file:

/etc/systemd/system/wol@.service

With this content:

[Unit]
Description=Wake-on-LAN for %i
Requires=network.target
After=network.target

[Service]
ExecStart=/usr/bin/ethtool -s %i wol g
Type=oneshot

[Install]
WantedBy=multi-user.target

You will need to install ethtool if you don't already have it installed. You also will need to enable the service.

sudo pacman -S ethtool

Enable the service:

sudo systemctl enable wol@$USER.service

Then restart.

The service methods is the way I prefer to do these type of things, but there are alternate ways. See the Archwiki for full details:

https://wiki.archlinux.org/index.php/Wake-on-LAN

Here is further information on creating systemd services:

1 Like

The point is that WOL per se it's working, because if I suspend the PC instead of shutting it down then I can successfully wake it up with WOL. So i think it's more something related to the S5 power state, and since there is a kernel module parameter I would really like to give it a try.

The wol setting has already been activated when you go into suspend, that is why it works after a suspend. The problem is that the settings aren't initiated automatically at start up. You need to have the settings activated at startup via a service or an alternate method to work automatically without manual intervention.

Did you read the Archwiki link I posted?

1 Like

Yes, I did, and the systemd approach was the first one I tried actually. However, for some reason it doesn't seem to work either. After creating the script and enabling it via sudo systemctl enable wol@enp6s0, I always get Wake-On: d when launching sudo ethtool enp6s0 after a reboot. Anyway, if I just start the service instead of enabling it (sudo systemctl start wol@enp6s0) I get Wake-On: g but then I cannot wake up the system after a shutdown. That's why I thought I had to enable the s5wol=1 parameter in r8168 module.

I don't have my notes handy but off the top of my head I think the command you're looking for is:

sudo ethtool -k wol g

The point is, by reading around, that since i have NetworkManager running (I have Cinnamon flavor) it should be the one to handle WoL instead of ethtool.

But anyway, even for an educational purpose, I'd really love to understand why the option is not passed to the kernel, regardless of the the WoL.

Anyway, why is the banana crooked?
Did it lead to a solution?
Then mark it solve, please :wink:

No, it didn't unfortunately. Still not working.

This topic was automatically closed after 180 days. New replies are no longer allowed.

Forum kindly sponsored by