No network running with RTL8139 on openSUSE 11.1

Hello,

I recently installed openSUSE without any big issue except that I have no network running despite a working hardware. I first got the error during the installation, then no way to fix the problem. Note that the system log confirm a timeout on eth1.

For information I have no network problem on Windows and I previously installed openSUSE 11.0 with the VirtualBox (under WinXP) without facing such problem on the same machine.

Here are some data which maybe could help to find some hints. Any help is greatly appreciated!

Boot Log File
Setting up (localfs) network interfaces:
lo
lo IP address: 127.0.0.1/8
IP address: 127.0.0.2/8
done eth1 device: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
eth1 Starting DHCP4 client. . . . <notice>checkproc: /usr/bin/kdm 2228
. . . .
eth1 DHCP4 continues in background
waiting
Waiting for mandatory devices: eth1 NSC
11 10 8 7 6 4 3 2 0
eth1 device: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
eth1 DHCP4 client (dhcpcd) is running
eth1 . . . but is still waiting for data
waiting
eth1 interface could not be set up until now
failedSetting up service (localfs) network . . . . . . . . . .failed

# dmesg
vendor=8086 device=2448
tifm_7xx1 0000:06:06.3: PCI INT A -> GSI 22 (level, low) -> IRQ 22
8139cp 0000:06:07.0: This (id 10ec:8139 rev 10) is not an 8139C+ compatible chip
8139cp 0000:06:07.0: Try the “8139too” driver instead.
sdhci-pci 0000:06:06.4: SDHCI controller found [104c:8034] (rev 0)
vendor=8086 device=2448
sdhci-pci 0000:06:06.4: PCI INT A -> GSI 22 (level, low) -> IRQ 22
mmc0: SDHCI controller on PCI [0000:06:06.4] using PIO
mmc1: SDHCI controller on PCI [0000:06:06.4] using PIO
mmc2: SDHCI controller on PCI [0000:06:06.4] using PIO
8139too Fast Ethernet driver 0.9.28
vendor=8086 device=2448
8139too 0000:06:07.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
eth1: RealTek RTL8139 at 0xf8a5a400, 00:0a:e4:dd:29:bf, IRQ 20
eth1: Identified 8139 chip type ‘RTL-8100B/8139D’

# ifconfig -a
eth1 Link encap:Ethernet HWaddr 00:0A:E4:DD:29:BF
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:45 errors:0 dropped:0 overruns:0 frame:0
TX packets:155 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4990 (4.8 Kb) TX bytes:53010 (51.7 Kb)
Interrupt:20 Base address:0xa400

# /sbin/lspci
Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

Hi

Your dmesg says:

8139cp 0000:06:07.0: This (id 10ec:8139 rev 10) is not an 8139C+ compatible chip
8139cp 0000:06:07.0: Try the “8139too” driver instead.

Do exactly this. You need the 8139too module as a driver for your card. Yast gets this wrong in 11.1. I had exactly the same problem some time ago and loading the right driver solved the problem.

Thanks vodoo for your comment but there is still things I cannot understand:

1/ What is identified as IRQ22 and IRQ20? Looks the same to me but I guess it cannot be. Right?

Note: under WinXP, both my ethernet device and my wireless device are IRQ20. The PCMCIA interface is IRQ22. I don’t know if it is the same from one OS to another on the same machine.

2/ How to do what you suggest? (I have limited experience on Linux, details appreciated)

The module to be used can be set via the “Hardware”-tab of YaST’s Network Devices module.

Second possibility (makes also sense as a second measurement to be absolutely sure the wrong module is not loaded) would be to blacklist the undesired module (google is your friend on how to do that).

Hi

1/ What is identified as IRQ22 and IRQ20? Looks the same to me but I guess it cannot be. Right?

These are Interrupts used to talk to your devices. They seem ok.

Note: under WinXP, both my ethernet device and my wireless device are IRQ20. The PCMCIA interface is IRQ22. I don’t know if it is the same from one OS to another on the same machine.

Are you dual booting? Windows may disable your ethernet card on shutdown and the linux driver doesn’t know how to turn it on again. See details at SDB:Realtek 8139 Driver Problem - openSUSE

2/ How to do what you suggest? (I have limited experience on Linux, details appreciated)

In the file /etc/modprobe.d/blacklist add one line:

blacklist 8139cp

Please report if this did the trick. If not please post the result of:

hwinfo --netcard

Good luck!

1/ I activated the Wake-On-LAN on Windows to avoid it to deactivate my card.

2/ I blacklisted 8139cp and restarted. # dmesg do not show any 8139cp information anymore. BUT everything else is the same: timeout on eth1.

3/ # hwinfo --netcard

28: PCI 607.0: 0200 Ethernet controller
[Created at pci.318]
UDI: /org/freedesktop/Hal/devices/pci_10ec_8139
Unique ID: JNkJ.kz11N1t7muE
Parent ID: 6NW+.pbi2aV6ikBD
SysFS ID: /devices/pci0000:00/0000:00:1e.0/0000:06:07.0
SysFS BusID: 0000:06:07.0
Hardware Class: network
Model: “Realtek RTL-8139/8139C/8139C+”
Vendor: pci 0x10ec “Realtek Semiconductor Co., Ltd.”
Device: pci 0x8139 “RTL-8139/8139C/8139C+”
SubVendor: pci 0x103c “Hewlett-Packard Company”
SubDevice: pci 0x309e
Revision: 0x10
Driver: “8139too”
Driver Modules: “8139too”
Device File: eth1
I/O Ports: 0x4000-0x4fff (rw)
Memory Range: 0xc8209400-0xc82094ff (rw,non-prefetchable)
IRQ: 20 (125 events)
HW Address: 00:0a:e4:dd:29:bf
Link detected: yes
Module Alias: “pci:v000010ECd00008139sv0000103Csd0000309Ebc02sc00i00”
Driver Info #0:
Driver Status: 8139too is active
Driver Activation Cmd: “modprobe 8139too”
Driver Info #1:
Driver Status: 8139cp is not active
Driver Activation Cmd: “modprobe 8139cp”
Config Status: cfg=no, avail=yes, need=no, active=unknown
Attached to: #16 (PCI bridge)

Hi again

I’m really scratching my head here … in my opinion this looks good, almost identical to this, which is from a perfectly running system of my own:

18: PCI 0a.0: 0200 Ethernet controller
  [Created at pci.286]
  UDI: /org/freedesktop/Hal/devices/pci_10ec_8139
  Unique ID: rBUF.IQxIdIhhuH7
  SysFS ID: /devices/pci0000:00/0000:00:0a.0
  SysFS BusID: 0000:00:0a.0
  Hardware Class: network
  Model: "Realtek RT8139"
  Vendor: pci 0x10ec "Realtek Semiconductor Co., Ltd."
  Device: pci 0x8139 "RTL-8139/8139C/8139C+"
  SubVendor: pci 0x10ec "Realtek Semiconductor Co., Ltd."
  SubDevice: pci 0x8139 "RT8139"
  Revision: 0x10
  Driver: "8139too"
  Driver Modules: "8139too"
  Device File: eth0
  I/O Ports: 0xa400-0xa4ff (rw)
  Memory Range: 0xdb800000-0xdb8000ff (rw,non-prefetchable)
  IRQ: 10 (597987 events)
  HW Address: 00:e0:4c:39:0f:e0
  Link detected: yes
  Module Alias: "pci:v000010ECd00008139sv000010ECsd00008139bc02sc00i00"
  Driver Info #0:
    Driver Status: 8139too is active
    Driver Activation Cmd: "modprobe 8139too"
  Driver Info #1:
    Driver Status: 8139cp is not active
    Driver Activation Cmd: "modprobe 8139cp"
  Config Status: cfg=no, avail=yes, need=no, active=unknown

I remember that the result of ifconfig -a looked quite promising in your first post, because it reported some packets and no errors. Something else must be broken here. The module seems just fine now. What happens, when you re-configure your eth1 with yast now? Check the usual things (like you did for your first post) and report any snippets looking odd. It’s got to run after all.