[systemd-devel] udev failing to assign consistent biosdevnames to my ethernet interfaces

Kay Sievers kay at vrfy.org
Mon Jan 27 04:26:26 PST 2014


On Mon, Jan 27, 2014 at 6:39 AM, David Anderson <dave at natulte.net> wrote:

>> You have two devices of type Ethernet with the same Instance values.
>>
>> > Regardless, should udev be capable of handling this gracefully?

> If it is indeed a firmware bug, there's nothing obvious for udev to do. A
> suggestion on IRC was to disambiguate by bus/device ID in such cases (lowest
> bus:device gets eno1, next gets eno2, etc.).

Udev should not operate in the firmware namespace, and just allocate
the eno1 name here. It's the firmware that "owns" these names, not
userspace.

> I don't know if this is
> desirable, or even if udev can do this since it would require a second pass
> over the affected devices with a global view of all such devices.

Devices are independent and should not depend on each other, we cannot
really depend on the state of another, otherwise unrelated, device.

> In any case, I ended up writing my own rules that correctly set up eno1/eno2
> based on the port #s on the board. Slightly annoying, but short of bugging
> Intel for a firmware update, not much else to do.

Yeah, that's the only real option for now.

The only thing we could do is falling back to the default PCI
geography name on error; but even then, it would not be predictable
which of the devices with the conflicting firmware names will win at
bootup.

Kay


More information about the systemd-devel mailing list