# Problem with udev-114

## Alexandr Podrepny

A have a problem.

I update udev package from udev-104-r13 to udev-114.

After this update VLAN is not properly up at boot.

On my server setting up 3 network interfaces (eth0, eth1, eth2). On each interface I have from 5 to 20 VLANs.

In boot time server print diferent messages about not properly up VLAN interfaces and attempts initialise different network interfaces which i not have physicaly.

On one boot system not up with errors something like:

Adding VLAN 31 to eth0 - OK

  Can't find device eth0.31 ....

  Config for eth22 not find. Try dhclinet....

Adding VLAN 178 to eth1 - OK

  Can't add VLAN 178 to eth1.....

  Config for eth57 not find. Try dhclient......

Where from system find ETH57 or ETH22  ?

In next reboot, this VLANs normal up, but other VLANs failed with same errors.

After install previos version udev (udev-104-r13) this error did not repeat.

Where my error ?

Or it's a BUG ??

----------

## didymos

Try deleting this file: /etc/udev/rules.d/70-persistent-net.rules

and then reboot.

----------

## loisl

Hai Alexander,

didymos response leads into the right way, but may not provide the final (?) solution.

I have a similar problem that after upgrade to udev-114 on a Gentoo system running on a VMware Workstation 6.0.0 as a guest operating system.

After each reboot the number of the eth<num> is increased by one and all eth interfaces are "shifted" by one after each reboot.

In my case this is caused because the sysfs "DRIVER" attribute is empty (not one character)

```
vmux01 ~ # udevinfo --query=all --attribute-walk --path=/sys/class/net/lan0

Udevinfo starts with the device specified by the devpath and then

walks up the chain of parent devices. It prints for every device

found, all possible attributes in the udev rules key format.

A rule to match, can be composed by the attributes of the device

and the attributes from one single parent device.

  looking at device '/class/net/lan0':

    KERNEL=="lan0"

    SUBSYSTEM=="net"

    DRIVER==""

    ATTR{weight}=="0"

    ATTR{tx_queue_len}=="1000"

    ATTR{flags}=="0x1003"

    ATTR{mtu}=="1500"

    ATTR{operstate}=="unknown"

    ATTR{dormant}=="0"

    ATTR{carrier}=="1"

    ATTR{broadcast}=="ff:ff:ff:ff:ff:ff"

    ATTR{address}=="00:0c:29:be:1d:40"

    ATTR{link_mode}=="0"

    ATTR{type}=="1"

    ATTR{features}=="0x0"

    ATTR{ifindex}=="2"

    ATTR{iflink}=="2"

    ATTR{addr_len}=="6"
```

and /etc/udev/rules.d/75-persistent-net-generator.rules creates each time it is called at system boot when a new net device has to be added a new entry in /etc/udev/rules.d/70-persistent-net.rules with a new name for the same MAC address.

My workarround is as follows:

1. remove /etc/udev/rules.d/70-persistent-net.rules

2. reboot the system

3. rename the newly generated /etc/udev/rules.d/70-persistent-net.rules to something like /etc/udev/rules.d/10-my-persistent-net.rules (it is important that the leading number in the filename is lower than 70)

4. edit your new /etc/udev/rules.d/10-my-persistent-net.rules and delete all the DRIVER="?*", columns

5. look at the MAC addresses and give Your devices the desired names

Example:

```
vmux01 rules.d # cat 10-my-persistent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules

# program run by the persistent-net-generator.rules rules file.

#

# You can modify it, as long as you keep each rule on a single line.

# net device ()

SUBSYSTEM=="net", ATTR{address}=="00:0c:29:be:1d:40", NAME="eth0"
```

where the DRIVER column is already deleted.

With this workaround I have new freedom on the system

----------

## nitso

i've got alike problem. My configuration is 2 vlans on 1 network card.

my /etc/conf.d/net:

```
config_eth0=( "null" )

vlans_eth0=( "77 800" )

config_vlan77=( "10.1.3.164 netmask 255.255.254.0" )

config_vlan800=( "10.1.4.5 netmask 255.255.255.0" )

config_eth0_77=( "10.1.3.164/23" )

config_eth0_800=( "10.1.4.5/24" )

vlan_start_eth0=( "yes" )
```

on startup script renames both interfaces to eth1 eth2, then on next reboot to eth3 eth4 and etc.

syslog when restarting net:

```
eth0.77: del 01:00:5e:00:00:01 mcast address from vlan interface

eth0.77: del 01:00:5e:00:00:01 mcast address from master interface

udev-net.sh: /etc/init.d/net.eth0.77: does not exist or is not executable

eth0.800: del 01:00:5e:00:00:01 mcast address from vlan interface

eth0.800: del 01:00:5e:00:00:01 mcast address from master interface

udev-net.sh: /etc/init.d/net.eth0.800: does not exist or is not executable

eth0: link up, 100Mbps, full-duplex, lpa 0x41E1

udevd-event[23354]: rename_netif: error changing netif name eth0.77 to eth6: Device or resource busy

eth0.77: add 01:00:5e:00:00:01 mcast address to master interface

udev: renamed network interface eth0.800 to eth7

udev-net.sh: /etc/init.d/net.eth7: does not exist or is not executable
```

my /etc/udev/rules.d/20-persistent-net.rules:

```
# PCI device 0x10ec:0x8139 (8139too)

SUBSYSTEM=="net", DRIVERS=="8139too", ATTR{address}=="00:0e:2e:2c:f4:65", NAME="eth0"

# net device ()

SUBSYSTEM=="net", DRIVERS=="8139too", ATTR{address}=="00:0e:2e:2c:f4:65", NAME="eth0.77"

# net device ()

SUBSYSTEM=="net", DRIVERS=="8139too", ATTR{address}=="00:0e:2e:2c:f4:65", NAME="eth0.800"

```

so i get working eth0.77 because "error changing netif name eth0.77 to eth6: Device or resource busy"

and not working eth0.800 because it is renamed to eth7 and not started

when i delete /etc/udev/rules.d/20-persistent-net.rules, on reboot new 70-persistent-net.rules is created and network works properly. On next reboot renaming error repeats.

----------

## joyo222

 *Quote:*   

> I have a similar problem that after upgrade to udev-114 on a Gentoo system running on a VMware Workstation 6.0.0 as a guest operating system.
> 
> After each reboot the number of the eth<num> is increased by one and all eth interfaces are "shifted" by one after each reboot. 
> 
> 

 

awesome, thanks for the solution!  i had the exact same problem building a new gentoo VM on ESX.

----------

