Single Android- ICS


The below tutorial outlines how to run single instance of virtualized Android on TI OMAP4 dual core Cortex-A9 panda board, using the pre-built binaries as well as the sources.

Demonstration details

  • The following demo is for RevC release of panda boards, having OMAP 4430 processors.
  • We will run single instance of virtualized Android kernel over the Codezero hypervisor.
  • Android will boot using the filesystem present on the SD card.
  • Android kernel as well as the filesystem are based on android_4.0.3-r1/ICS AOSP release by Google.

Hardware requirements

  • RevC panda board.
  • 4GB SDHC memory card.
  • HDMI display.
  • USB mouse/keyboard, preferably a wireless USB dongle over which both keyboard and mouse can work together.
  • Serial to USB converter.
  • Mini-USB to USB converter.

Downloading the pre-built binaries

Download binaries from here. It contains the following files

  • MLO – X-Loader
  • u-boot.bin – U-boot
  • Image – ELF file containing Codezero, and Android kernels and ramdisk.img of Android
  • system.img – Android filesystem’s system binary image
  • userdata.img – Android filesystem’s userdata binary image
  • ramdisk.img – Android filesystem’s system ramdisk image

Setting up the demo

Install AOSP tools and configure fastboot device access by following the Installing AOSP host tools and Configuring USB Access sections of the Initializing the Host Environment page.

Format the SD card using

$ sudo ./tools/ /dev/sdX; here `sdX` is the block device corresponding to the SD card.

This will create a FAT partition named boot and an EXT3 partition named rootfs on the SD card.

Eject and re-plug the card on the host.

Copy MLO and u-boot.bin in the boot partition of the SD card.

Eject the card and plug it into the panda board.

Connect the board to the host machine via Mini-USB to USB converter.

Plug the HDMI display and USB keyboard/mouse to the panda board.

Connect the serial port of panda board to the host using serial to usb converter. And attach minicom to the serial converter device to get the panda boot logs and serial console

$ minicom -D /dev/ttyUSBn; here /dev/ttyUSBn is the usb to serial converter device.

Configure Minicom’s serial port for following settings

Baud Rate: 115200n8
Hardware flow control: OFF
Software flow control: OFF

Power on the board with Switch S2 key pressed, making the board go into the fastboot mode.

Flash the kernel and the filesystem on the SD card and boot

$ fastboot oem format
$ fastboot flash xloader MLO
$ fastboot flash bootloader u-boot.bin
$ fastboot erase cache
$ fastboot flash system system.img
$ fastboot flash userdata userdata.img
$ mkbootimg --kernel Image --ramdisk ramdisk.img -o paravirt-boot.img --base 0x80000000 \
  --kernel_addr 0xbe800000
$ fastboot flash boot paravirt-boot.img
$ fastboot reboot

Building from sources

Check the Building from Source for Panda page for instructions on building Codezero and Android kernels from the sources.


Comments are closed.