Hi All
I already have this in linux.dev.kernal and alt.os.linux.mandrake, but
I've decided it wont get answered in either one. So here's a repeat:
This all got started with me wanting to use my 3c900 NIC. I put a post
up on comp.os..linux.networking asking where I could get the driver for
it (forgive me, please, I'm just starting) so I could recompile my
kernal (I cam to the conclusion that this was what was nessecery after
reading the ETHERNET HOWTO, and not finding eth0 mantioned in dmesg).
Someone (Michael) told me that I didn't need to download a driver, and
tried to help me recompile my kernal. this all ended with me geting the
message OUT OF MEMORY almost instantly when I tried to boot the new
kernal (due to adding the old kernal as option "old" in lilo, I'm still
writing this from Linux).
Below is an edited =version of our posts (please bear with me, [count to
8]):
1.
When I installed Mandrake 6.0 on my computer, I skipped the installation
of
my network card. Now I want to install it. Windows tells me that it is a
"3Com EtherLink XL COMBO 10Mb Ethernet NIC (3C900-COMBO)". After reading
the
ethernet HOWTO, it seems like I have to recompile my kernel, and add the
NIC
(as a module?). But I noticed that there is not an ethernet module in
the
/lib directory called 3C900, or 3C905. Where can I download this driver
from? I tried the place listed in the HOWTO, but I got a permission
denied
error. Is the 900 the same as the 905?
Thanks in advance,
JW
2.
No need to download a driver (I don't use Mandrake, but that shouldn't
matter). As root goto /usr/src/linux and 'make menuconfig'. Under
'Networking options' select (at least) 'TCP/IP networking'. Under
'Network device support' select 'Ethernet (10 or 100Mbit)', then '3COM
cards' and finally '3c590/3c900 series'. Finish menuconfig.
Read /usr/src/linux/README.
'make dep', 'make zImage', copy /usr/src/linux/System.map and
/usr/src/linux/arch/<probably i386>/boot/zImage to /boot, edit
/etc/lilo.conf, run lilo, reboot and be happy :-)
Michael
3.
Well, I did what you said, except that the 3Com 590-905 series was
already
checked with "M", so I maked it "*" instead, to include it in the
kernal. When
I got to the end of zImage it gave a message similar to the following:
Root device is (22, 1)
Boot sector 512 bytes
Setup is 3544 bytes
System is 582 kB
System is too big. Try using bzImage or modules.
make[1]: *** [zImage] Error 1
make[1]: Leaving directory '/usr/src/linux-2.2.9/arch/i386/boot'
make: *** [zImage] Error 2
So I went through the motions again, maked the 3C series with "M", un*ed
a few
things I knew I didn't need, and recived the above message. This is
very bad,
since I now have LESS marked than origanally. What do I do know? I have
to
reboot this computer to get in to Windows (haven't found a free
replacement for
Adobe PageMaker yet), but I'm scared to reboot now. I'm not going to do
anything
else 'til someone posts back to this.
BTW, what's this bzImage thing? How am I going to get the "system size"
down?
Thanks for the help, keep trying :-)
JW
4.
I just saw a post on another group (comp.os.linux.setup), saying thatQuote:> Michael (or anyone else),
with the
2.2 kernal, You have to use bzImage, because otherwise it really is too
big.
Should I try it?
JW
5.
Michael,
O.K. I used bzImage and it went through with out errors. Now I need a
better
explination of "edit /ect/lilo.conf". Here's what my lilo.conf says
right now
(before editing):
boot = /dev/hda
timeout = 80
prompt
vga = normal
read-only
map=/boot/map
install=/boot/boot.b
image = /boot/vmlinuz-2.2.9-19mdk
label = linux
root = /dev/hdc1
other = /dev/hda1
label = windows
table=/dev/hda
Exactly what do I need to edit?
Thanks in advace,
JW
6.
Jonathon,
so you copied bzImage to /boot. For now I'll assume you gave it the
name "vmlinuz-2.2.12" (doesn't really matter, just substitute whatever
you called it. I'll also assume that you want your new kernel to boot
by default - if not, you should put the changes to /etc/lilo.conf
farther back (see below) in the file. My suggestions will be marked by
a leading "-->", you will of course _not_ copy that :-)
boot = /dev/hda
timeout = 80
-->I'd suggest a value of 300 (30 seconds). But then again maybe you
-->are much faster then I am.
prompt
vga = normal
read-only
map=/boot/map
install=/boot/boot.b
-->image = /boot/vmlinuz-2.2.12
-->label = my_new_kernel
-->root = /dev/hdc1
image = /boot/vmlinuz-2.2.9-19mdk
label = linux
root = /dev/hdc1
-->put the lines "image", "label", "root" _here_ if you want to boot
-->your old kernel by default.
other = /dev/hda1
label = windows
table=/dev/hda
After editing /etc/lilo/conf remember that you must run lilo to make
the changes effective. lilo should produce the following output:
Added my_new_kernel *
Added linux
Added windows
Reboot and hopefully all will be well. If not, enter "linux" at the
"LILO:" - prompt to boot your old kernel and try again.
HTH - mike
7.
Thanks so much. I made the new kernal "linux", and the old kernal "old".
when the new kernal started to boot, alosmt imediately it said OUT of
MEMORY. So I rebooted with "old". I'm glad I didn't lose everything,
but
I want to be able to use a new kernal. What do I do now? It appears,
possibly, that I did not need to make a new kernal, but could have used
insmod. Is that true (i got this idea from the kernal howto)? If so,
should I throw my new kernal away, put everyting back, and try insmod?
What's "too big" about my kernal?
Thanks for all your help,
JW
8.
>Thanks so much. I made the new kernal "linux", and the old kernal
"old".
>when the new kernal started to boot, alosmt imediately it said OUT of
>MEMORY.
kernel is too big.
All praise to LILO :-)Quote:>SO I rebooted with "old". I'm glad I didn't lose everything,
No need to "put everything back", just use the old kernel until youQuote:>but
>I want to be able to use a new kernal. What do I do now? It appears,
>possibly, that I did not need to make a new kernal, but could have used
>insmod. Is that true (i got this idea from the kernal howto)? If so,
>should I throw my new kernal away, put everyting back, and try insmod?
get a bootable new one. I suggest you go through "make menuconfig"
with a fine comb, i.e. throw everything out you don't need (you can
begin adding things later). Configure as module whatever possible
(EXCEPT ext2 filesystem!!!) and under "Loadable module support" enable
"Enable loadable module support" and "Kernel module loader", that
should result in the kernel loading necessary modules automatically.
My current kernel (2.2.12) has a size of 421399 bytes and I didn't
even 'make bzImage', so I guess there is some room for optimizing on
your system.
- mike
To All: thanks for reading this far. What have I done wrong? I'm afraid
to try insmod now, and I'm still runing of the old kernal out of a
folder called "jwbackups". When I did make dep, didn't it change a bunch
of other files around? What about those other files in the /boot folder?
At this piont I want to either delet my "new" kernal, and put the old
one back, or, preferably make another new kernal the "right" way ( I'll
worry about the NIC later). I'm scared to just try a new one with a
"minimal" amount of stuff, becuase there's things in there I've never
heard of before. Also, after reading the kernal readme and howto, I'm
not sure whether
I should make modules and make modules_install bofore or after booting
the new kernal. Would someone who's actualy compiled a new kernal in
Mandrake or RH 6 please volunteer to help me?
Thanks so much, in advance,
JW
posted on linux.dev.kernal and alt.os.linux.mandrake