ブログネタ
Android に参加中!
PandaBoard / PandaBoard ES で android-4.2.1 を動作させる方法。
Android のビルド環境
Ubuntu 12.04 64bit 版での環境構築手順 を使用。

AOSP から Android のソースコードをダウンロード
  • 作業用のフォルダを作成する(場所はホーム直下でなくて良い)
  • $ mkdir ~/panda_work
    $ export PANDA_WORK=~/panda_work
    $ mkdir ~/panda_work/android
    $ export ANDROID_ROOT=~/panda_work/android
  • android-4.2.1_r1 のソースコードを取得する
  • $ cd $ANDROID_ROOT
    $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.1_r1
    $ repo sync
  • Binaries for PandaBoard のダウンロードと展開
  • $ wget https://dl.google.com/dl/android/aosp/imgtec-panda-20120807-c4e99e89.tgz
    $ tar zxvf imgtec-panda-20120807-c4e99e89.tgz
    $ ./extract-imgtec-panda.sh

android-4.2.1_r1 から変更する内容
  • 変更は4つ
  • $ cd $ANDROID_ROOT/build/
    $ wget http://sola-dolphin-1.net/data/Panda/0001-panda-jb4.2_build.patch
    $ git apply 0001-panda-jb4.2_build.patch
    $ cd $ANDROID_ROOT/device/ti/panda/
    $ wget http://sola-dolphin-1.net/data/Panda/0001-panda-jb4.2_device-ti-panda.patch
    $ git apply 0001-panda-jb4.2_device-ti-panda.patch
    $ cd $ANDROID_ROOT/hardware/ti/omap4xxx/
    $ wget http://sola-dolphin-1.net/data/Panda/0001-panda-jb4.2_hardware-ti-omap4xxx.patch
    $ git apply 0001-panda-jb4.2_hardware-ti-omap4xxx.patch
    $ cd $ANDROID_ROOT/hardware/ti/wpan/
    $ wget http://sola-dolphin-1.net/data/Panda/0001-panda-jb4.2_hardware-ti-wpan.patch
    $ git apply 0001-panda-jb4.2_hardware-ti-wpan.patch
  • ビルドして出来たイメージを SD カードに書き込む為のスクリプトを追加
  • $ cd $ANDROID_ROOT
    $ wget http://sola-dolphin-1.net/data/Panda/0001-add-mksdcard_pandaboard.sh.patch
    $ git apply 0001-add-mksdcard_pandaboard.sh.patch

x-loader、u-boot、kernel の作成
  • toolchain のダウンロードと環境変数の設定
  • $ cd $PANDA_WORK
    $ git clone https://android.googlesource.com/platform/prebuilt
    $ export ARCH=arm
    $ export CROSS_COMPILE=$PWD/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
  • x-loader のビルド
  • $ cd $PANDA_WORK
    $ git clone git://git.omapzoom.org/repo/x-loader.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
  • u-boot のビルド
  • $ cd $PANDA_WORK
    $ git clone git://git.omapzoom.org/repo/u-boot.git
    $ cd u-boot
    $ git checkout -b omap4_dev origin/omap4_dev
    ブートパラメータを変更する
    $ wget http://android-development-environment.googlecode.com/files/0001-change-bootarges.patch
    $ git apply 0001-change-bootarges.patch
    u-boot をビルドする
    $ make omap4430panda_config
    $ make
    ※make -j4、make -j8 等で並列化してビルド可能。
    $ cp -a u-boot.bin $ANDROID_ROOT/device/ti/panda/bootloader.bin
  • kernel のビルド
  • $ cd $PANDA_WORK
    $ git clone https://android.googlesource.com/kernel/omap.git kernel
    $ cd kernel
    $ git checkout -b android-omap-panda-3.0 origin/android-omap-panda-3.0
    HM-TL10T/HM-TL7T のタッチパネルを使うための変更。
    $ wget http://sola-dolphin-1.net/data/Panda/0001-panda-jb4.2_kernel.patch
    $ git apply 0001-panda-jb4.2_kernel.patch
    kernel をビルドする
    $ make panda_defconfig
    $ make
    ※make -j4、make -j8 等で並列化してビルド可能。
    $ cp -a arch/arm/boot/zImage $ANDROID_ROOT/device/ti/panda/kernel

Android のビルドから PandaBoard、PandaBoard ES の起動まで
  • Android のビルド
  • $ cd $ANDROID_ROOT
    $ source build/envsetup.sh
    $ lunch full_panda-userdebug
    $ make
    ※make -j4、make -j8 等で並列化してビルド可能。
  • SD カードへイメージの書き込み
  • SD カードは 4GB 以上のものを使用する事。
    $ LANG=C sudo ./mksdcard_pandaboard.sh /dev/sdX $ANDROID_ROOT
    /dev/sdX は SD カードのデバイスファイルを指定する。
  • Android の起動
  • PandaBoard や PandaBoard ES に SD を差して電源を入れれば Android が起動する。
    映像出力は DVI の方から。(HDMIではない)
    HM-TL10T や HM-TL7T を繋げば、タッチパネルでの操作が可能。
    タッチパネルは ICS な PandaBoard でタッチパネル付き液晶(HM-TL10T)を使う を参照。

PandaBoard で Android 4.2.1_r1 が動作してる様子。
device-2012-12-28-062900device-2012-12-28-062932
無線LAN、タッチパネル、音OK。