Building android-4.2.2 JellyBean on Pandaboard/Pandaboard ES

Google maintainers advise to always repo sync the master branch for panda claiming it’s the most stable , but in my opinion they should focus on stabilizing tags. Tags should represent a stable snapshot of he source tree to build and run . That’s what a tag means in Software Engineering anyway !

This post is a translated version of the Japanese post on reposted under permission of the main author  that describes how to build Android JB tag android-4.2.2_r1 for pandaboard, of course some patching is required to get it work, you can download all the patches required from this mirror or follow the steps to get them one by one from the main mirror.


– prepare the directory

$ mkdir ~/panda_work
$ export PANDA_WORK=~/panda_work
$ mkdir ~/panda_work/android
$ export ANDROID_ROOT=~/panda_work/android

– init the repo

$ repo init -u -b android-4.2.2_r1
$ repo sync


  1. to save time you can use an old tree and repo init inside it’s dir , then sync will grab only the differences
  2. in case repo sync hangs use repo sync -j1 to disable multi threading also check repo sync -h for other options

– get the gpu user space binaries

$ wget
$ tar zxvf imgtec-panda-20120807-c4e99e89.tgz
$ ./

– apply the patches

$ cd $ANDROID_ROOT/build/
$ wget
$ git apply 0001-panda-jb4.2_build.patch
$ cd $ANDROID_ROOT/device/ti/panda/
$ wget
$ git apply 0001-panda-jb4.2_device-ti-panda.patch
$ cd $ANDROID_ROOT/hardware/ti/omap4xxx/
$ wget
$ git apply 0001-panda-jb4.2_hardware-ti-omap4xxx.patch
$ cd $ANDROID_ROOT/hardware/ti/wpan/
$ wget
$ git apply 0001-panda-jb4.2_hardware-ti-wpan.patch

– you can either use fastboot to format and flash the images or use this script instead

$ wget
$ git apply

– build the tree

$ source build/
$ lunch full_panda-userdebug
$ make -j4

– format and flash from a ubuntu machine, /dev/sdx is the the sdcard device

$ LANG=C sudo ./ /dev/sdX $ANDROID_ROOT


– prepare the environment

$ export ARCH=arm
$ export CROSS_COMPILE=$ANDROID_ROOT/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-

– clone the repo

$ git clone kernel
$ cd kernel
$ git checkout -b android-omap-panda-3.0 origin/android-omap-panda-3.0

– build with panda config

$ make panda_defconfig
$ make
$ cp -a arch/arm/boot/zImage $ANDROID_ROOT/device/ti/panda/kernel

note: though bootloader and xloader images are provided within device/ti/panda dir , you can build them from source using the following instructions


– build xloader

$ git clone git://
$ cd x-loader
$ git checkout -b omap4_dev origin/omap4_dev
$ make omap4430panda_config
$ make ift
$ cp -a MLO $ANDROID_ROOT/device/ti/panda/xloader.bin


– clone the repo

$ git clone git://
$ cd u-boot
$ git checkout -b omap4_dev origin/omap4_dev

– change the boot parameters

$ wget
$ git apply 0001-change-bootarges.patch

– build

$ make omap4430panda_config
$ make
$ cp -a u-boot.bin $ANDROID_ROOT/device/ti/panda/bootloader.bin