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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.