BBB Androidソースコードからビルド

提供: KiyomiWiki
移動: 案内検索

BeagleBoneBlack用に、Android JBのソースコードからビルドする環境構築のメモを残します。linuxは、Ubuntu 12.04 LTSにインストールしました。HDDの容量は、100GB以上確保しましょう。

開発ツールのインストール

$ sudo apt-get install git-core gnupg flex bison gperf build-essential 
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 
libreadline6-dev:i386  libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib 
mingw32 openjdk-6-jdk tofrodos python-markdown libxml2-utils xsltproc 
zlib1g-dev:i386 minicom tftpd uboot-mkimage expect libgl1-mesa-dri 
libgl1-mesa-dri:i386 libglapi-mesa:i386 libncurses5-dev vim

$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

install Oracle JDK 6

  • Download the latest JDK 6 installer
from Oracle http://www.oracle.com/technetwork/java/javase/downloads/index.html.
Accept the license agreement and click on the Linux x64 bin installer.
The downloaded file will be named jdk-6uXX-linux-x64.bin where XX is the JDK 6 update version.
  • Follow the following steps to install JDK 6
$ chmod a+x jdk-6uXX-linux-x64.bin
$ ./jdk-6uXX-linux-x64.bin
$ sudo mkdir -p /usr/lib/jvm
$ sudo mv jdk1.6.0_45 /usr/lib/jvm/
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/bin/java 1
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 1
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac

ソースコードの取得

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/repo
$ chmod a+x repo
$ sudo mv repo /usr/bin/.
$ mkdir android-BBB
$ cd android-BBB
$ repo init -u git://gitorious.org/rowboat/manifest.git -m rowboat-jb-am335x.xml
$ repo sync

ソースコードのビルド

  • ツールチェインhdのパス設定
$ export PATH=$HOME/android-BBB/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$PATH
  • ブートローダのビルド
$ cd $HOME/android-BBB/u-boot
$ make CROSS_COMPILE=arm-eabi- distclean
$ make CROSS_COMPILE=arm-eabi- am335x_evm_config
$ make CROSS_COMPILE=arm-eabi-
  • Linux Kernelのビルド
$ cd $HOME/android-BBB/kernel
$ make ARCH=arm CROSS_COMPILE=arm-eabi- distclean
$ make ARCH=arm CROSS_COMPILE=arm-eabi- am335x_evm_android_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-eabi- uImage

$ mkdir $HOME/android-BBB/device/ti/beagleboneblack/firmware
$ cp /lib/firmware/rtlwifi/rtl8192cufw.bin ../device/ti/beagleboneblack/firmware/.
$ cp /lib/firmware/rtlwifi/rt2870.bin ../device/ti/beagleboneblack/firmware/.
  • ユーザーランドのビルド
$ cd $HOME/android-BBB
$ make TARGET_PRODUCT=beagleboneblack droid -j8
  • SGXのドライバ、ライブラリのビルド
$ cd $HOME/android-BBB/hardware/ti/sgx
$ make TARGET_PRODUCT=beagleboneblack OMAPES=4.x ANDROID_ROOT_DIR=$HOME/android-BBB
$ make TARGET_PRODUCT=beagleboneblack OMAPES=4.x ANDROID_ROOT_DIR=$HOME/android-BBB install
  • ユーザーランドのパッケージ化
$ cd $HOME/android-BBB
$ make TARGET_PRODUCT=beagleboneblack fs_tarball
  • microSDにコピー
$ mkdir $HOME/image
$ cd $HOME/image
$ cp $HOME/android-BBB/kernel/arch/arm/boot/uImage .
$ cp $HOME/android-BBB/u-boot/MLO .
$ cp $HOME/android-BBB/u-boot/u-boot.img .
$ cp $HOME/android-BBB/external/ti_android_utilities/am335x/u-boot-env/uEnv_beagleboneblack.txt .
$ cp $HOME/android-BBB/out/target/product/beagleboneblack/rootfs.tar.bz2 .
$ cp $HOME/android-BBB/external/ti_android_utilities/am335x/mk-mmc/mkmmc-android.sh .
$ sudo ./mkmmc-android.sh /dev/sdd MLO u-boot.img uImage uEnv_beagleboneblack.txt rootfs.tar.bz2