Booting from SD-card / setting-up a second environment on FR

A.dre A.dre at
Wed Aug 20 21:00:30 CEST 2008

Hello list,

I (first time poster and newly FR enjoy-er) try to boot from SD-card. I 
want to make a second environment in which I can experiment _without_ 
changing the software that the phone ships with. That is, without making 
all to big changes to the original software on the phone.

I followed the instructions 'Boot_from_sd_card' on the wiki [1]. I used:
- uImage-2.6.24+git20080507-r0-om-gta02.bin
==> Result: kernel panic - not syncing: VFS: Unable to mount root fs on 

Than I downloaded "Openmoko-Freerunner-20080424-om-gta02.rootfs.jffs2" 
and "uImage-2.6.24+git20080424-om-gta02.bin" (exactly the same files 
installed on the phone I believe) in order to write/copy these to 
SD-card. However, I don't know how to write/copy the jffs2 file to 
SD-card. (I cannot find the same file in 'tar.gz' format.)

As I understand the filetype jffs2 is an image comparable with a 
iso-image of a cd [2]. I learned that it is possible to mount it as a
'loopback' device in order to read from the .jffs2 [3]. I also learned 
that the 'dd'-command (see[4]) can be used to create a .jffs2.

==>While learning all this, a totally different approach crossed my mind:

Would it be possible to duplicate (with the use of dd) the standard 
environment (the FR ships with) to SD-card (in order to create a second 

Would it be possible to duplicate (with the use of dd) any environment 
(on the FR) for back-up purposes (and put it back when necessary)?

Would it be helpful when such a method is described on the wiki?

How would the command look like? I was guessing:
- dd if=/dev/mtdblock2 of=/dev/mmcblk0p1 (assuming see[5] _/proc/mtd 
mtd2_(kernel) maps to /dev/mtdblock2)
- dd if=/dev/mtdblock4 of=/dev/mmcblk0p2 (assuming see[5] _/proc/mtd 
mtd4_(rootfs) maps to /dev/mtdblock4)
Because the source(blocksize??) and destination(partition sixe??) will 
differ in size, the commands above probably need extra parameters. (If 
this method works at all: Probably I'm totally wrong.)

At the moment I'm most interested in answers to the questions above. 
However, tips / help with the 'kernel panic' is also much appreciated. 
(To be clear: The FR still boots, but not from SD-card!)
Issues I checked are:
- Kernel and filesystem 'fit' together.
- File system:
  root at om-gta02:~# cat /etc/mtab | grep mmcblk0
  /dev/mmcblk0p1 /mnt/mokokernel vfat 
rw,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1 0 0
  /dev/mmcblk0p2 /mnt/moko ext2 rw 0 0
- u-boot environment:
  me at hostcomputer: # command below 'stolen' from
  me at hostcomputer: sudo ./dfu-util -a u-boot_env -R -U
  me at hostcomputer: cat
  menu_1=Boot from microSD (FAT+ext2): setenv bootargs ${bootargs_base} root
  fstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 ${mtdparts} ro; mmcinit; 
fatload m
  mc 1 0x32000000 ${sd_image_name}; bootm 0x32000000


[4] dd if=/dev/mtdblock0 of=<rootfs.jffs2> (for explanation see[3])

More information about the community mailing list