Userspace root image
Creating a root filesystem from scratch
To create a root file system image for storage in NAND flash, we use the mkfs.jffs2 program contained int the Debian package mtd-tools.
mkfs.jffs2 --pad=0x700000 -o rootfs.jffs2 -e 0x4000 -n -d/tmp/jffsroot/
is a typical command. It creates a FS image for our erase block size of 16k, padded to 0x700000 bytes in length from the files contained in the /tmp/jffsroot directory and stores the FS image in rootfs.jffs2.
Using pre-created root fs image
OpenEmbedded will itself create a jffs2 image at the end of the build process.
Once the build server is running, it will create root filesystem images for us.
demo JFFS2 root image
At the moment there is a very basic root fs image available from http://people.gta01.hmw-consulting.de/laforge/
Please note that this image will take ages to boot the first time, since this boot finishes the installation process.
Flashing a root filesystem into NAND
The image can then be installed on the target device via the u-boot bootloader, e.g.
QT2410 # tftpboot 0x32000000 rootfs.jffs2 QT2410 # nand erase 0x634000 0x39cc000 QT2410 # nand write 0x32000000 0x634000 0x700000
And then booted (in this example with a kernel downloaded via tftp/ethernet) by
QT2410 # setenv bootargs root=/dev/mtdblock4 rootfstype=jffs2 console=ttySAC0,115200 loglevel=8 QT2410 # tftpboot 0x32000000 kernel.img QT2410 # bootm 0x32000000