Hi Robert,

On Thu, Dec 06, 2007 at 08:40:56AM -0500, Robert P. J. Day wrote:
> On Thu, 6 Dec 2007, Wolfgang Wegner wrote:
> 
> i'm not sure if this addresses what you're talking about here, but in
> the kernel source tree, in Documentation/early-userspace/README, you
> can read:

thank you for the additional documentation pointer!

> c) using initramfs.  The call to prepare_namespace() must be skipped.
>    This means that a binary must do all the work.  Said binary can be stored
>    into initramfs either via modifying usr/gen_init_cpio.c or via the new
>    initrd format, an cpio archive.  It must be called "/init".  This binary
>    is responsible to do all the things prepare_namespace() would do.
> 
>    To maintain backwards compatibility, the /init binary will only run if it
>    comes via an initramfs cpio archive.  If this is not the case,
>    init/main.c:init() will run prepare_namespace() to mount the final root
>    and exec one of the predefined init binaries.
> 
> 
> so, if i read that correctly, you can't supply /init via an external,
> filesystem-format initrd.  was that what you were trying to do?  or
> were you simply missing a /init entirely?

I was missing /init entirely.
Now I simply soft-linked /bin/init to /init and it works.

What was confusing is that if I supplied this /init-less initramfs,
the kernel did not complain about a missing /init or something, it just
skipped the initramfs without any comment and did not even mount the
designated root filesystem that would else have been used.

I have a romfs in flash via mtd, that works flawlessly if the kernel is
not configured for initramfs, but when configured for initramfs, the 
filesystem is simply not recognized(?):

VFS: Cannot open root device "mtdblock3" or unknown-block(31,3)
Please append a correct "root=" boot option; here are the available partitions:
1f00      32768 mtdblock0 (driver?)
1f01        512 mtdblock1 (driver?)
1f02       2048 mtdblock2 (driver?)
1f03       2816 mtdblock3 (driver?)
1f04       2816 mtdblock4 (driver?)
1f05      24320 mtdblock5 (driver?)
1f06        256 mtdblock6 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)

I was always looking into the initrd documentation, which does not have much
in common with initramfs, and did not find early-userspace yet...

Also from the now running initramfs system, I can not mount the romfs
file system on /dev/mtdblock3. It seems (but I do not yet know how to
confirm this) that the kernel does not know about romfs any more.

Regards,
Wolfgang

_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to