Clarifications of downloadable file types

Al Johnson openmoko at
Thu Jul 10 21:34:17 CEST 2008

On Thursday 10 July 2008, Randy Schnedler wrote:
> Hi all. I am an experienced developer, though not so much with Linux
> development. As I await the arrival of my FR, I have tried to prepare some
> different things I want to try.

What sort of background? It might help someone else give better explanations 
if I've pitched this wrong.

> First, I admire and appreciate that a lot of work is represented in
> openmoko... Both by the company people and contributors around the world.
> Things appear to be a bit of a mess right now with multiple frameworks
> (none of which is complete, it seems), and a wiki that has so much good
> information but seems to be missing a lot of the "middle ground" between
> Welcome and here's how to develop for openmoko. Thanks to all those who
> have recently tried to fill that gap (Uncrippling Your Device, making sense
> of the distributions, etc.).
> Would someone please clarify the meanings of the file types that can be
> downloaded? This is what I have gathered so far:
> *.jffs2 - the root filesystem that goes with a release
> *.tar.gz - I know what a tarball is, but when the same filename exists with
> both a jffs2 and a tar.gz extension, do they contain the same thing? Why?
> Is the tar used with an emulator? Would I ever need it for the real device?

This is like the difference between an ISO image of a CD and a zip file 
containing the files and directories on the CD. The .jffs2 is ready to be 
copied into the internal flash, while the tar.gz is to be extracted onto a 
formatted partition on the microSD card.

> uImage*.bin - kernel
> What is considered the "image"? It seems to me that it is the jffs2, not
> the kernel. However, the kernel files have the word "image", so I am either
> wrong or very confused.

I can see why you find it confusing ;-) 'image' is being used as a generic 
description of a snapshot of a chunk of binary data. A kernel image is the 
blob of binary data that the bootloader will copy into memory and set 
running. A filesystem image is a copy of the raw data contained on a storage 
device, including all the filesystem structures. Normally the wouldn't 
be thought of as an image, but it's simpler to keep the same filename with 
the .tar.gz.and .jffs2 extensions.

> Lastly, does each image have a corresponding kernel so flashing to a new
> distribution would always require flashing the kernel as well? If not, how
> can I know when flashing the kernel is also required?

The simple answer is yes. If you are using the daily builds from there is a subdirectory for 
each day, and each one should have a kernel uImage that matches that day's 
root filesystem builds. This is so that the modular device drivers match the 

If you start building your own images with, say, mokomakefile, you will notice 
that the kernel doesn't get rebuilt every time you make a new image. It will 
only be rebuilt if there is  an updated version of the kernel, so several 
filesystem images may use the same kernel.You have to match those up by 
looking at the datestamps on the files if you're not using the most recent 

> Is this information on the wiki somewhere and I just missed it?

People usually have a fair bit of linux experience before they start playing 
with things at this level, so I suspect nobody thought about it. If we're 
starting to attract people without this grounding then perhaps we should 
include links to some of the introductions to linux for users of other 

More information about the community mailing list