前回の続き。参考にしているのは以下の資料。
Zedroid - Android (5.0 and later) on Zedboard from Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
www.slideshare.net
今回はAndroidのビルドを行う。
Androidのソースコードダウンロード
まずはAndroidのソースコードをダウンロードして、Googleのrepoコマンドを使用してsyncする。
repo init -u https://github.com/noritsuna/zedroid_manifests -b zedroid-5.0.2_r1 repo sync source ./build/envsetup.sh lunch zedboard-userdebug
makeなのだが、OpenJDKのVersion 7をインストールしないと実行できない。UbuntuでOpenJDKをインストールする。
sudo add-apt-repository ppa:openjdk-r/ppa sudo aptitude update sudo aptitude install openjdk-7-jre sudo update-alternatives --config javac sudo update-alternatives --config java
Javaのバージョンを確認して、OpenJDKになっていればOK。
java -version
ビルドを通すためのリポジトリの変更
ビルド中にいくつか落ちたので(メモを取っておけばよかった)、それを直すためにいくつか修正を加えている。
mv prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8/x86_64-linux/bin/ld prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8/x86_64-linux/bin/ld.origin ln -s /usr/bin/ld.gold prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8/x86_64-linux/bin/ld mv prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld.origin ln -s /usr/bin/ld.gold prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld
さらに、build/core/clang/HOST_x86_common.mk
にも修正を加えた。
--sysroot=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/sysroot \ + -B$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/bin \ -no-integrated-as
これでmakeが通るようになる。といっても、手元のマシンでmakeが終了するのに約1時間かかった。大変な処理だ。
make
これでAndroidのイメージが出来上がる。最後にイメージファイルを作成する。
mkimage -A arm -O linux -T ramdisk -a 0x2000000 -n "Zedboard ramdisk" -d ./out/target/product/zedboard/ramdisk.img uramdisk.image.gz