Previously, I'd edited 70-persistent-net.rules to read: SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:40:63:e7:e5:d6", NAME="eg0" SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:40:63:50:00:07:f8:15", NAME="fw0" ... and this worked fine. udev-119 seems to have changed some of the keys, so I now have: SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:40:63:e7:e5:d6", ATTR{type}=="1", KERNEL=="eth*", NAME="eg0" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:40:63:50:00:07:f8:15", ATTR{type}=="24", KERNEL=="eth*", NAME="fw0" ... and this just does not work :( Neither interface's name is changed, whereas this worked with all earlier versions of udev. Have I misunderstood the updated udev syntax, does udev need additional logic or prodding to rename interfaces, or is interface renaming just broken?
# udevtest /class/net/eth0 This program is for debugging only, it does not run any program, specified by a RUN key. It may show incorrect results, because some values may be different, or not available at a simulation run. parse_file: reading '/etc/udev/rules.d/05-udev-early.rules' as rules file parse_file: reading '/dev/.udev/rules.d/10-root-link.rules' as rules file parse_file: reading '/etc/udev/rules.d/30-kernel-compat.rules' as rules file parse_file: reading '/etc/udev/rules.d/40-alsa.rules' as rules file parse_file: reading '/etc/udev/rules.d/40-gentoo.rules' as rules file parse_file: reading '/etc/udev/rules.d/40-video.rules' as rules file parse_file: reading '/etc/udev/rules.d/50-udev-default.rules' as rules file parse_file: reading '/etc/udev/rules.d/60-cdrom_id.rules' as rules file parse_file: reading '/etc/udev/rules.d/60-persistent-input.rules' as rules file parse_file: reading '/etc/udev/rules.d/60-persistent-storage-tape.rules' as rules file parse_file: reading '/etc/udev/rules.d/60-persistent-storage.rules' as rules file parse_file: reading '/etc/udev/rules.d/61-persistent-storage-edd.rules' as rules file parse_file: reading '/etc/udev/rules.d/64-device-mapper.rules' as rules file parse_file: reading '/etc/udev/rules.d/64-md-raid.rules' as rules file parse_file: reading '/etc/udev/rules.d/65-permissions.rules' as rules file parse_file: reading '/etc/udev/rules.d/70-persistent-net.rules' as rules file parse_file: reading '/etc/udev/rules.d/75-cd-aliases-generator.rules' as rules file parse_file: reading '/etc/udev/rules.d/75-persistent-net-generator.rules' as rules file parse_file: reading '/etc/udev/rules.d/80-drivers.rules' as rules file parse_file: reading '/etc/udev/rules.d/90-network.rules' as rules file parse_file: reading '/etc/udev/rules.d/95-udev-late.rules' as rules file import_uevent_var: import into environment: 'INTERFACE=eth0' import_uevent_var: import into environment: 'IFINDEX=2' udevtest: looking at device '/devices/pci0000:00/0000:00:0e.0/net/eth0' from subsystem 'net' wait_for_sysfs: file '/sys/devices/pci0000:00/0000:00:0e.0/net/eth0/address' appeared after 0 loops udev_rules_get_name: rule applied, 'eth0' becomes 'eg0' rename_netif: changing net interface name from 'eth0' to 'eg0' udev_device_event: renamed netif to 'eg0' udev_device_event: changed devpath to '/devices/pci0000:00/0000:00:0e.0/net/eg0' udevtest: run: 'net.sh eg0 start' udevtest: run: 'socket:/org/kernel/udev/monitor' ... this all looks correct - but the interface isn't being renamed.
Weird... 'udevadm trigger --retry-failed' seems to initiate the rename - but why'd it fail in the first place?
Can you please attach udevinfo -a -p /sys/class/net/DEVICE_NAME for both of your devices.
Maybe we need some kind of log to trace the udev event processing at boot.
Please attach the output of emerge --info. Does renaming works with a newer udev-version? With which?