Some boards have more options for a root file system than just the SD card. Snowball has an eMMC device and iMX53 has SATA for example.

= Use eMMC as root file system on Snowball = By default, Snowball android builds configure the file system table to mount system, userdata and boot from the µSD card. To use eMMC instead, you need to:

  • Edit init.rc to mount from eMMC

tar xjf boot.tar.gz
mkdir unpacked && cd unpacked
dd if=../boot/uInitrd bs=64 skip=1 | gunzip -c | sudo cpio -i -d -H newc --no-absolute-filenames
sudo vi init.rc
sudo find . | sudo cpio -o -H newc | gzip -c > ../
mkimage -A arm -O linux -C gzip -T ramdisk -d ../ ../boot/uInitrd
rm ../
cd ..
rm boot.tar.bz2 && tar cjf boot.tar.bz2 boot
  • Generate a flashable image using linaro-android-media-create

linaro-android-media-create --image_file leb-snowball-emmc.img --dev snowball_emmc --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2
  • Flash with riff

riff -f leb-snowball-emmc.img
  • Check the u-boot config and confirm that the uImage and uInitrd are being loaded from mmc 0.


If you don't know what the partitioning scheme should be, generate an image with linaro-android-media-create and then use fdisk to print the image partition table. You can use this to determine what init.rc should contain, e.g.

$ fdisk leb-snowball-emmc.img
You must set cylinders.
You can do this from the extra functions menu.

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk leb-snowball-emmc.img: 0 MB, 0 bytes
128 heads, 32 sectors/track, 0 cylinders
Units = cylinders of 4096 * 512 = 2097152 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

                  Device Boot      Start         End      Blocks   Id  System
leb-snowball-emmc.img1               1           2        3968   da  Non-FS data
leb-snowball-emmc.img2   *           3          66      131072    c  W95 FAT32 (LBA)
leb-snowball-emmc.img3              67         194      262144   83  Linux
leb-snowball-emmc.img4             195        1024     1699840    5  Extended
leb-snowball-emmc.img5             195         322      262128   83  Linux
leb-snowball-emmc.img6             323         578      524272   83  Linux
leb-snowball-emmc.img7             579        1024      913392   83  Linux

Command (m for help): q


# mount mmc partitions
    mount ext4 /dev/block/mmcblk0p3 /system ro
    mount ext4 /dev/block/mmcblk0p5 /cache
    mount ext4 /dev/block/mmcblk0p6 /data


Platform/Android/ChangeRootDevice (last modified 2013-08-29 07:13:06)