[systemd-devel] udev too late renaming network interfaces

Samuli Suominen ssuominen at gentoo.org
Tue May 13 06:52:56 PDT 2014


On 13/05/14 16:43, Grant wrote:
>>> I'm on Gentoo and when the system tries to start my network interfaces
>>> at boot, I get:
>>>
>>> Cannot find device "enp0s20u2u1"
>>>  *   ERROR: interface enp0s20u2u1 does not exist
>>>  *   Ensure that you have loaded the correct kernel module for your hardware
>>>  * ERROR: net.enp0s20u2u1 failed to start
>>>  * Bringing up interface enp0s20u2u2
>>> Cannot find device "enp0s20u2u2"
>>>  *   ERROR: interface enp0s20u2u2 does not exist
>>>  *   Ensure that you have loaded the correct kernel module for your hardware
>>>  * ERROR: net.enp0s20u2u2 failed to start
>>>
>>> It seems udev is taking too long to rename my USB ethernet interfaces
>>> from eth0 and eth1 to the above names.  Once the system is booted, I
>>> can start the interfaces just fine.  I do like the renaming
>>> functionality so I can plug any USB ethernet adapter into a particular
>>> USB port and it will work without changes so I'd rather not disable
>>> that.  Everything is built into the kernel, I'm not loading any
>>> modules.  I have 5 Dell XPS 13 systems and only one is exhibiting this
>>> problem.
>> Is your network configuration system waiting at all for network devices
>> to show up? If not, it's not really compatible who modern network
>> devices work, in particularly USB devices.
>>
>> It needs to wait with libudev until the network devices it is interested
>> in have been reported initialized by udev.
>
> Thank you Tom and Lennart.  I'm not sure what to call my network
> configuration system.  It's default Gentoo stuff, just initscrips in
> runlevels.  To confirm, I should file a Gentoo bug?
>
>

Are you using dhcpcd with this device? It's USE="udev" in Gentoo that
makes net-misc/dhcpcd link against libudev
for initialization to make sure it's ready.

And this networking system is called net-misc/netifrc:

https://git.overlays.gentoo.org/gitweb/?p=proj/netifrc.git;a=summary

It's not programmed in C, so it's not using libudev, however, there is
/etc/init.d/net.lo that is part of the net-misc/netifrc
package, and net.lo has sys-apps/openrc specific depend() { } section,
so it's very much possible that net.lo init
script should have dependency on /etc/init.d/udev init script to ensure
it's initialized early enough
I suppose this could be the problem if you are not using dhcpcd, or it's
built wrongly, without USE="udev"

So yeah, file a Gentoo bug and provide necessary information there, if
this didn't help you

- Samuli


More information about the systemd-devel mailing list