i’ve just rebooted my main PC and all the network interfaces came back to life. that’s the first time since the upgrade to fedora 8 last November.
even more scary – the virbr0 interface has reappeared so it’s just about possible that my VMs will work again too.
guess it must be time to upgrade to fedora 9 then.
all this (the fixing, not the breaking) was brought about by finally tracking down the /etc/udev/rules.d/70-persistent-net.rules file, doing man udev and setting debug in /etc/udev/udev.conf (but actually using the udevcontrol command mentioned in the comments of that file). to their great credit, redhat pointed me at that (persistent-net.rules) file when i raised the problem as a weirdly worded bug when it happened – but i was a bit confused about what i was trying to fix at the time.
the real problem was that those rules try to maintain network card to interface name relationships by using the hardware address on the card. that’s fine except that the sky2 device on my motherboard seems to have a zero address – which doesn’t work so well. i changed the rule to use the vendor and product ID instead on the assumption that i won’t install another of the same device. i still don’t know if that rule is actually working or if it’s just failing all the rules now and defaulting back to the name assignment i want.
udevinfo -a -p /sys/bus/pci/drivers/sky2/0000\:02\:00.0/ was useful for finding out that stuff for the rules.
now all i need is a way to set the hardware address properly. at the moment i’m doing it with ifconfig eth0 hw ether 12:34:56:78:90:ab from /etc/rc.local. discovered modinfo but that didn’t help. you can run a command from the udev rules – that’s probably the answer.
clearly though, i still don’t understand the udev rules. as far as i can understand those files i now have a specific match for each network device on my system, each of which sets that device to a nice, unique name. even so, the system says it can’t rename one of them during udev startup. grrrr.