# LNE100TX EtherFast PCI Adapter

## CoderMan

Hi. I set up a Gentoo Home Router following the official online instructions. It is a system with three interfaces (three Ethernet cards) for a WAN connection and two LAN subnets.

Problem is that one of the Ethernet cards I was using was ancient (14+ years old) and seemed to be causing issues, so I tossed it and bought a Linksys 10/100 EtherFast card (LNE100TX) off the shelf. However, it doesn't seem to work under Linux out of the box. (Please, no chastisements about not doing sufficient research first...)

Anyway, I'm not sure if there is a driver issue at work, or if there is something I forgot to configure. Here's the available interfaces:

```
eth1      Link encap:Ethernet  HWaddr 00:e0:29:43:d4:00  

          inet addr:172.16.0.1  Bcast:172.16.0.255  Mask:255.255.255.0

          inet6 addr: fe80::2e0:29ff:fe43:d400/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:2693 errors:0 dropped:0 overruns:0 frame:0

          TX packets:1772 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:272221 (265.8 KiB)  TX bytes:829965 (810.5 KiB)

          Interrupt:19 Base address:0x8400 

eth2      Link encap:Ethernet  HWaddr 00:c0:f0:30:f0:44  

          inet addr:192.168.227.2  Bcast:192.168.227.255  Mask:255.255.255.0

          inet6 addr: fe80::2c0:f0ff:fe30:f044/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:16277 errors:1 dropped:0 overruns:0 frame:0

          TX packets:1467 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:1276612 (1.2 MiB)  TX bytes:159676 (155.9 KiB)

          Interrupt:18 Base address:0xc800 

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

```

As you can see, eth1 and eth2 show up (the working cards), but when I was using the old card, there would also be eth0 available. But eth0 is not showing up.

I found a number of posts online here and there regarding LNE100TX, but they all basically say install the "tulip" module, but this module is already installed on my system, and even if I modprobe it and restart net.eth0 the device does not show up:

```

# modprobe tulip

# /etc/init.d/net.eth0 restart

 * Starting eth0

 *   Bringing up eth0

 *     172.16.1.1

 *     network interface eth0 does not exist

 *     Please verify hardware or kernel module (driver)                                                                                  [ !! ]
```

I reopened my kernel's menuconfig with genkernel to see if I could add some other driver, but virtually all the Ethernet drivers available were already installed, and I couldn't find anything called LNE* or anything similiar.

I found some ancient Linux drivers (Early Red Hat era) for LNE100TX at the Linksys site. They don't compile, but even if they did, they basically just install tulip, but as I said tulip is already on the system.

Here's my emerge --info:

```
# emerge --info

Portage 2.1.7.16 (default/linux/x86/10.0, gcc-4.3.4, glibc-2.10.1-r1, 2.6.31-gentoo-r6 i686)

=================================================================

System uname: Linux-2.6.31-gentoo-r6-i686-Pentium_III_-Katmai-with-gentoo-1.12.13

Timestamp of tree: Sat, 13 Feb 2010 22:15:01 +0000

app-shells/bash:     4.0_p35

dev-lang/python:     2.6.4

sys-apps/baselayout: 1.12.13

sys-apps/sandbox:    1.6-r2

sys-devel/autoconf:  2.63-r1

sys-devel/automake:  1.10.2

sys-devel/binutils:  2.18-r3

sys-devel/gcc:       4.3.4

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   2.2.6b

virtual/os-headers:  2.6.27-r2

ACCEPT_KEYWORDS="x86"

ACCEPT_LICENSE="* -@EULA"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -march=pentium3 -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"

CXXFLAGS="-O2 -march=pentium3 -pipe -fomit-frame-pointer"

DISTDIR="/usr/portage/distfiles"

FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"

GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"

LDFLAGS="-Wl,-O1"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"

USE="acl berkdb bzip2 cli cracklib crypt cups cxx dri fortran gdbm gpm iconv ipv6 modules mudflap ncurses nls nptl nptlonly openmp pam pcre perl pppd python readline reflection session spl ssl sysfs tcpd unicode x86 xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nv r128 radeon savage sis tdfx trident vesa via vmware voodoo" 

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

```

----------

## cach0rr0

is the driver built-in, or a module? 

i ask because if module, doing a modprobe then checking dmesg should provide useful info

I will say it's likely a driver issue if the card doesn't exist in /proc/net/dev

The other main item I wonder about is potentially a rogue udev rule. 

If so, could either nuke /etc/udev/rules.d/70-persistent-net.rules and let it get regenerated upon boot

or just edit that file and adjust as needed; for example, my wired NIC

if you want to make for absolute certain you have the right driver, check the first link in my sig, see what it suggests you should use.

----------

## CoderMan

 *cach0rr0 wrote:*   

> is the driver built-in, or a module? 
> 
> i ask because if module, doing a modprobe then checking dmesg should provide useful info
> 
> I will say it's likely a driver issue if the card doesn't exist in /proc/net/dev
> ...

 

Thanks for the help! Nuking the .rules file took care of the problem. All three interfaces show up now.

Only downside was that after rebooting, the eth* interface numbering was all changed, which messed up my network configuration. But I just switched the Ethernet cables around and everything was back to normal. Next time I upgrade an Ethernet card I'll learn how to properly link the MAC address to the interface name I want.

----------

## cach0rr0

aye, that was my worry with nuking rather than editing the file, is that when it was regenerated by write_net_rules it would give the cards different names. 

In the future, if you're terribly fussed and less lazy than myself, you can control naming of the interface with udev rules

oh well, so long as it's workable for you, good enough for me, can't be arsed to contemplate it further.

----------

