This has got to be the most asinine thing I've ever seen anyone do to a working system, just to update a module. enp2s0? Really? WHY???? There was not even any way to figure out this stupid name was going to be used - all I get is
Code: Select all
udevadm test-builtin net_id
calling: test-builtin
syspath missing
Oh, yea, that worked. Instead I suppose I could guess, if only there was some convention I could look up and do the language translation (or whatever is going on in this thing) to figure out what it MIGHT be and EDIT ALL MY CONFIG FILES (since apparently that's too hard for an update script to do). But instead I get this:
Code: Select all
dmesg|grep eth
[ 1.418814] e1000 0000:02:00.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:d7:96:96
[ 1.418926] e1000 0000:02:00.0: eth0: Intel(R) PRO/1000 Network Connection
[ 5.750269] systemd-udevd[1134]: renamed network interface eth0 to enp2s0
WHY???? Why did you rename it, to something indecipherable, when the kernel knows what it is
right there (and I do too).
I guess I should be thankful I no longer run a bridge interface connected to a bunch of virtual TAP and ETH devices for virtual machines on this server - who knows how much I would have to deal with then.
Pay attention also to every message printed by emerge of sys-fs/udev
and sys-fs/udev-init-scripts as this news item may not be complete.
Well, thanks. At least I get a warning that I'm going to either capture those messages or merge those items separately to figure out on my own what to do. Nothing like picking through packages instead of doing a full system update to make things go smoothly.
you must use free namespace (like net* or internet*) instead of kernel namespace (like eth* or wlan*) because in-place renaming has been deprecated
For ... what, exactly??? Someone just didn't like using those (ubiquitous) names? I can only assume this decision came from some dev that needs some significant amount of counseling, because they obviously suffer from a mental illness (got to be something beyond NIH syndrome).
see small documentation of it if you like[2]
Okay, let's check that ...
Don't call this function. Currently, the networking layer calls this function, but that will change.
Oh, good, I can't wait. Can I tell the networking layer not to call it? Seems there's this:
If /etc/udev/rules.d/80-net-name-slot.rules is an empty file or a symlink to /dev/null, the new names will be disabled and the kernel will do all the interface naming
Okay, well doesn't work if the file isn't there at all. Let's just create it and try it out.
Code: Select all
touch /etc/udev/rules.d/80-net-name-slot.rules
shutdown -r now
...
dmesg|grep eth
[ 1.418814] e1000 0000:02:00.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:d7:96:96
[ 1.418926] e1000 0000:02:00.0: eth0: Intel(R) PRO/1000 Network Connection
[ 5.750269] systemd-udevd[1134]: renamed network interface eth0 to enp2s0
ARRRGGGGH!!
Okay, so it seems I should be able to create something like "/etc/udev/rules.d/70-a-name-emerge-will-not-complain-about.rules" and use the new syntax (carefully avoiding any name that the kernel might use now or at some time in the future or if the devs decide to include or change) and call it something like "direnet0", then just change all my network config files and init scripts to refer to "direnet0". ACK UGH Stuck with it, it seems, let's try it out.
Code: Select all
cd /etc/conf.d
vi net
vi network
vi netmount
cd /etc/init.d
ln -s net.lo net.direnet0
(crosses fingers)
Code: Select all
shutdown -r now
...
dmesg|grep eth
[ 1.418814] e1000 0000:02:00.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:d7:96:96
[ 1.418926] e1000 0000:02:00.0: eth0: Intel(R) PRO/1000 Network Connection
[ 5.750269] systemd-udevd[1134]: renamed network interface eth0 to enp2s0
WHAT. THE. HELL, man??