From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040312 Description of problem: Please configure ethernet interfaces in PCI device order. In particular, if the mainboard bridge chipset has an internal ethernet interface (so that the traffic goes directly to the memory controller without having to contend for the PCI bus) then that interface should be eth0. Version-Release number of selected component (if applicable): kudzu-1.1.57-1 How reproducible: Always Steps to Reproduce: 1. Install Fedora Core 2 Test 3 on a x86 system having a mainboard bridge ethernet interface (SiS900 inside SiS730) and a PCI-card ethernet interface (Intel InBusiness 10/100 [82559 eepro100]). 2. 3. Actual Results: eth0 is the add-on card. eth1 is the builtin interface. Expected Results: eth0 is the builtin interface. eth1 is the add-on card. Additional info: The builtin interface will have a lower PCI device number than any add-on card. In this example, the builtin interface is 00:01.1, and the add-on interface is 00:09.0 . # /sbin/lspci 00:00.0 Host bridge: Silicon Integrated Systems [SiS] 730 Host (rev 02) 00:00.1 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev d0) 00:01.0 ISA bridge: Silicon Integrated Systems [SiS] SiS85C503/5513 (LPC Bridge) 00:01.1 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet (rev 82) 00:01.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 07) 00:01.3 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 07) 00:01.4 Multimedia audio controller: Silicon Integrated Systems [SiS] SiS PCI Audio Accelerator (rev 02) 00:02.0 PCI bridge: Silicon Integrated Systems [SiS] Virtual PCI-to-PCI bridge (AGP) 00:09.0 Ethernet controller: Intel Corp. 82559 InBusiness 10/100 (rev 08) ... #
I'm not at all certain this can be done generically for all platform types. The PCI bus order isn't guaranteed to yield the best possible configuration. However, there are ways to get closer to what you want. This thread came up on linux-poweredge a month ago. Here was my response then: http://lists.us.dell.com/pipermail/linux-poweredge/2005-December/023685.html There you'll also find a script I wrote, name_eths, which does its best to assign ethX names in ascending order, first choosing the LAN ports on the motherboard, then ascending by slot number, and if you've got a multiport card in a slot, then by ascending MAC addresses on that card. It rewrites the HWADDR lines in the /etc/sysconfig/network-scripts/ifcfg-ethX files to then match this ordering. http://linux.dell.com/files/name_eths/name_eths-0.1.tar.gz http://linux.dell.com/files/name_eths/name_eths-0.1.tar.gz.sign As always, this isn't Dell-supported, or by anyone else for that matter. It appears to do what you're looking for. Thanks, Matt
What kudzu does is merely do it by kernel order, determined by udev's module loading order, any delays in network driver initialization, and the kernel's PCI probe order - I don't think this will be significantly changed in kudzu.