toltech
03-04-2004, 11:34 AM
L.S.,
I recompiled the kernel, installed it in the knoppix image. I then copied the new kerel and cloop.o into boot.img according to the remastering how-to; On booting I end up with a kernel panic "No init found", this happens after the kernel and miniroot are completely loaded.
The kernel panic appears when linuxrc is supposed to be executed. Further investigation shows that the root FS is loaded in (ro), I am able to drop in ash if I use init=/static/ash (that's how I found out).
This is my conclusion so far: initrd does not load the ramdisk the way it should before the kernel is loaded, therefore, later on, linuxrc is not executed as default. Linuxrc is not (yet) the init proces, the init is executed later as /etc/init after the image is mounted. I don't have an ash compatability problem (the kernel can start it, internal commands like mount work), so my guess is I don't need to recompile it. It looks like I start off with the wrong root filesystem.
This is the procedure I used to recompile the kernel:
dpkg -i kernel-source-2.4.22-xfs_10.00.Custom_all.deb (from Klaus Knopper)
make-kpkg --initrd --revision=custom.1.0 kernel_image modules
dpkg -i kernel-image-2.4.22-xfs_10.00.Custom_i386.deb
here I get the following error:
/usr/sbin/mkinitrd: Cannot determine root device
Failed to create initrd image
After this I remastered boot.img with the new kernel and cloop and used boot.img to boot the system.
(P.s. i also tried "make-kpkg kernel_image" to no avail, I also downloaded the kernel sources, applied the knoppix patch and I invested lots and lots of time, but I end up with the same problem all over)
Does anyone have a clue?
regards,
Robert
I recompiled the kernel, installed it in the knoppix image. I then copied the new kerel and cloop.o into boot.img according to the remastering how-to; On booting I end up with a kernel panic "No init found", this happens after the kernel and miniroot are completely loaded.
The kernel panic appears when linuxrc is supposed to be executed. Further investigation shows that the root FS is loaded in (ro), I am able to drop in ash if I use init=/static/ash (that's how I found out).
This is my conclusion so far: initrd does not load the ramdisk the way it should before the kernel is loaded, therefore, later on, linuxrc is not executed as default. Linuxrc is not (yet) the init proces, the init is executed later as /etc/init after the image is mounted. I don't have an ash compatability problem (the kernel can start it, internal commands like mount work), so my guess is I don't need to recompile it. It looks like I start off with the wrong root filesystem.
This is the procedure I used to recompile the kernel:
dpkg -i kernel-source-2.4.22-xfs_10.00.Custom_all.deb (from Klaus Knopper)
make-kpkg --initrd --revision=custom.1.0 kernel_image modules
dpkg -i kernel-image-2.4.22-xfs_10.00.Custom_i386.deb
here I get the following error:
/usr/sbin/mkinitrd: Cannot determine root device
Failed to create initrd image
After this I remastered boot.img with the new kernel and cloop and used boot.img to boot the system.
(P.s. i also tried "make-kpkg kernel_image" to no avail, I also downloaded the kernel sources, applied the knoppix patch and I invested lots and lots of time, but I end up with the same problem all over)
Does anyone have a clue?
regards,
Robert