Trying to fix 8139too driver problems

Kevin Huffenberger khuffenb at gmail.com
Mon May 23 02:10:52 UTC 2005


I'm trying to install linux on a hp zv6000 laptop.  (Note to self:
never again try to install on brand new hardware.)  I have tried
several distros, Fedora Core 4 test3 is working best, but the
networking is working only sporadically.  Network seems to work okay
in FC1 and Ubuntu 5.04.  I get "link up" but "transmit timed out"
errors, so I suspect some driver conflict or misconfiguration.  I
rarely can get a dchp lease, but not usually.

I have included below the results of lspci, ifconfig, dmesg, rtl8139-diag, etc.

I have no idea how to debug this kind of problem.  Any input that can
help me track this down would be greatly appreciated.

---Kevin

--------------------------------------

[root at localhost ~]# uname -a
Linux localhost.localdomain 2.6.11-1.1329_FC4 #1 Thu May 19 21:14:20
EDT 2005 i686 athlon i386 GNU/Linux

[root at localhost ~]# /sbin/lspci -s 03:06.0 -vvvv
03:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 10)
        Subsystem: Hewlett-Packard Company: Unknown device 3085
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium
>TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 128 (8000ns min, 16000ns max)
        Interrupt: pin A routed to IRQ 11
        Region 0: I/O ports at a000 [size=256]
        Region 1: Memory at d4200000 (32-bit, non-prefetchable) [size=256]
        Capabilities: [50] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA
PME(D0-,D1+,D2+,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

---------------------------------------

[root at localhost ~]# /sbin/ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0F:B0:6E:03:F7
          inet6 addr: fe80::20f:b0ff:fe6e:3f7/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:11 Base address:0xa000

----------------------------------------

lsmod reveals:

8139too                30017  0
mii                     5441  1 8139too

----------------------------------------

When I (repeatedly) try to start eth0 with ifup, /var/log/messages shows

May 22 09:46:48 localhost dhclient: DHCPDISCOVER on eth0 to
255.255.255.255 port 67 interval 16
May 22 09:46:54 localhost kernel: NETDEV WATCHDOG: eth0: transmit timed out
May 22 09:46:54 localhost kernel: eth0: link up, 100Mbps, full-duplex,
lpa 0x41E1
May 22 09:47:04 localhost dhclient: DHCPDISCOVER on eth0 to
255.255.255.255 port 67 interval 10
May 22 09:47:14 localhost dhclient: DHCPDISCOVER on eth0 to
255.255.255.255 port 67 interval 12
May 22 09:47:26 localhost dhclient: DHCPDISCOVER on eth0 to
255.255.255.255 port 67 interval 4
May 22 09:47:30 localhost dhclient: No DHCPOFFERS received.
May 22 09:47:30 localhost dhclient: Trying recorded lease 192.168.2.7
May 22 09:47:30 localhost kernel: Unable to handle kernel NULL pointer
dereference at virtual address 00000004

----------------------------------------

dmesg gives some more info

NETDEV WATCHDOG: eth0: transmit timed out
eth0: Transmit timeout, status 0c 0005 c07f media 10.
eth0: Tx queue start entry 4  dirty entry 0.
eth0:  Tx descriptor 0 is 0008a156. (queue head)
eth0:  Tx descriptor 1 is 0008a156.
eth0:  Tx descriptor 2 is 0008a156.
eth0:  Tx descriptor 3 is 0008a156.
eth0: link up, 100Mbps, full-duplex, lpa 0x41E1

... and ...

Unable to handle kernel NULL pointer dereference at virtual address 00000004
 printing eip:
c01f31df
*pde = 00f56067
Oops: 0000 [#38]
Modules linked in: joydev parport_pc lp parport autofs4 rfcomm l2cap
bluetooth sunrpc pcmcia ipt_REJECT ipt_state ip_conntrack
iptable_filter ip_tables video button battery ac md5 ipv6 yenta_socket
rsrc_nonstatic pcmcia_core ohci_hcd ehci_hcd shpchp snd_atiixp
snd_ac97_codec snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq
snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd
soundcore snd_page_alloc 8139too mii dm_snapshot dm_zero dm_mirror
ext3 jbd dm_mod
CPU:    0
EIP:    0060:[<c01f31df>]    Not tainted VLI
EFLAGS: 00010246   (2.6.11-1.1329_FC4)
EIP is at avc_audit+0x2e9/0xbee
eax: c0ec65b0   ebx: 00000008   ecx: c0390491   edx: 00000000
esi: c82daf0c   edi: 00000008   ebp: c57a8aa0   esp: c82dae6c
ds: 007b   es: 007b   ss: 0068
Process ping (pid: 7666, threadinfo=c82da000 task=c57a8aa0)
Stack: c61b8200 c039048c c03861bb c0ccd3f0 c9d0ecec c9d0ed04 cd6a73ac cd6a73ac
       00db3c10 caa25e7c c11ab320 0011cc24 00000236 00000236 00000011 00000008
       c61b8200 00000008 cd69c00c 00000236 00000236 00000011 c0168307 00000000
Call Trace:
 [<c0168307>] handle_mm_fault+0x1f9/0x322
 [<c015a779>] poison_obj+0x20/0x3d
 [<c01f4154>] avc_has_perm+0x4e/0x5a
 [<c01f8df6>] selinux_socket_create+0x44/0x127
 [<c02fef25>] __sock_create+0x6b/0x1dd
 [<c02ff0af>] sock_create+0x18/0x1d
 [<c02ff0ed>] sys_socket+0x1c/0x44
 [<c02fff2c>] sys_socketcall+0x84/0x290
 [<c0108436>] do_syscall_trace+0xef/0x123
 [<c0103a51>] syscall_call+0x7/0xb
Code: 3f fe ff ff 8b 94 24 9c 00 00 00 8b 42 08 89 44 24 08 c7 44 24
04 a8 04 39 c0 8b 4c 24 40 89 0c 24 e8 85 a5 f5 ff e9 18 fe ff ff <a1>
04 00 00 00 85 c0 0f 84 ef fd ff ff 8b 80 98 00 00 00 85 c0
 <6>eth0: link up, 100Mbps, full-duplex, lpa 0x41E1

-----------------------

Results of diagnostic programs

[root at localhost 8139_diagnostic]# ./rtl8139-diag -aaf
rtl8139-diag.c:v2.13 2/28/2005 Donald Becker (becker at scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a RealTek RTL8139 adapter at 0xa000.
RealTek chip registers at 0xa000
 0x000: 6eb00f00 0000f703 a0000000 40000000 0008a156 00002000 00002000 00002000
 0x020: 04c0c000 04c0c600 04c0cc00 04c0d200 05090000 0c0a0000 029cfff0 0005c07f
 0x040: 77400680 0000f78e 3c3744f9 00000000 008d1000 00000000 00a8c110 00100000
 0x060: 1100100f 01e1782d 000141e1 00000000 00000704 000107c8 60f60c59
7b732660.Realtek station address 00:0f:b0:6e:03:f7, chip type
'rtl8139C'.
  Receiver configuration: Normal unicast and hashed multicast
     Rx FIFO threshold 2048 bytes, maximum burst 2048 bytes, 32KB ring
  Transmitter enabled with NONSTANDARD! settings, maximum burst 1024 bytes.
    Tx entry #0 status 0008a156 complete, 342 bytes.
    Tx entry #1 status 00002000 incomplete, 0 bytes.
    Tx entry #2 status 00002000 incomplete, 0 bytes.
    Tx entry #3 status 00002000 incomplete, 0 bytes.
  Flow control: Tx disabled  Rx disabled.
  The chip configuration is 0x10 0x8d, MII half-duplex mode.
  Interrupt sources are pending.
   Rx Complete indication.
   Transmit OK indication.

[root at localhost 8139_diagnostic]# ./rtl8139-diag -ee
rtl8139-diag.c:v2.13 2/28/2005 Donald Becker (becker at scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a RealTek RTL8139 adapter at 0xa000.
Realtek station address 00:0f:b0:6e:03:f7, chip type 'rtl8139C'.
  Receiver configuration: Reception disabled
     Rx FIFO threshold 16 bytes, maximum burst 16 bytes, 8KB ring
  Transmitter disabled with normal settings, maximum burst 16 bytes.
  Flow control: Tx disabled  Rx disabled.
  The chip configuration is 0x10 0x8d, MII half-duplex mode.
  Interrupt sources are pending.
   Rx Complete indication.
   Transmit OK indication.
Decoded EEPROM contents:
   PCI IDs -- Vendor 0x10ec, Device 0x8139.
   PCI Subsystem IDs -- Vendor 0x103c, Device 0x3085.
   PCI timer settings -- minimum grant 32, maximum latency 64.
  General purpose pins --  direction 0xe1  value 0x1e.
  Station Address 00:0F:B0:6E:03:F7.
  Configuration register 0/1 -- 0x8d / 0xc2.
 EEPROM active region checksum is 093d.
EEPROM contents (64 words):
 0x00:  8129 10ec 8139 103c 3085 4020 e11e 0f00
 0x08:  6eb0 f703 8d10 f7c2 a801 43b9 a0f2 071a
 0x10:  df43 8a36 df43 8a36 43b9 a0f2 1111 1111
 0x18:  0000 23a9 0000 0000 0000 0000 0000 1800
 0x20:  0000 0000 0000 0000 0000 0000 0000 0000
      ...
[root at localhost 8139_diagnostic]# ./rtl8139-diag -mm
rtl8139-diag.c:v2.13 2/28/2005 Donald Becker (becker at scyld.com)
 http://www.scyld.com/diag/index.html
Index #1: Found a RealTek RTL8139 adapter at 0xa000.
Realtek station address 00:0f:b0:6e:03:f7, chip type 'rtl8139C'.
  Receiver configuration: Reception disabled
     Rx FIFO threshold 16 bytes, maximum burst 16 bytes, 8KB ring
  Transmitter disabled with normal settings, maximum burst 16 bytes.
  Flow control: Tx disabled  Rx disabled.
  The chip configuration is 0x10 0x8d, MII half-duplex mode.
  Interrupt sources are pending.
   Rx Complete indication.
   Transmit OK indication.
 The RTL8139 does not use a MII transceiver.
 It does have internal MII-compatible registers:
   Basic mode control register   0x1100.
   Basic mode status register    0x782d.
   Autonegotiation Advertisement 0x01e1.
   Link Partner Ability register 0x41e1.
   Autonegotiation expansion     0x0001.
   Disconnects                   0x0000.
   False carrier sense counter   0x0000.
   NWay test register            0x0704.
   Receive frame error count     0x0000.
libmii.c:v2.11 2/28/2005  Donald Becker (becker at scyld.com)
 http://www.scyld.com/diag/index.html
 MII PHY #32 transceiver registers:
   1100 782d 0000 0000 01e1 41e1 0001 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000
   0000 0000 0000 0000 0000 0000 0000 0000.
 Basic mode control register 0x1100: Auto-negotiation enabled.
 Basic mode status register 0x782d ... 782d.
   Link status: established.
   Capable of  100baseTx-FD 100baseTx 10baseT-FD 10baseT.
   Able to perform Auto-negotiation, negotiation complete.
 This transceiver has no vendor identification.
 I'm advertising 01e1: 100baseTx-FD 100baseTx 10baseT-FD 10baseT
   Advertising no additional info pages.
   IEEE 802.3 CSMA/CD protocol.
 Link partner capability is 41e1: 100baseTx-FD 100baseTx 10baseT-FD 10baseT.
   Negotiation  completed.




More information about the fedora-test-list mailing list