OpenWrt Forum Archive

Topic: LAN interface not found

The content of this topic has been archived on 2 May 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

I've just installed OpenWrt on a PC and edited /etc/config/network and included the following:

config interface 'lan'
        option ifname 'eth0'
        option type 'bridge'
        option proto 'static'
        option ipaddr '172.16.20.200'
        option netmask '255.255.255.0'
        option gateway '172.16.20.1'
        option dns '8.8.8.8'
        option ip6assign '60'

restarted the network but eth0 does not show up when I run ifconfig eth0 :-

ifconfig: eth0: error fetching interface information: Device not found

Dmesg does recognise the NIC - e1000 Intel PRO/1000 Network Driver...

How do I enable eth0?

Is "eth0" the correct name? What is the output of "ifconfig -a"?

It only shows lo.

How new is the chipset? Is your specific E1000 supported by OpenWRT? Is there a driver for it?

Following https://forum.openwrt.org/viewtopic.php?id=67915

uci show network

network.lan=interface
network.lan.ifname='eth0'

There is also something called

network.globals=globals

but have no idea whether I need to change anything there...

600cc wrote:

How new is the chipset? Is your specific E1000 supported by OpenWRT? Is there a driver for it?

It's probably 10 years old, but I don't know how to find out if OpenWrt has a driver for it.

If it is a PCIe e1000 chip, it may need driver e1000e (not e1000) and that may not exist in OpenWrt.

If you're saying your log contains this:
[    8.325101] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI
[    8.332212] e1000: Copyright (c) 1999-2006 Intel Corporation.

That means only that the e1000 driver has loaded into the kernel.  It does not mean that an E1000 chip was found.  When a chip is found there will be another line saying that eth0 was attached to the driver.

mk24 wrote:

If it is a PCIe e1000 chip, it may need driver e1000e (not e1000) and that may not exist in OpenWrt.

If you're saying your log contains this:
[    8.325101] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI
[    8.332212] e1000: Copyright (c) 1999-2006 Intel Corporation.

That means only that the e1000 driver has loaded into the kernel.  It does not mean that an E1000 chip was found.  When a chip is found there will be another line saying that eth0 was attached to the driver.

The above is exactly what is in dmesg.

This is the chip the laptop has installed, so what step am I missing to get eth0 attached to the driver?

Install kmod-e1000e. 

You could do this by booting your OpenWrt on a machine that has a network card supported with the default build, so it can be connected to the Internet to make the install.

Can I download it onto my TP-LINK router which runs OpenWrt and copy it onto a USB stick?

All my systems use the e1000 chip.

Or it there an option to get it via wget?

You would need to format the USB stick with ext4 because that is the only filesystem included in the x86 builds.  Or you can mount your OpenWrt drive on a machine with Internet access (and ext4 support) and copy the opkg to it.  Then boot OpenWrt and opkg install the package file(s).

OpenWrt was installed on an 8GB USB stick using:-

dd if=openwrt-15.05-x86-generic-combined-ext4.img of=/dev/sda

I presume it has an ext4 filesystem but don't know how to check.

I've mounted it and now can see /mnt/bin/opkg but when I run it, it just says

zsh: no such file or directory: /mnt/bin/opkg so, not sure what you mean by 'copy the opkg to it'.

mk24 wrote:

Install kmod-e1000e. 

You could do this by booting your OpenWrt on a machine that has a network card supported with the default build, so it can be connected to the Internet to make the install.


I just did a find on e1000 and numerous files were found including

/sys/bus/pci/drivers/e1000
/sys/module/e1000/drivers/pci:e1000

It seems that OpenWrt correctly identifies the NIC and it has drivers for it, so why can't I use it?

e1000e is different from e1000. 

The default build does not include e1000e, only e1000.

e1000 is for older Intel GbE chips which connect to a parallel PCI bus.  e1000e is for newer chips for motherboards which use a serial PCIe bus.  After 2005 or so, practically every laptop and desktop was being built with PCIe.

(Last edited by mk24 on 19 Mar 2018, 22:31)

mk24 wrote:

e1000e is different from e1000. 

The default build does not include e1000e, only e1000.

e1000 is for older Intel GbE chips which connect to a parallel PCI bus.  e1000e is for newer chips for motherboards which use a serial PCIe bus.  After 2005 or so, practically every laptop and desktop was being built with PCIe.

Are you saying that the latest x86 release of OpenWrt includes default drivers for systems which became obsolete 13 years ago and newer ones are not included? Seems crazy to me...

So where can I download an e1000e driver?

From the OpenWrt server.  It has to match the version and CPU type (32 or 64 bit) of the OpenWrt image you have installed.

Perhaps this one, which is 17.01.4 for 32 bit: https://downloads.openwrt.org/releases/ … ntium4.ipk

Download the ipk to your Linux PC which is connected to the Internet, then mount the OpenWrt stick root directory and copy the file somewhere you can find it (such as /root, which is the directory you first see when logging in-- it starts out empty).  Then unmount the OpenWrt stick and boot it on the laptop.  Use opkg install filename to install the package.  The Ethernet port should now work.  You may need to reboot.

(Last edited by mk24 on 19 Mar 2018, 23:30)

After digging out my old ThinkPad T42 I've managed to gain access to eth0!

Now I can use opkg, so let's see if I can use eth0 on my ThinkPad T60....

When you have OpenWrt running on the other laptop and connected to the Internet, simply opkg update && opkg install kmod-e1000e then shut down and reboot the stick on the T60.

It works!!!

Thanks to all those that helped.

The discussion might have continued from here.