1.For Ubuntu on 32-bit machines
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
$ sudo apt-get update
$ sudo apt-get install git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev minicom tftpd uboot-mkimage expect
$ sudo update-java-alternatives -s java-6-sun
NOTE: Android Gingerbread (2.3) needs Java 6 on ubuntu, whereas the previous version FroYo (2.2) was using Java 5.
$sudo update-alternatives --config java(查看并更换java版本信息)
2.下载android源码包
$ mkdir rowboat-android
$ cd rowboat-android
$ Download the pre-packaged repo from http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_GingerBread_2_3_DevKit_1_0/index_FDS.html
$ tar -xvzf TI_Android_GingerBread_2_3_Sources.tar.gz
$ cd TI_Android_GingerBread_2_3_Sources
$ ./.repo/repo/repo sync --local-only
3.建交叉编译环境
TI_Android_GingerBread_2_3_Sources/$ export PATH=~/rowboat-android/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin:$PATH
4.To build x-loader
$ cd x-load-omap3
$ make CROSS_COMPILE=arm-eabi- distclean
$ make CROSS_COMPILE=arm-eabi- omap3beagle_config
$ make CROSS_COMPILE=arm-eabi-
To create the MLO file used for booting from a MMC/SD card, sign the x-loader image using the signGP tool found in the Tools/signGP directory of the Devkit.
$ ./signGP ./x-load.bin
$ mv x-load.bin.ift MLO
5.To build boot loader (u-boot)
$ cd u-boot-omap3
$ make CROSS_COMPILE=arm-eabi- distclean
$ make CROSS_COMPILE=arm-eabi- omap3_beagle_config
$ make CROSS_COMPILE=arm-eabi-
NOTE: Copy the "mkimage" from "Tools" folder to ~/usr/bin folder on your host machine, this is needed for kernel uImage generation$ sudo cp mc/Tools/mk-bootscr/mkimage /usr/bin
6.To build kernel
$ cd kernel
$ make ARCH=arm CROSS_COMPILE=arm-eabi- distclean
$ make ARCH=arm CROSS_COMPILE=arm-eabi- omap3_beagle_android_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-eabi- uImage
This will generate uImage (kernel image) in kernel/arch/arm/boot folder
7.To build Android filesystem
$ make TARGET_PRODUCT=beagle OMAPES=5.x -j4
$ cd out/target/product/omap3evm
$ mkdir android_rootfs
$ cp -r root/* android_rootfs
$ cp -r system android_rootfs
$ sudo ../../../../build/tools/mktarball.sh ../../../host/linux-x86/bin/fs_get_stats android_rootfs . rootfs rootfs.tar.bz2
8.To generate SD/MMC card to boot Android
$ ./mkbootscr
$ mkdir image_folder
$ cp kernel/arch/arm/boot/uImage image_folder
$ cp u-boot-omap3/u-boot.bin image_folder
$ cp x-loader-omap3/MLO image_folder
$ cp Tools/mk-bootscr/boot.scr image_folder
$ cp out/target/product/omap3beagle/rootfs.tar.bz2 image_folder
$ cp media_clips image_folder
$ cp Tools/mk-mmc/mkmmc-android.sh image_folder
$ ./mkmmc-android.sh /dev/sdb MLO u-boot.bin uImage boot.scr rootfs.tar.bz2 Media_Clips