LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   Ethernet Card detected in one kernel is not detected in the other?? (https://www.linuxquestions.org/questions/linux-hardware-18/ethernet-card-detected-in-one-kernel-is-not-detected-in-the-other-192758/)

ashishuttarwar 06-12-2004 02:20 PM

Ethernet Card detected in one kernel is not detected in the other??
 
Hi,

I am pretty new to the linux and unix. I installed Debian Linux on a PIII 400 MHz machine and configured the ethernet card to have internet on the computer.
Now, I installed one more kernel of Real Time linux on the system and configured lilo to give me the option to boot in normal linux or the real time linux. After booting the real time linux, it does not detect my ethernet card at all. I tried adding "ether=11,0x220,eth0" to lilo and rebooting. It did not work out. Also, "ifconfig" shows "lo Link ancap:... " which is I guess not the ethernet card.

I wrote down the HWaddr, Interrupt number and Base address of the ethernet card by booting in the normal linux kernel but not sure how to proceed.

I hopw someone should have gone through this and help me out at the earliest.

Bye.

drigz 06-12-2004 05:42 PM

im guessing that you didn't include the drivers for your ethernet card in the new kernel. youll have to recompile the kernel with the drivers for the network card. do you kno how to do that?

ashishuttarwar 06-13-2004 01:26 AM

Hi,

Thanks for your immediate response. Actually, I am pretty new to this thing and also someone did suggest me to modify the kernel in order to detect the ethernet card. But, I am not sure of how to do it.

I will really appreciate if you can guide me further on how to do it.

Thanks again.


Ashish

drigz 06-13-2004 03:24 AM

when you got the real time linux kernel, did you just download the kernel or did you download the source for it?

i reckon that you would need to get the source for it, then compile that, making sure you configure it right.

however, i'm not quite sure what real time linux is, and that may not be possible. ive so far gathered that its basically a modified version of the kernel which runs better.

eccles23 06-13-2004 07:32 AM

Try reading my response in this thread: http://www.linuxquestions.org/questi...hreadid=192345

The problem is identical I think.

the kernel doesn't 'detect' devices as such... well, it kindof does, but it needs to have the appropriate code loaded to be able to interact with it (ie the module).

so 1. find out what the module the other kernel was using for the network card was,
2. compile the new kernel with that module selected.

and that's it.
however you may need to fiddle a bit to (a) find out the old module (though not too much), and (b) get it into the new kernel (again not too much once you have made sure you actually have the source).

but just read my post in the other thread for more specific stuff :D

ashishuttarwar 06-13-2004 06:48 PM

Hi,

I tried to look for the module dor eth0 in module.conf.old in the folder etc but....its not there!! I don't know whats wrong.

I tried to look for etho in the control panel by booting through my older kernal and found it to be having interrupt no 11 and the row is as follows:

11: 9516 XT_PIC eth0

The above line is absent when I boot through the newer kernel for real time.

I am sorry to bother you but will appreciate your replies.

Thanks.

Ashish

eccles23 06-14-2004 04:46 AM

hmmm - boot back into the old kernel, and type
'dmesg' as root at the console.
then post the output of that command here...

also do 'lsmod' and post the output of that...

then we will go from there :)

ashishuttarwar 06-14-2004 09:23 PM

Hi drigz,

I got the real time linux from a software vendor. I had to have any linux base system to install this kernel. The Debian linux did configured the ethernet card during installation by asking the details about the card. The real time kernel is a kindof in developing stage and had no menu driven installation options.

Real Time Linux is used in embedded systems.

I am not sure whether I answered ur questions.


Hi eccles23,

I appreciate ur help too. Will get back to u soon after I get the outputs of 'dmesg' ad 'lsmod'.


Thanks guys.

ashishuttarwar 06-14-2004 11:38 PM

results of 'dmesg' and 'lsmod' commands
 
Following is the result of 'dmesg' command
realtime:/# dmesg
Linux version 2.2.20-idepci (herbert@gondolin) (gcc version 2.7.2.3) #1 Sat Apr
20 12:45:19 EST 2002
BIOS-provided physical RAM map:
BIOS-e820: 0009f000 @ 00000000 (usable)
BIOS-e820: 13efc000 @ 00100000 (usable)
Detected 400918 kHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 799.53 BogoMIPS
Memory: 322528k/327664k available (1164k kernel code, 412k reserved, 3488k data,
72k init)
Dentry hash table entries: 65536 (order 7, 512k)
Buffer cache hash table entries: 524288 (order 9, 2048k)
Page cache hash table entries: 131072 (order 7, 512k)
CPU: L1 I Cache: 32K L1 D Cache: 32K
CPU: L2 Cache: 256K
CPU: AMD-K6(tm) 3D+ Processor stepping 01
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
Checking for popad bug... OK.
POSIX conformance testing by UNIFIX
mtrr: v1.35a (19990819) Richard Gooch (rgooch@atnf.csiro.au)
PCI: PCI BIOS revision 2.10 entry at 0xf0560
PCI: Using configuration type 1
PCI: Probing PCI hardware
Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0 for Linux NET4.0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
TCP: Hash tables configured (ehash 524288 bhash 65536)
Starting kswapd v 1.5
vga16fb: initializing
vga16fb: mapped to 0xc00a0000
Console: switching to colour frame buffer device 80x30
fb0: VGA16 VGA frame buffer device
Serial driver version 4.27 with HUB-6 MANY_PORTS MULTIPORT SHARE_IRQ enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
pty: 256 Unix98 ptys configured
RAM disk driver initialized: 16 RAM disks of 4096K size
loop: registered device at major 7
ALI15X3: IDE controller on PCI bus 00 dev 78
ALI15X3: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xd400-0xd407, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xd408-0xd40f, BIOS settings: hdc:pio, hdd:pio
hda: WDC WD64AA, ATA DISK drive
hdc: FX400D, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: WDC WD64AA, 6149MB w/2048kB Cache, CHS=784/255/63
hdc: ATAPI 4X CD-ROM drive, 128kB Cache
Uniform CD-ROM driver Revision: 3.11
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
3c59x.c 18Feb01 Donald Becker and others http://www.scyld.com/network/vortex.htm
l
pcnet32.c: PCI bios is present, checking for devices...
via-rhine.c:v1.08b-LK1.0.1 12/14/2000 Written by Donald Becker
http://www.scyld.com/network/via-rhine.html
Partition check:
hda: hda1 hda2
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.13)
apm: disabled on user request.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 72k freed
Adding Swap: 995988k swap-space (priority -1)
eth0: 3c509 at 0x220 tag 1, 10baseT port, address 00 20 af c4 12 02, IRQ 11.
3c509.c:1.16 (2.2) 2/3/98 becker@cesdis.gsfc.nasa.gov.
eth0: Setting Rx mode to 1 addresses.
cdrom: open failed.
VFS: Disk change detected on device ide1(22,0)
hdc: irq timeout: status=0xd0 { Busy }
hdc: ATAPI reset complete
cdrom: open failed.
hdc: packet command error: status=0x51 { DriveReady SeekComplete Error }
hdc: packet command error: error=0x30
ATAPI device hdc:
Error: Medium error -- (Sense key=0x03)
(reserved error code) -- (asc=0x09, ascq=0x02)
The failed "Test Unit Ready" packet command was:
"00 00 00 00 00 00 00 00 00 00 00 00 "
VFS: Disk change detected on device ide1(22,0)
VFS: Disk change detected on device ide1(22,0)
attempt to access beyond end of device
16:00: rw=0, want=2147483381, limit=16318024
dev 16:00 blksize=1024 blocknr=-268 sector=-536 size=1024 count=1
isofs_read_super: bread failed, dev=16:00, iso_blknum=-134, block=-268
attempt to access beyond end of device
16:00: rw=0, want=2147483381, limit=16318024
dev 16:00 blksize=1024 blocknr=-268 sector=-536 size=1024 count=1
isofs_read_super: bread failed, dev=16:00, iso_blknum=-134, block=-268
attempt to access beyond end of device
16:00: rw=0, want=2147483381, limit=16318024
dev 16:00 blksize=1024 blocknr=-268 sector=-536 size=1024 count=1
isofs_read_super: bread failed, dev=16:00, iso_blknum=-134, block=-268

Following is the result of 'lsmod' command
Module Size Used by
3c509 5540 1
af_packet 6136 0 (unused)

I hope that it helps you to help me work out the things.

Thanks.

Ashish

drigz 06-15-2004 01:00 AM

it's looking like 3c509 is your module.

ashishuttarwar 06-15-2004 02:37 PM

Cool. So, now I got the module name as 3c509 for the ethernet card. But now, what statement should I write in the new kernel to make it work??

drigz 06-15-2004 02:45 PM

when you do the kernel configure, you have to find the right thing for your network card and either compile it as a module or compile it into the kernel. then when you use the new kernel with that, it should detect your network card.

ive been having a look and my kernel source and think you need to find support for:
3Com EtherLink III Series Ethercards

find that and enable it and that kernel should have support for your card.

ashishuttarwar 06-15-2004 02:50 PM

Hi drigz,

It seems that u r online now. Anyways, I am really not able to understand what do u mean by "you have to find the right thing for your network card and either compile it as a module or compile it into the kernel".

I am sorry for bothering u much but really I don't know hot to configure the new kernel with the module for the ethernet card.

Can u make it a bit clear on how to do it? WIll really appreciate that.

drigz 06-15-2004 02:52 PM

im guessing that you've never compiled a kernel before. you might want to try it with a normal kernel before you try it with a real time one. just have a look on htese forums or the net - there are millions of guides out there.

eccles23 06-15-2004 10:06 PM

yeah you will need the 3c509 module...

The linux kernel can be very customised before it's compiled.
At the moment it seems you are running an out-of-the-box kernel... ie the one that came with the distro - and when it was compiled (ie the source was compiled into binary files - including the modules and the kernel itself (bzimage)) it was done without that particular module (3c509) selected.

This is perfectly normal - everyone has different hardware configurations and although support for most hardware exists in the kernel, a prebuilt one will not neccesarily contain what's just right for YOUR hardware.

So first you need to install the kernel sources.

You have two options...

1. try to install the source for the kernel that came with your distro.
To do this you will need to do a 'uname -r' to find out what the exact name of your kernel is.
Then you will need to use dselect to try to find the package that contains the kernel source for that kernel.
Then you will need to go to /usr/src (where you will find the source zipped up in a .tar.bz2 file probably.
Then unzip it (tar xvfj <filename>).
Then cd into the directory it created.
Then do a 'make menuconfig'
Then look through the menus till you find network devices. you are looking for the 10/100 PCI network card menu. (it won't be called exactly that).
Then press the space bar on it so that an <M> appears next to it - this means to compile that thing as a module.
Then do "make && make modules && make modules_install && make bzImage && make install"

that should be pretty much it. Alternatively just look for a guide on the web for more info.

The alternative to setting it up using the kernel you are currently running is to download a kernel of your choice from www.kernel.org and install that.
you probably need to know what you are doing to be as successful with that though - because at least your current kernel is a working one (except for network).

good luck :)


All times are GMT -5. The time now is 07:56 AM.