Slackware 13.1 can't configure two network cards

Hello everybody,

I'm having troubles with Slackware 13.1 and network cards.

I have one on-board Ethernet card (which is recognized and works okay) and a PCI Ethernet card (which is also recognized, but doesn't appear in 'ifconfig -a'). If i run a 'lspci', i can see the kernel recognized the two cards:

01:02.0 Ethernet controller: Honeywell IAC Device 0139 (rev 10)
01:08.0 Ethernet controller: Intel Corporation 82562EZ 10/100 Ethernet Controller (rev 01)

But, when i run ifconfig, i only can see the Intel on-board card as eth0.
I remember that slackware 12.0, 12.1 and even 12.2 automatically recognized and configured the network cards, but this version seems to work different.

Could someone help me to configure them? I'm loosing my head trying to figure out what's wrong with the system...
Thanks in advance.

My /etc/rc.d/rc.inet1.conf looks like the following:

# Config information for eth0:
IPADDR[0]=""
NETMASK[0]=""
USE_DHCP[0]="yes"
DHCP_HOSTNAME[0]=""

# Config information for eth1:
IPADDR[1]=""
NETMASK[1]=""
USE_DHCP[1]="yes"
DHCP_HOSTNAME[1]=""
...

DEBUG_ETH_UP="yes"

When i run 'dmesg' it outputs the following:

root@host:~# dmesg |grep eth
e100: eth0: e100_probe: addr 0xff8ff000, irq 20, MAC addr 00:0c:f1:af:24:65
ADDRCONF(NETDEV_UP): eth0: link is not ready
ADDRCONF(NETDEV_UP): eth0: link is not ready
e100: eth0 NIC Link is Up 100 Mbps Full Duplex
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
eth0: no IPv6 routers present

Please, help!

All lspci does is read IDs off the PCI bus and look up their names in a huge text file. It doesn't care which have drivers. If your honeywell card doesn't appear in ifconfig -a, it's not being recognized by a kernel driver. What exactly is the card? Going by the manufacturer, I doubt it's ordinary.

It could be that this is a supported chipset but has an unusual PCI ID which makes the driver not try to use it. You'll have to figure out which chipset this Honeywell card is using before you can try and coax a driver into recognizing it.

Good call, Corona688!
I extracted the card from the mother board and the Ethernet card chipset is a RealTek 8139A (RTL8139A), but lspci shows it as a 'Honeywell' and, as i already said, doesn't recognize it.

What can be happening? How do i get it to work?
Thank you very much.

Linux decides what drivers to use with what cards based on their PCI ID's, and may not recognize the Honeywell card because of its funny ID. If it really is a normal Realtek card, without any important differences in wiring than a garden-variety one, you might be able to get it recognized by adding its PCI ID to the list of recognized ID's in the realtek 8139 driver and recompiling.

Have you exhausted all possibilities with the realtek drivers though? I believe there's at least two for 8139, "8139cp" and "8139too" since there's two subtly but wholly incompatible kinds of 8139 with the same PCI ID. If you have either of them loaded(you'll see it in lsmod), rmmod it and modprobe the other.

You might even be able to get away with using the generic "ne2000" module, which probes for ne2000-compatible cards ignoring IDs and works for many odd, older PCI network cards.

Hey Corona688,

You were right, the driver '8139too' was blacklisted from modprobe, i don't know the reason. I commented ('#') it and rebooted, and i got it working. with some issues, but working. (Now there's no 'eth0' device, but 'eth1' and 'eth2').

Thank you very much.

Probably because they're mutually exclusive. A card can only use one of them, picking the wrong one will stop it from working, and there's no way for the kernel to tell which it needs until it's too late. You have to blacklist one to guarantee the correct one gets loaded first.

If it's not being used, you might want to blacklist 8139cp.