loading the kernel and root FS separately from flash?

Robert P. J. Day rpjday at mindspring.com
Mon Jun 28 20:13:18 EST 2004


(sorry, i realize that this isn't directly related to PPC issues.)

as a first followup question, now that i've just created a 4M
partition on an 8M flash chip, and formatted it as JFFS2, if i put a
copy of the root FS on that filesystem, i can of course boot and use
that as my root filesystem.  but, at the moment, since i'm booting
with what is essentially a zImage.initrd, the kernel is first loaded,
and then the uncompressed root filesystem is copied into RAM of
course.

i suspect that leaving my root filesystem in flash would cause
noticeable performance problems (even if i managed to structure it so
that it could be read-only).  how hard would it be to automatically
have that root FS copied from JFFS2 to RAM and mounted from there?
can that be done as a kernel option i haven't seen?  or do i have to
do that manually, involving something like "pivot_root"?  or is it
worth the trouble?

On Mon, 28 Jun 2004, Wolfgang Denk wrote:

> In message <Pine.LNX.4.60.0406271836300.10210 at localhost.localdomain> you wrote:
>>
>>    with this configuration, it's obviously not possible to update files
>> or directories in the bootable image individually -- it's just one big
>> zImage.initrd image.
>
> What makes you think that this is not  possible?  If  there  is  (for
> example)  a  writable JFFS2 partition available, you can use this for
> an overlay filesystem to store the updates.
>
> See for example the "mini_fo" overlay filesystem on  our  FTP  server
> and the paper about it:
> http://www.denx.de/PDF/Diplomarbeit-MK-1.0-net.pdf

ah, now this looks interesting.  from a quick glance, is this just a
theoretical concept, or has it been implemented?  we have *some* JFFS2
space available, but not a guaranteed amount.  if this requires a
completely separate JFFS2 partition, we might not be able to handle
that.

>>    but is it feasible to redefine the layout of that flash chip and
>> take, say, 4M of it and create a JFFS2 filesystem, then put the root
>> filesystem in there uncompressed?  (assuming, of course, that the
>
> Standard JFFS2 code will always compress.

sorry, i'm not sure what you're saying here.  are you saying that i
can create a compressed JFFS2 image of my root filesystem on my build
host, just as i do when i create my zImage.initrd?  or just compress
the individual files in the filesystem?  and have this filesystem
automatically loaded into, and mounted from, RAM?  can you clarify
this?

> This is a pretty standard setup. Although I don't really recommend to
> use JFFS2 for root filesystem (for example, because with a  big  root
> filesystem  the boot time may deteriorate).

that was one of my concerns -- not just the boot time but the run
time, even if i could structure it as read-only.

> Instead, we usually split the stuff in a read-only partition (for
> example cramfs), a volatile part (tmpfs), and a persistent storage
> partition (JFFS2).

that's awfully close to what we're doing now.  we've got the tmpfs, we
have a completely separate flash for persistent apps and data, it's
just the root filesystem that i would *dearly* love to be able to
patch on the fly on a running system.  i'll look a lot more closely
into the above.  thanks.

rday

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list