PDA

View Full Version : sanity check for custom kernel



lgriske
08-26-2003, 04:52 AM
I'm building a custom kernel for a new CD remaster not a HD-Install. I've followed the custom kernel howto (http://www.knoppix.net/docs/index.php/KnoppixCustomKernelHowto), but there's something I'm missing. Here's what I'm doing:

First, I've dl'ed the 2.4.21 vanilla from kernel.org. I skip the xfs patch, but apply the ntfs and openmosix patches.

make clean
make mrproper

copy the Knoppix 3.2 .config to the new kernel dir then

make menuconfig

I enable all openmosix options and leave the rest as is. Save the kernel.

I apply the knoppix-kernel.patch then:

make dep
make modules (read Brothers Karamazov)
make modules_install
make bzImage

So far so good? No errors, no problems. But now some confusion.

The kernel only needs to be put on the boot.img or does it also need to be copied to /boot/vmlinuz on the compressed fs KNOPPIX? What about System.map? Copy it to /boot before you make the KNOPPIX compressed fs? What about the /usr/src/linux/modules, do they need to be copied out?

I put the new kernel in both places to be safe (boot.img and /boot before compressing).

My kernel was larger than the 1.44 MB boot.img could take so I expanded it 2.88MB as follows:

#make the 2.88 img
dd if=/dev/zero of=288boot.img bs=512 count=5760
#loop img
losetup /dev/loop0 288boot.img
#format img
mkfs.vfat /dev/loop0
#make it bootable
syslinux -s /dev/loop0
#mount the bootable img to a boot dir I made
mount -o loop /dev/loop0 boot/
#copy all the files from the original
#boot disk (previously mounted under orig-boot/
cp orig-boot/* boot/
#copy the new kernel
cp bzImage boot/vmlinuz
#unmount the image
umount boot/
#copy the new 2.88 boot.img to the CD fs
cp 288boot.img /mnt/hda1/cdrom/KNOPPIX/boot.img

[I didn't copy a new cloop.o to the miniroot.gz modules/ directory or any scsi modules.]

At last I create a new CD and it refuses to boot at all. SYSLINUX doesn't even start.

I follow the same process as above (more or less) to create a 1.722 boot floppy with the same new kernel and it let's me boot the CD. SYSLINUX loads and finds the KNOPPIX fs, but then I get the following module errors:

kernel-module version mismatch cloop.o was compiled for 2.4.21-xfs while this kernel is 2.4.21-openmosix-1

modprobe error: /lib/modules/2.4.21-openmosix-1/modules.dep does not exist.

Obviously it is getting this kernel version from the openmosix patch, but where do you modify this to read 2.4.21-xfs?

Finally, any ideas as to why the CD won't boot with my 2.88MB boot.img on the CD but will try to boot with the 1.722MB floppy?

Thanks for taking the time to read this novel.

L.G. Riske

garyng
08-26-2003, 06:32 AM
it won't work. The /lib/modules/* is only good for the kernel compiled by Klaus, any customized kernel won't like it, even you cheat and change your kernel tag to '2.4.21-xfs' You must do a full HD install and then the remaster from there(or at least expand the compressed image) and build from there.

It is a myth that one can just replace bzImage(vmlinuz), there is another 30M+ modules that must go hand in hand.

lgriske
08-26-2003, 02:07 PM
Ahhh. thanks gary. I knew it was something obvious.

make modules_install populated /lib/modules (like you say, you can't just take a new bzImage and put it on a CD). But all of the modules installed under /lib/modules/2.4.21-openmosix-1

So if I delete the old modules directory:


rm -rf /lib/modules/2.4.21-xfs

then move my new modules dir to the old name:


mv /lib/modules/2.4.21-openmosix-1 /lib/modules/2.4.21-xfs

I'll try it out and let you know. Now the other problem is why my boot.img isn't being read from the CD...

[edit 9:26] The openmosix-1 reference comes from the kernel Makefile.

EXTRAVERSION = openmosix-1