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.
March 30th, 2009 at 1:18 pm
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.
March 30th, 2009 at 1:47 pm
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.
March 30th, 2009 at 2:17 pm
@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.