[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Kernel compile blues



I'm using debian woody. Been compiling kernels since quite many years on
Slack, RH and Mandrake. It's very few times I have completely been
successful booting with the compiled kernel in debian (Have used sarge
too).

Past few days I have been sitting just compiling and re-compiling various
kernels, all except 2.4.18 have failed to boot. Some don't compile and
give errors, others mostly have a problem with initrd image anf get stuck
saying
VFS: Cannot open root device "" or 03:06
Kernel panic: VFS: Unable to mount root fs on 03:06


I've compiled morre than four 2.4.x kernels, one 2.6.0 and three 2.2.x
kernels, some with and without patches too, these last few days I've been
compiling. I'm not concluding anything but really wondering how people
really compile.

I do not know C or C++. I'm no programmer. Most of the time compiling
fails due to some error in some .c file which I cannot know how to do. At
other times, it's something else like modules. Yes, I've been able to do
monolithic kernels and able to boot without problems with them I would
say. But the modular ones, hardly 2 - 3 times.


I'll list the steps I use for compiling (what am I missing?)

1. Download kernel source from kernel.org or it's mirrors or apt-get it
from debian mirrors if apt-cache search shows the one I need.

2. Go to /usr/src/kernel-version after untaring the source.

3. If downloaded any patches, copy them in to this dir.

4. make menuconfig (If this is a re-compile of the same kernel I'm
currently using, then copy the it's .config to this dir)

5. make dep clean bzImage modules 2>&1 | tee make.log

6. Check make.log for errors.

7. If all ok, run make modules_install (Sometimes all is ok till step 6
but this one fails)

8.  If all ok, copy arch/i386/boot/bzImage to /boot/vmlinuz-2.x.x

9. Copy System.map to /boot/System.map-2.x.x

11. Make an initrd image: mkinitrd -r /dev/hdax -o initrd-2.x.x.img
/lib/modules/2.x.x

12. Copy this initrd image to /boot

13. Make changes to lilo and run /sbin/lilo or as in my case, make changes
to /boot/boot/grub/menu.lst

14. Reboot in to this new kernel

15. If able to boot in this kernel ok, then apply the patches and again
re-compile.


There's only one time I was successful in making initrd work in 2.4.18, in
others I just could not. What am I doing wrong? I'm nearly tired of
compiling but I can't do without linux and I have read the howtos and
other docs many times. Wierd for me.



--
----------------------------------------
Can someone, who causes pain to others,
experience real joy?
----------------------------------------



Reply to: