Android Installation

we created an experimental linaro-android-media-create (lamc) to burn our platform images to SDcards for now that you are supposed to use with the artifacts that come out of our build service (https://android-build.linaro.org/)

Reference Development Boards

Currently, Android team works on the following development boards:

  • Beagleboard
  • Beagleboard-xM
  • Pandaboard

Installation to MMC

We only consider to install Android artifacts and everything to MMC card.

MMC Partition layout

Refer to refer to https://bugs.launchpad.net/linaro-image-tools/+bug/724207

boot (vfat) - 128M - not mounted
system (ext4) - 256M - mounted /system
cache (ext4) - 256M - mounted /cache
userdata (ext4) - 512M - mounted /data
sdcard (vfat) - rest of size - mounted as /sdcard

Easy to install Tool

  • linaro-media-create devira for this is considered and expected.
  • Do the partition
  • Untar the userspace tarballs from https://android-build.linaro.org/ to mmc card partitions.

  • Generate accordingly boot script, boot.scr

boot tarball contents

  • MLO
  • u-boot.bin
  • uImage (kernel)
  • uInitrd (ramdisk image)
  • cmdline (extra android kernel cmdline)

Deployment steps

Please use the experimental linaro-android-media-create from linaro-image-tools to partition the MMC card and write into the content.

  • Use lp:~jeremychang/linaro-image-tools/android-boottarball for l-a-m-c latest development and boot tarball support before being merged.

Take beagle as example as below:

linaro-android-media-create --dev panda --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2 --mmc /dev/sdb

Appendix

  • Apply Android patch

This patch is needed for init to mount MMC partitions

   1 diff --git a/init/builtins.c b/init/builtins.c
   2 index e0ccf9f..32d9d7f 100644
   3 --- a/init/builtins.c
   4 +++ b/init/builtins.c
   5 @@ -356,6 +356,16 @@ int do_mount(int nargs, char **args)
   6          close(fd);
   7          ERROR("out of loopback devices");
   8          return -1;
   9 +    } else if (!strncmp(source, "mmc@blk", 7)) {
  10 +        sprintf(tmp, "/dev/block/mmcblk%s", source + 7);
  11 +
  12 +        if (wait)
  13 +            wait_for_file(tmp, COMMAND_RETRY_TIMEOUT);
  14 +        if (mount(tmp, target, system, flags, options) < 0) {
  15 +            return -1;
  16 +        }
  17 +
  18 +        return 0;
  19      } else {
  20          if (wait)
  21              wait_for_file(source, COMMAND_RETRY_TIMEOUT);
  • Add mmc mount commands in init.rc script, as

# mount mmc partitions
    mount ext4 mmc@blk0p2 /system
    mount ext4 mmc@blk0p2 /system ro remount
    mount ext4 mmc@blk0p3 /cache
    mount ext4 mmc@blk0p5 /data    
  • vold.fstab

dev_mount sdcard /mnt/sdcard 6 /devices/platform/mmci-omap-hs.0/mmc_host/mmc0
  • kernel and u-boot

kernel should enable EXT4 and make sure the mmcrootfstype variable in u-boot is not defined as any others.


CategoryHowTo

internal/archive/Platform/Android/DevBoards (last modified 2013-08-29 07:20:34)