Network doesn’t come up after update to udev 0.140

The recent update to udev 0.140 lead to a system without network access to me. The error messages were:

Running 0dns-down to make sure resolv.conf is ok...done.
Setting up networking....
Configuring network interfaces...
ioctl[SIOCGIFFLAGS]: No such device
Could not get interface ‘ath0′ flags
ioctl[SIOCSIWPMKSA]: No such device
ioctl[SIOCSIWMODE]: No such device
Could not configure driver to use managed mode
ioctl[SIOCGIWRANGE]: No such device
ioctl[SIOCGIFINDEX]: No such device
ioctl[SIOCSIWENCODEEXT]: No such device
ioctl[SIOCSIWENCODE]: No such device
ioctl[SIOCSIWENCODEEXT]: No such device
ioctl[SIOCSIWENCODE]: No such device
ioctl[SIOCSIWENCODEEXT]: No such device
ioctl[SIOCSIWENCODE]: No such device
ioctl[SIOCSIWENCODEEXT]: No such device
ioctl[SIOCSIWENCODE]: No such device
ioctl[SIOCSIWAP]: No such device
ioctl[SIOCGIFFLAGS]: No such device
wpa_supplicant: /sbin/wpa_supplicant daemon failed to start
/etc/network/if-pre-up.d/wpasupplicant exited with return code 1
SIOCSIFADDR: No such device
ath0: ERROR while getting interface flags: No such device
SIOCSIFNETMASK: No such device
SIOCSIFBRDADDR: No such device
ath0: ERROR while getting interface flags: No such device
ath0: ERROR while getting interface flags: No such device
Failed to bring up ath0.
done.

It seems, the update added rules to /etc/udev/rules.d/70-persistent-net.rules by increasing the device number and applying the last applicable NAME directive instead of the first one. This lead to the following file here:

SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="XX:XX:XX:XX:XX:a7", ATTRS{type}=="1", NAME="ath0"

SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="XX:XX:XX:XX:XX:18", NAME="eth0"

SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="XX:XX:XX:XX:XX:XX", NAME="eth1"

# PCI device 0x10ec:0x8139 (8139too)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:XX:XX:XX:XX:18", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

# PCI device 0x168c:0x0013 (ath_pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:XX:XX:XX:XX:a7", ATTR{type}=="1", KERNEL=="ath*", NAME="ath1"

So the devices created were eth2 and ath1 but /etc/network/interfaces contained entries for eth0 and ath0. So fixed /etc/udev/rules.d/70-persistent-net.rules and rebooted.

<rant>Is it really necessary to break network access with an update???</rant>

Update

I forgot this one: #521521.

Tags: , , , ,

3 Responses to “Network doesn’t come up after update to udev 0.140”

  1. Frank Says:

    Its called unstable because of eh, you know ;-) Delete /etc/udev/rules.d/70-persistent-net.rules or fixe it by hand and everything is ok.

  2. erich Says:

    Same happened to my dad’s computer, which also didn’t have a working network connection after the upgrade, so I had to remotely debug this.

  3. Daniel Leidert Says:

    @Frank: Of course. But this is not a “safe” upgrade. How can you expect to *not* break the network, when you introduce new device names with higher priority over the existing ones? And we are not talking about manually changed rulesets here. I expect at least that an update of automatically created or shipped rulesets do not break the system during upgrade.