How can I prevent udevd from renaming eth0 to em1

JD jd1008 at gmail.com
Wed Oct 17 21:25:58 UTC 2012


On 10/17/2012 02:15 PM, Bruno Wolff III wrote:
> On Wed, Oct 17, 2012 at 14:01:25 -0600,
>   JD <jd1008 at gmail.com> wrote:
>>
>> So, does anyone have any other suggestion how to
>> prevent udevd from renaming eth0 to em1?
>
> Do you have 71-biosdevname.rules in either /etc/udev/rules.d or 
> /usr/lib/udev/rules.d ? I expect that would run after the persistant 
> name rule and reset things.
>
> I actually have the opposite issue in that I want to use the 
> biosdevname names, since eth0 and eth1 have been getting assigned 
> randomnly for a while now on one of my machines and the renaming 
> ability of the network initscripts seems to have gone away.
>
OK, so in the udev source package, in file
udev/udev-event.c

if (udev_device_get_ifindex(dev) > 0 && 
strcmp(udev_device_get_action(dev), "add") == 0 &&
                     event->name != NULL && strcmp(event->name, 
udev_device_get_sysname(dev)) != 0) {
                         char syspath[UTIL_PATH_SIZE];
                         char *pos;

                         err = rename_netif(event);

However, as I am unfamiliar with this package's  internal logic and data 
structures,
it is still unclear why it finds the  interface index > 0
or the action set to add, nor is it clear why the values being tested 
have these values that cause the renaming.
For example, I have only one wired ethernet interface, so why would it's 
index be greater than 0?

I hope a developer with knowledge of the networking subsystem is able to 
help here.




More information about the users mailing list