




Hardware networking interfaces have neved had a /dev entry, there was no /dev/eth0 with old udev, for example.genterminl wrote:However, there is no entry in /dev for the network. I've read bunches of other posts on this, but am obviously still missing something.
If you want your interface to be called neteth0, then you should just have _1_ file in /etc/udev/rules.d, call it like 70-my-network.rules that does the renaming to neteth0.genterminl wrote: I assume if I just delete the 80-net-name-slot.rules, I should get the new style name for the interface. I will eventually try that, but I'd prefer to figure out why I'm not getting /dev/neteth0. Is that just a bad choice of name? Have I created some conflict in naming? Am I correct to assume the presence of that file is preventing the new name (enp0s10 in my case) from being used?
If /etc/udev/rules.d/80-net-name-slot has only # commented lines in it, or if it's otherwise empty, or if it's symlink to /dev/null it all means the same thing -> It will prevent the /lib/udev/rules.d/80-net-name-slot.rules from taking into action.genterminl wrote: Also, can someone explain the difference between 80-net-name-slot.rules being a real file with content (as installed by emerge,) it being an empty file, and it being a symlink to /dev/null? I think I can understand how the latter two are equivalent, and the first seems to also have the same effect - should it be different?
Thanks for any insights or explanations.


Correct.genterminl wrote: So - is this correct for /etc/udev/rules.d?
- 80-net-name-slot.rules can be a modified version of the one in /lib/udev/rules.d to modify the kernel naming
- 80-net-name-slot.rules is present and empty (expect perhaps for comments) will block the new kernel naming
(In both the above cases, the presence of this file overrides the use of /lib/udev/80-net-name-slot.rules)
- 70-my-network.rules to use a custom renaming
No need for the empty 80- file if you have a 70- file to do the rename.

Umm. No it doesn't. It tells explictely those 2 lines are now old and shouldn't be used. Only way to use eth* is to disable entire new networking from udev by adding empty 80-net-name-slot.rules, or symlink it to /dev/null, that will mean kernel will do all the naming which can be random.depontius wrote:A few clarifications, because perhaps I'm being thick...
1 - In the news article, they give 2 lines to keep my good old eth0/eth1 names.
It means exactly udev-postmount. Not udev, or udev-mount.depontius wrote: 2 - The news article talks about removing "udev-postmount". I don't have that on any of my systems, I have "udev" and "udev-mount". Do you really mean to remove "udev-mount": from the sysinit runlevel?
/dev/cdrom is now always a symlink to /dev/sr0 and the others are gone in purpose so any software defaulting to /dev/dvd should be fixed to default to /dev/cdromdepontius wrote: 3 - Whatever happened to CD/DVD naming? How has that all sugared out? I threw a kludge into my local.d to paper this one over. Is i still necessary or has Lennart still decided that every media player in the Linux world is WRONG by using names like /dev/dvd or /dev/cdrom? (Pardon the minor diatribe, it was a short weekend, and I held back for most of this post.)
Actually I was wondering about these 2 lines :ssuominen wrote:Umm. No it doesn't. It tells explictely those 2 lines are now old and shouldn't be used. Only way to use eth* is to disable entire new networking from udev by adding empty 80-net-name-slot.rules, or symlink it to /dev/null, that will mean kernel will do all the naming which can be random.depontius wrote:A few clarifications, because perhaps I'm being thick...
1 - In the news article, they give 2 lines to keep my good old eth0/eth1 names.
Either use the new names or rename to free namespace like net* or similar.
You must have read wrong.
Code: Select all
This is the new format with free namespace:
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="net0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="yy:yy:yy:yy:yy:yy", NAME="net1"As far as I know, I've never had udev-postmount. I certainly don't have it on any of my Gentoo systems I can currently access. (There's one at home powered down right now.) On all of my systems I have udev and udev-mount, so at this point I'm more wondering why I don't have udev-postmount anywhere.ssuominen wrote:It means exactly udev-postmount. Not udev, or udev-mount.depontius wrote: 2 - The news article talks about removing "udev-postmount". I don't have that on any of my systems, I have "udev" and "udev-mount". Do you really mean to remove "udev-mount": from the sysinit runlevel?
[/quote]ssuominen wrote:/dev/cdrom is now always a symlink to /dev/sr0 and the others are gone in purpose so any software defaulting to /dev/dvd should be fixed to default to /dev/cdromdepontius wrote: 3 - Whatever happened to CD/DVD naming? How has that all sugared out? I threw a kludge into my local.d to paper this one over. Is i still necessary or has Lennart still decided that every media player in the Linux world is WRONG by using names like /dev/dvd or /dev/cdrom? (Pardon the minor diatribe, it was a short weekend, and I held back for most of this post.)
the only way to get back /dev/dvd is by writing a custom rule
if /dev/cdrom is still missing with the new udev, it's because some old file in /etc/udev/rules.d, like the old 70-persistent-cd.rules is breaking it
This is interesting. After an upgrade to udev-200 I have the interface ethv on my system, created by "my persistent rules" in /etc/udev/rules.d. I have not added the command line argument to the kernel to turn off new naming scheme and I also do not keep 80-net-name-slot.rules anymore in /etc/udev/rules.d.ssuominen wrote: Umm. No it doesn't. It tells explictely those 2 lines are now old and shouldn't be used. Only way to use eth* is to disable entire new networking from udev by adding empty 80-net-name-slot.rules, or symlink it to /dev/null, that will mean kernel will do all the naming which can be random.
Either use the new names or rename to free namespace like net* or similar.
You must have read wrong.

You are right, when I talked about complete namespace... I meant the reserved bits of said namespace, for example if kernel assigns eth0 and eth1, then eth3, eth4, eth5, ethx, ethy, ethv, would still be free and usable. It just means you can't swap in-place between eth0 and eth1 anymore.risa2000 wrote:This is interesting. After an upgrade to udev-200 I have the interface ethv on my system, created by "my persistent rules" in /etc/udev/rules.d. I have not added the command line argument to the kernel to turn off new naming scheme and I also do not keep 80-net-name-slot.rules anymore in /etc/udev/rules.d.ssuominen wrote: Umm. No it doesn't. It tells explictely those 2 lines are now old and shouldn't be used. Only way to use eth* is to disable entire new networking from udev by adding empty 80-net-name-slot.rules, or symlink it to /dev/null, that will mean kernel will do all the naming which can be random.
Either use the new names or rename to free namespace like net* or similar.
You must have read wrong.
So I wonder, could it be because I run vanilla kernel 3.8.4 and not gentoo sources? Why is my interface renamed correctly when you say the complete namespace eth* is no longer supposed to work?
Code: Select all
HP init.d # ifconfig lo
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 16436
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 2430 bytes 194588 (190.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2430 bytes 194588 (190.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Code: Select all
HP init.d # dmesg | grep eth0
[ 2.298932] tg3 0000:85:00.0: eth0: Tigon3 [partno(BCM95751) rev b002] (PCI Express) MAC address d8:d3:85:20:56:34
[ 2.300548] tg3 0000:85:00.0: eth0: attached PHY is 5787 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[0])
[ 2.302179] tg3 0000:85:00.0: eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[ 2.303815] tg3 0000:85:00.0: eth0: dma_rwctrl[76180000] dma_mask[64-bit]
[ 7.616563] systemd-udevd[1313]: renamed network interface eth0 to enp133s0
Code: Select all
HP init.d # dmesg | grep wlan0
[ 8.764556] systemd-udevd[1312]: renamed network interface wlan0 to wlp2s0
Code: Select all
[Settings]
backend = external
wireless_interface = wlan0
wired_interface = eth0
wpa_driver = wext
always_show_wired_interface = True
Code: Select all
Settings]
backend = external
wireless_interface = wlp2s0
wired_interface = enp133s0
wpa_driver = wext
always_show_wired_interface = True
Code: Select all
ln -s /etc/init.d/net.lo /etc/init.d/net.enp133s0
Code: Select all
/etc/init.d/wicd restart

The same feature is already in 197. It's just disabled there by default and random kernel assigned names are used by default.rogerx wrote:astaines: Upon sync and upgrading on Sunday, in other words I upgraded to the latest sys-fs/udev sys-fs/udev-init-scripts, I found no interfaces within ifconfig upon booting this morning and no "/etc/wicd/manager-settings.conf" file(s). I too also removed /etc/udev/rules.d/* to /root, and rebooted. (I too require custom /etc/udev/rules since I have two on-board ethernet PCIE with an add-on wireless PCIE, requiring ordering to initialize the Intel PCIE first and all others secondary. But shouldn't have been an issue since I read the eselect news posts and removed those files, and rebooted.)
Saw this coming within the past weeks too, and had a gut feeling things were going to break. I give -1 votes for security with this recent udev upgrade.
A better, secure method:
# echo "=sys-fs/udev-200" >> /etc/portage/package.mask
# echo "=sys-fs/udev-init-scripts-25" >> /etc/portage/package.mask
# emerge =sys-fs/udev-197-r8
# emerge =sys-fs/udev-init-scripts-23
worries me..."4. predictable network interface names:
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, and the resulting names may vary by kernel
configuration, hardware configuration and kernel version."
At the same time i'm told in eselect news that interface naming will be done by kernel and may vary by kernel configuration, hardware configuration and kernel version. (who here has many systems that are identical in both hardware and kernel version/config??)."To activate this function, move this file to a name that doesn't end in.rules,
# or remove it then reboot your system."

The news item says:andip wrote:the best joke in all this though : "Udev 197 and above has implemented predictable network interface names....". FYI, my main network interface has been called eth0, on many different hardware/kernel-variants, for at least 15 years. if that's not predictable, what is?
So you can wipe the /etc/udev/rules.d directory clean for starters to have a clean slate.In a normal new installation there are no files in /etc/udev/rules.d
and if you haven't edited any files you have in there, you should most
likely backup and delete them all if they don't belong to any packages.
Code: Select all
# mv /etc/udev/rules.d/* /root/
As in, run the following: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, and the resulting names may vary by kernel
configuration, hardware configuration and kernel version.
Code: Select all
# ln -nfs /dev/null /etc/udev/rules.d/80-net-name-slot.rules
Code: Select all
libudev.so.0 is missingWell, you're up against the March of the Sonames. It doesn't matter if you've got udev or eudev: the soname has moved to libudev.so.1.Thistled wrote:Code: Select all
libudev.so.0 is is missing
Code: Select all
revdep-rebuild --library libudev.so.0