On Wed, Sep 26, 2007 at 01:12:24AM +0100, Timothy Murphy wrote: > When I re-booted a second time, > eth0 and eth1 came up as desired - > eth0 is the link to the internet, > while eth1 links to a WRT54GL with ethernet and WiFi connections. > But eth2 did not come up. > It should interface to a second WiFi device. > Instead this device has chosen the interface __tmp875397547 . > > I guess the reason the device did not choose eth2 > was that this had somehow been reserved by its previous connection > to the WRT54GL. The kernel device enumeration and udev logic has made this more problematic. To avoid such name collisions, we name our devices lanN; we use the HWADDR configuration parameter to specify the MAC address of the device that should be bound to a particular device name, e.g., /etc/sysconfig/network-scripts/ifcfg-lan0: DEVICE=lan0 HWADDR=aa:bb:cc:dd:ee ... Unfortunately, "eth" is hard-coded into the VLAN support, and since we use VLANs, we had to add a hackish workaround (which also includes the brN bridge devices): --- initscripts-8.45.7/sysconfig/network-scripts/ifup.vlans-on-renamed-devices 2006-09-11 13:15:01.000000000 -0400 +++ initscripts-8.45.7/sysconfig/network-scripts/ifup 2006-12-12 10:44:29.000000000 -0500 @@ -62,7 +62,7 @@ fi # Ethernet 802.1Q VLAN support if [ -x /sbin/vconfig -a "${VLAN}" = "yes" -a "$ISALIAS" = "no" ]; then VID="" - if [[ "${DEVICE}" =~ '^(eth|bond)[0-9]+\.[0-9]{1,4}$' ]]; then + if [[ "${DEVICE}" =~ '^(eth|lan|br|bond)[0-9]+\.[0-9]{1,4}$' ]]; then VID=$(echo "${DEVICE}" | LC_ALL=C sed 's/^[a-z0-9]*\.0*//') PHYSDEV=${DEVICE%.*} fi --- initscripts-8.45.7/sysconfig/network-scripts/ifdown-eth.vlans-on-renamed-devices 2006-09-11 13:15:01.000000000 -0400 +++ initscripts-8.45.7/sysconfig/network-scripts/ifdown-eth 2006-12-12 10:44:29.000000000 -0500 @@ -125,7 +125,7 @@ fi if [ -n "$VLAN" -a -x /sbin/vconfig ]; then # 802.1q VLAN - if echo ${DEVICE} | LANG=C egrep -v '(:)' | LANG=C egrep -q '(eth|bond)[0-9][0-9]*\.[0-9][0-9]?[0-9]?[0-9]?' \ + if echo ${DEVICE} | LANG=C egrep -v '(:)' | LANG=C egrep -q '(eth|lan|br|bond)[0-9][0-9]*\.[0-9][0-9]?[0-9]?[0-9]?' \ || echo ${DEVICE} | LANG=C egrep -q 'vlan[0-9][0-9]?[0-9]?[0-9]?' ; then [ -f /proc/net/vlan/${DEVICE} ] && { /sbin/vconfig rem ${DEVICE} Regards, Bill Rugolsky