You are not logged in.
Hey,
I want to enable WOL for my ethernet-card using a udev-rule and have some problems understanding udev's behaviour.
I've created the following file which works perfectly:
$ cat /etc/udev/rules.d/100-wol.rules
ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth0", RUN+="/usr/bin/ethtool -s %k wol g"
But /usr/lib/udev/rules.d/80-net-name-slot.rules renames the interface to enp3s0.
So my question is:
If 80-net-name-slot.rules renames the device to enp3s0 and my rules-file is executed afterwards (starts with 100), why does the above rule work. Shouldn't this one work?:
$ cat /etc/udev/rules.d/100-wol.rules
ACTION=="add", SUBSYSTEM=="net", KERNEL=="enp3s0", RUN+="/usr/bin/ethtool -s %k wol g"
Does anyone know why the first script works instead of the second one?
Offline
100 comes before 80, at least in filenames...
Offline
Oh. Hehe. Of course it does. *shame on me*
But the "problem" still exists after renaming 100-wol.rules to 99-wol.rules (which REALLY comes AFTER 80 )
Last edited by x_puma_x (2013-08-22 18:00:23)
Offline
I do it by the driver of the card rather than the kernel name. That way, no matter what the system wants to name the thing it will be matched. So I have:
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="r8168", RUN+="/usr/bin/ethtool -s %k wol d"
Offline
@WonderWoofy:
I have a working solution, too.
But i just wondered why this is the way it is :-)
$ cat /etc/udev/rules.d/99-wol.rules
ACTION=="add", SUBSYSTEM=="net", KERNEL=="e*", RUN+="/usr/bin/touch /%k"
creates the file /enp3s0
I don't understand this. Is it some kind of race-condition thing or what is it?
Offline
I couldn't tell you without you actually providing more information about what your system might be telling you.
Offline
What info do you need? I don't really know what else to provide.
Does this help?:
$ dmesg | grep -E "enp3s0|eth0"
[ 2.146664] sky2 0000:03:00.0 eth0: addr 00:23:8b:16:df:4c
[ 2.430154] systemd-udevd[142]: renamed network interface eth0 to enp3s0
[ 3.919376] sky2 0000:03:00.0 enp3s0: enabling interface
[ 3.919453] IPv6: ADDRCONF(NETDEV_UP): enp3s0: link is not ready
Offline