Eh, I found the problem(s) :-))

Firstly, I discovered the following message displayed at boot time:

  initrd overwritten (0xf0300000 < 0xf03081a0) - disabling it.

Not very nice, isn't it :-(
It seemed my kernel was too big (1.6MB).

I then removed a few options and rebuilt a smaller kernel.  Now it is 1.4MB
and the message was changed to:

  RAMDISK: Couldn't find valid ramdisk image starting at 0.

I tracked down the problem and found why the ramdisk couldn't be loaded.
It was a big endian problem while attempting to detect the type of the
filesystem which is on the ramdisk.
In fact it is only a 2.0.35 problem.  I checked the 2.1.125 source tree and
found the fix there.

Now I can load an initial ramdisk with SILO :-))

Here is the patch for 2.0 series:

--- kernel-source-2.0.35/drivers/block/rd.c.orig        Tue Jan 19 23:39:58 1999
+++ kernel-source-2.0.35/drivers/block/rd.c     Tue Jan 19 23:40:02 1999
@@ -389,11 +389,11 @@
        }
 
        /* Try ext2 */
-       if (ext2sb->s_magic == EXT2_SUPER_MAGIC) {
+       if (ext2sb->s_magic == swab16(EXT2_SUPER_MAGIC)) {
                printk(KERN_NOTICE
                       "RAMDISK: Ext2 filesystem found at block %d\n",
                       start_block);
-               nblocks = ext2sb->s_blocks_count;
+               nblocks = swab32(ext2sb->s_blocks_count);
                goto done;
        }
        printk(KERN_NOTICE


I ran these tests with the SILO boot loader from my hard disk.  My next
attempt will be to burn a new CDROM to check whether it still works here...

Regards.

-- 
 Eric Delaunay                 | "La guerre justifie l'existence des militaires.
 [EMAIL PROTECTED] | En les supprimant." Henri Jeanson (1900-1970)

Reply via email to