# 8139too network driver problems

## artworcs

Hi, I have a Realtek network card and i'm experiencing some problems with it. The problem is as follows:

I've configured my kernel with 8139too support both statically and as a module. Output from dmesg shows the ethernet card as found. lspci also shows the card. I can do ifconfig eth0, assign it an ip adress, but i cannot ping any host on the network and the led from the switch doesn't light up, as if no network cable would be present. The cards works perfectly in WinXp(using it now). I've found some references on google that i should enable PIO mode, but that didn't help. The 8139too is the correct module since knoppix(any version) detects it, but has the same problem, the driver is loaded, but no connectivity. All of my ip and route settings are correct, also tried to use dhcp, but i could not get a response. Static ip at least shows up in ifconfig. I'm using the same settings as in WinXP. 

When i specify the media=<something> parameter to modprobe, the ethernet cards led lights up, but the switch or the other computers on the network still do not see my host.

Any help would be appreciated as  i'm searching the net for mor then a week now and still wasn't able to locate any real solution for my problem.

----------

## Pithlit

```
# modprobe 8139too
```

to load the module. It works on the liveCD so I suppose (providing you've built your kernel correctly) it should work for you.

 */etc/conf.d/net wrote:*   

> iface_eth0="10.0.0.111 broadcast 10.0.0.255 netmask 255.255.255.0"
> 
> ...
> 
> gateway="eth0/10.0.0.101"

 these are the two single lines that need to be uncomented. This, of course, assumes you're using static IP's. Can't help you with dhcp as I've never used it (I find it evil and pretty much useless). Just change the apropriate IP numbers.

Now... knoppix uses 3 modules to get RTL8139 based cards up. 8139cp, 8139too and mii (loaded in this order). That's because the chip has different revisions. If the former doesn't work, try loading these 3 modules.

Hope it helps

----------

## artworcs

It doesn't work on the liveCd!

```

lspci

0000:00:00.0 Host bridge: nVidia Corporation nForce2 AGP (different version?) (rev c1)

0000:00:00.1 RAM memory: nVidia Corporation nForce2 Memory Controller 1 (rev c1)

0000:00:00.2 RAM memory: nVidia Corporation nForce2 Memory Controller 4 (rev c1)

0000:00:00.3 RAM memory: nVidia Corporation nForce2 Memory Controller 3 (rev c1)

0000:00:00.4 RAM memory: nVidia Corporation nForce2 Memory Controller 2 (rev c1)

0000:00:00.5 RAM memory: nVidia Corporation nForce2 Memory Controller 5 (rev c1)

0000:00:01.0 ISA bridge: nVidia Corporation nForce2 ISA Bridge (rev a4)

0000:00:01.1 SMBus: nVidia Corporation nForce2 SMBus (MCP) (rev a2)

0000:00:02.0 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4)

0000:00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4)

0000:00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4)

0000:00:04.0 Ethernet controller: nVidia Corporation nForce2 Ethernet Controller (rev a1)

0000:00:06.0 Multimedia audio controller: nVidia Corporation nForce2 AC97 Audio Controler (MCP) (rev a1)

0000:00:08.0 PCI bridge: nVidia Corporation nForce2 External PCI Bridge (rev a3)

0000:00:09.0 IDE interface: nVidia Corporation nForce2 IDE (rev a2)

0000:00:1e.0 PCI bridge: nVidia Corporation nForce2 AGP (rev c1)

0000:01:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

0000:02:00.0 VGA compatible controller: nVidia Corporation NV18 [GeForce4 MX 440 AGP 8x] (rev c1)

```

```

lsmod:

Module                  Size  Used by

ipv6                  182560  6

8139too                17664  0

mii                     2304  1 8139too

crc32                   3040  1 8139too

evdev                   6464  0

forcedeth              12224  0

parport_pc             27072  0

parport                22728  1 parport_pc

sbp2                   16744  0

ohci1394               24836  0

ieee1394               62008  2 sbp2,ohci1394

ohci_hcd               15044  0

uhci_hcd               23152  0

usb_storage            46208  0

ehci_hcd               21028  0

```

```

ifconfig:

eth0      Link encap:Ethernet  HWaddr 00:02:44:9D:46:48

          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0

          inet6 addr: fe80::202:44ff:fe9d:4648/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  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:1000

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

          Interrupt:5 Base address:0x6000

eth1      Link encap:Ethernet  HWaddr 00:04:61:6F:0E:0F

          inet addr:85.204.109.178  Bcast:85.204.111.255  Mask:255.255.252.0

          inet6 addr: fe80::204:61ff:fe6f:e0f/64 Scope:Link

          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:1000

          RX bytes:235040 (229.5 Kb)  TX bytes:53027 (51.7 Kb)

          Interrupt:11 Base address:0xc000

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)

```

----------

## Pithlit

Doesn't work? Are you saying my livecd is different from yours?  :Razz: 

 *lsmod snip wrote:*   

> 8139too                24320  0 
> 
> 8139cp                 19200  0 
> 
> mii                     4736  2 8139too,8139cp

 Since I see no 8139cp module loaded in your lsmod I'm guessing you ignored my previous post... but anyway... here's a snip from the kernel menuconfig:

```
<M>   RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIMENTAL)            

<M>   RealTek RTL-8139 PCI Fast Ethernet Adapter support                              

[*]     Use PIO instead of MMIO (NEW)                                                 

[ ]     Support for uncommon RTL-8139 rev. K (automatic channel equalization) (NEW)   

[ ]     Support for older RTL-8129/8130 boards (NEW)                                  

[ ]     Use older RX-reset method (NEW)            
```

See? Play around with those.

----------

## artworcs

```

root@ttyp1[source]# modprobe  8139cp

modprobe: Can't locate module 8139cp

```

[edit]And that is in knoppix[/edit]

----------

## artworcs

 *Pithlit wrote:*   

> 
> 
> ```
> <M>   RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIMENTAL)            
> 
> ...

 

I've already tried, but nothing changes.

----------

## Pithlit

OK... got me there. I'm not at home so I can't dispute that. Anyway... just humor me and try loading that module on your livecd. If it _still_ doesn't work then use the Jackass! liveCD.

----------

## rhill

uh, why would the Jackass LiveCD be any different?

8139cp is the experimental module for 8139 Rev C+ cards.  It won't be loaded if he doesn't have one.

----------

## Pithlit

The Jackass! liveCD has the module. I used it this afternoon. I don't know if the Jackass! liveCD has different modules than the Gentoo liveCD.

----------

## artworcs

My net connection was out for some houres, sorry. But back to topic.

I've recompiled my kernel do include 8139cp suport, but the modules does not load, with some sort od no such device error.

On my card there's printed that it's a rtl8139D card. After a couple of searches i've found that 8139too is the right driver for my card, not 8139cp.

I'll keep on searching and i'll post here any new info.

[edit]And i'm currently downloading the jackass iso, but my isp is doing some work on the lines, so i don't have a too good connection[/edit]

----------

## artworcs

After editing the 8139too.c file and turning on depug messages, one can notice that in the dmesg output the card id succesfully detected as 8139D, but it doesn't work.

Also when trying to load the 8139cp driver it tells me to use the 8139too instead

```

8139too Fast Ethernet driver 0.9.27

rtl8139_init_board: PIO region size == 0x100

rtl8139_init_board: MMIO region size == 0x100

rtl8139_init_board: chipset id (1950351360) == index 8, 'RTL-8100B/8139D'

rtl8139_init_board: PCI PM wakeup

rtl8139_init_one: about to register device named eth%d (cf5c5000)...

eth1: RealTek RTL8139 at 0xc000, 00:02:44:9d:46:48, IRQ 5

eth1:  Identified 8139 chip type 'RTL-8100B/8139D'

eth1: link up, 100Mbps, full-duplex, lpa 0x45E1

rtl8139_hw_start: init buffer addresses

__set_rx_mode: eth1:   rtl8139_set_rx_mode(1002) done -- Rx config 0000f78a.

__set_rx_mode: eth1:   rtl8139_set_rx_mode(1003) done -- Rx config 0000f78a.

__set_rx_mode: eth1:   rtl8139_set_rx_mode(1003) done -- Rx config 0000f78a.

__set_rx_mode: eth1:   rtl8139_set_rx_mode(1003) done -- Rx config 0000f78e.

__set_rx_mode: eth1:   rtl8139_set_rx_mode(1003) done -- Rx config 0000f78e. 

```

----------

## artworcs

I've tried out two more livecds: Mandrake Move and Mepis. Neither could make the nework work. The module loads, but no connection.

I've noticed that in Linux the card uses IRQ 5 while in winxp IRQ 16.

1. Is that important?

2. How can i change the IRQ in Linux?

----------

## jojopyro

didn't we all see earlier that both of his cards were recognized?  that would mean that its either just a connectivity or resolution problem, right?  Do you have /etc/resolv.conf configured correctly, can you ping 192.168.*.* (*s being whatever a local device is, i.e. router).  Maybe i didn't read all the posts completely, but it WAS my understanding by the first dmesg and lsmod that the module was loaded, we probably made him do something that unloaded it.  Also, don't EVER post your ifconfig prints...  people will then have your box's ip address (for security purposes, this is a bad idea).  I also use the Realtek 8139too module, however when i upgraded to 2005.0, the module was built-in, yay for us cheap people.

----------

## cabbagewalker

 *Quote:*   

> didn't we all see earlier that both of his cards were recognized? that would mean that its either just a connectivity or resolution problem, right?

 

Looks as if the card is working to me as well - I use a 8139too card, here's lspci

```

0000:02:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

```

 and heres's my ifconfig -- it's "UP" but not "RUNNING" as there is no cable plugged into it, but it works when there is one plugged in. The differences are I have no ip6 address and my Interrupt is different.

```

/sbin/ifconfig

eth0      Link encap:Ethernet  HWaddr 00:10:DC:0F:99:7D

          inet addr:192.168.0.5  Bcast:192.168.0.255  Mask:255.255.255.0

          UP BROADCAST MULTICAST  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:1000

          RX bytes:0 (0.0 b)  TX bytes:1380 (1.3 Kb)

          Interrupt:21 Base address:0xc800

```

and here's the relevant modules used.

```

8139too                21760  0

mii                     4224  1 8139too

```

Hope that helps you.

----------

## espeleta

Turn off ACPI in kernel options.

----------

## frankc

Muchas gracias espeleta, I have been battling all this week with exactly the same problem with 8139too as described by artworcs.  Your fix.. namely turn off ACPI and rebuild kernel.. worked at last.

For those with the same problem, note that although the driver appears to load and dmesg and ifconfig look ok, as soon as you try to actually use it you are getting messages in /var/log/messages (or wherever your logger goes) showing a low-level transmit timeout fault in the 8139too driver.  This problem did not occur with the 2004.3 livecd nor with windows xp; it appears after studying all the other newsgroups out there, as far as I understand it, that kernel 2.6.11 8139too driver is broken for the combination of ACPI plus this card with older motherboards that have flakey ACPI support.  I note that the 8139too driver gets tweaked in this area at every kernel revision so hopefully not too many others will suffer this particular nightmare with post-2.6.11 kernels.

----------

