It turns out that the Biostar Small-Form-Factor PC that I use as a NAS doesn't
have gigabit ethernet onboard. The onboard NIC is some RealTek 100Mbit
thing. To match with my new gigabit switch, I bought an Intel 82541PI PCI
Gigabit NIC to upgrade the NAS to Gigabit. I pop the card in, boot up the
NAS, expecting the new Intel card to be eth1, but...
> /sbin/ifconfig eth1
eth1: error fetching interface information: Device not found
Um, not good. I check dmesg, and see:
Intel(R) PRO/1000 Network Driver - version 8.0.9-NAPI
Copyright (c) 1999-2008 Intel Corporation.
ACPI: PCI Interrupt 0000:00:08.0[A] -> GSI 16 (level, low) -> IRQ 16
e1000: 0000:00:08.0: e1000_probe: (PCI:33MHz:32-bit) 00:1b:21:2e:3b:64
8139too Fast Ethernet driver 0.9.28
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
ACPI: PCI Interrupt 0000:00:0d.0[A] -> GSI 19 (level, low) -> IRQ 17
eth1: RealTek RTL8139 at 0xd000, 00:e0:4c:ee:6e:71, IRQ 17
eth1: Identified 8139 chip type 'RTL-8100B/8139D'
This is weird. The kernel comes up and sees the Intel card as eth0, and
the RealTek card as eth1. Fine, right? But once init takes over, it
doesn't appear that way at all. eth0 is the RealTek device, and eth1 is
nowhere to be found.
After an hour or so of frustration: upgrading the e1000 driver,
disabling/enabling the RealTek NIC from the BIOS, Googling, etc. I finally
find a web site that reminds me of /proc/net/dev:
> cat /proc/net/dev | awk '{print $1;}'
Inter-|
face
lo:
eth2:
eth0:
Ah ha! Somehow, I no longer have an eth1, but rather eth0 (RealTek) and
eth2 (Intel). ipconfig will configure it, the card talks on the
network, and is just fine and dandy.
I am still stumped as to why the network cards get renamed. I've poked around
in /etc/udev/, but have not found anything that looks like it would cause
this renaming to occur.
So I put this query to the Lazyweb... Any ideas why the network cards get renamed?