I know there are two physical network interfaces in our server (haven't seen it live, but person from datacenter confirmed two ethernet sockets). Problem is, I can only see one via ifconfig -a.

At first, here's what lspci reported:

# lspci -vv|grep -i ethernet
00:19.0 Ethernet controller: Intel Corporation Unknown device 10bd (rev 02)
03:02.0 Ethernet controller: Intel Corporation 82541GI/PI Gigabit Ethernet

After running

# update-pciids

it nows looks like

# lspci -vv|grep -i ethernet
00:19.0 Ethernet controller: Intel Corporation 82566DM-2 Gigabit Network Connection (rev 02)
03:02.0 Ethernet controller: Intel Corporation 82541GI Gigabit Ethernet Controller (rev 05)

dmidecode output:

# dmidecode|grep -i ethernet
    Type: Ethernet
    Description: Intel 82541PI Ethernet Device
    Type: Ethernet
    Description: Intel 82566DM Ethernet Devic

I have downloaded latest e1000 driver from intel and compiled it against current kernel headers. Used driver version is e1000-8.0.13.

# uname -r

After connecting via serial cable and doing rmmod/modprobe for e1000, result is still the same. I have also tried same steps for e1000e- with same result.

After modprobe, dmesg doesn't show anything about eth1 being found.

There is a file /etc/udev/rules.d/z25_persistent-net.rules with following content:

# PCI device 0x8086:0x1076 (e1000)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:15:17:28:44:db", NAME="eth0"

and no entry for eth1. Maybe this file controls which eth devices are created after loading the driver? Problem is, I don't know the MAC of my missing interface, any way to find the MAC?



Here's the contents of /sys/class/net directory

/sys/class/net# ls
eth0  lo  sit0

I had a look at /lib/udev/write_net_rules which is a tool generating /etc/udev/rules.d/z25_persistent-net.rules file. This tool uses entries in /sys/class/net, so it now seems unlikely that changing z25_persistent-net.rules would be of any help.


from e1000e README

This driver supports kernel versions 2.4.x and 2.6.x.  This driver includes
support for Itanium(R)2-based systems.
- The following adapters do not support Jumbo Frames:
     Intel(R) 82562V 10/100 Network Connection
     Intel(R) 82566DM Gigabit Network Connection
     Intel(R) 82566DC Gigabit Network Connection
     Intel(R) 82566MM Gigabit Network Connection
     Intel(R) 82566MC Gigabit Network Connection
     Intel(R) 82562GT 10/100 Network Connection
     Intel(R) 82562G 10/100 Network Connection
     Intel(r) 82566DC-2 Gigabit Network Connection
     Intel(R) 82562V-2 10/100 Network Connection
     Intel(R) 82562G-2 10/100 Network Connection
     Intel(R) 82562GT-2 10/100 Network Connection
     Intel(R) 82583V Gigabit Network Connection
     Intel(R) 82578DC Gigabit Network Connection

can someone confirm (with sources) that I really need to upgrade my kernel in order for this to work?

5 Answers 5


try getting more recent kernel - maybe etch-n-half or even upgrade to lenny.

  • Seems like this is the only reasonable action left, I'll update the question after changing kernel next week.
    – Karolis T.
    Jul 27, 2009 at 11:38

Maybe this file controls which eth devices are created after loading the driver?

That udev line merely ensures eth0 is always the same device (the 'persistent' part); as your nic is invisible, so is your MAC, both to you and the OS. Adding eth1 there will not create it for you. I agree with pQd, below: try a more recent kernel.


You need the e1000e driver for this card, apparently. Its PCI ID appears in the modinfo e1000e output :

# modinfo e1000e | grep 10BD

alias: pci:v00008086d000010BDsvsdbcsci*

It's available from 2.6.24 or better apparently.

  • I have tried e1000e with same results, could 2.6.18 be really limiting my options? Thanks
    – Karolis T.
    Jul 27, 2009 at 11:06
  • Can you cite your sources for "It's available from 2.6.24 or better apparently.", just so I can be sure.
    – Karolis T.
    Jul 27, 2009 at 11:08
  • I have a couple of kernels at hand. There is no e1000e.ko in 2.6.17.xx, 2.6.18.xx, 2.6.20.xx nor 2.6.22.xx, and there is one in I don't know for 2.6.23.
    – wazoox
    Jul 27, 2009 at 12:44

If updating the OS is not much of an option, you could put a newer OS on the hardware, and run the older OS as a virtual machine. This is a useful way of supporting older operating systems on newer hardware. (and in some commercial Linux offerings, this is reflected in the lifecycle)


You should be able to use lspci -k, which would show which kernel module would be used for each device.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .