On Friday, July 19, 2002 9:25 AM, Jonathan Dye wrote:
Looks like my first email never made it so i'll try again.
Hi folks,
I got a new PC today and have been busy beavering away installing Linux on its hard disk and setting it up to dual boot. Everything seems to have gone smoothly apart from my ethernet connection (Realtek RTL8139).
I had lots of problems with my RTL8139 based board under kernels 2.4.3 to about 2.4.16. It all seems to be fine now I'm running 2.4.18.
Jul 13 22:15:16 chocchip kernel: 8139too Fast Ethernet driver 0.9.24 Jul 13 22:15:16 chocchip kernel: eth0: RealTek RTL8139 Fast Ethernet at 0xd4a16000, 00:10:dc:1f:95:78, IRQ 18 Jul 13 22:15:16 chocchip kernel: eth0: Identified 8139 chip type 'RTL-8139B' Jul 13 22:15:16 chocchip kernel: eth0: Setting half-duplex based on auto-negotiated partner ability 0000.
I get this too even thought my card works fine. I got something slightly different with the broken drivers in the earlier kernels. Doing a diff between the earlier drivers and the one I have now shows that some code changed around this and the changelog says something about some cards being broken.
Hi Jonathan,
Thanks for your, and everyone else's, help and advice. It was very much appreciated as I was a bit out of my depth with this problem as, as far as I could tell, everything looked correctly configured within Linux. Happily the problem has now been solved and I can network away to my hearts delight.
I don't fully understand the problem, so may be talking rubbish, and there may be a more elegant software solution, but I will quickly run through how I solved it in case someone else comes across this problem in future:
It seems that the clue to my problems was in the "cat /proc/interrupts" which Steve Fosdick asked me to do. My output was:
CPU0 0: 39797 IO-APIC-edge timer 1: 339 IO-APIC-edge keyboard 2: 0 XT-PIC cascade 8: 2 IO-APIC-edge rtc 12: 2107 IO-APIC-edge PS/2 Mouse 14: 6366 IO-APIC-edge ide0 15: 124 IO-APIC-edge ide1 18: 0 IO-APIC-level eth0 20: 0 IO-APIC-level usb-ohci 23: 0 IO-APIC-level usb-ohci NMI: 0 LOC: 39750 ERR: 0 MIS: 0
This hinted at a couple of things: Firstly my ethernet card had been assigned interrupt 18 whereas PC interrupts normally only go up to 15. Secondly it shows it as "IO-APIC-level". Chris Glover suggested I should therefore look at the Plug-And-Play settings in my BIOS and disable them. I had a rummage round and found an APIC MODE option hidden away in the "Advanced BIOS Features" section of my BIOS setup. I changed this from ENABLED to DISABLED, rebooted my PC and everything sprang into life, my "cat /proc/interrupts" now being:
CPU0 0: 19210 XT-PIC timer 1: 262 XT-PIC keyboard 2: 0 XT-PIC cascade 8: 2 XT-PIC rtc 11: 31 XT-PIC eth0, usb-ohci, usb-ohci 12: 1923 XT-PIC PS/2 Mouse 14: 7206 XT-PIC ide0 15: 118 XT-PIC ide1 NMI: 0 LOC: 19175 ERR: 0 MIS: 0
and my "dmesg" entries now being:
8139too Fast Ethernet driver 0.9.24 eth0: RealTek RTL8139 Fast Ethernet at 0xd4a04000, 00:10:dc:1f:95:78, IRQ 11 eth0: Identified 8139 chip type 'RTL-8139B' eth0: Setting half-duplex based on auto-negotiated partner ability 0000.
Disabling APIC does now mean that my ethernet card shares it's interrupt with the two USB ports but as I don't have anything to plug into them I am hoping this will not be a problem.
Thanks again everyone for your help.
Ian.