2011年12月7日水曜日

pandaboardでAndroid ICS(Androidビルド編)

Android 4.0 (通称ICS : Ice cream sandwich)が公開され、pandaboardで普通に動くということで挑戦してみましょう。

今回はUbuntu 10.04で、Android本体のビルドを環境の構築から載せておきます。
なお、64bit版(ubuntu-10.04.3-desktop-amd64.isoをインストールしました)が推奨です。32bit版や最新のUbuntu11.10だとこの通りには行きませんのでご注意。
(※Ubuntu11.10でやろうとするとマジで苦労する←実体験より)

環境構築
こちらの公式サイトに載っている手順です。※Androidのアップデートと共にこちらの内容もアップデートされているようで、その都度確認しておいた方がよさそうです。

まずはパッケージのインストールです。
端末を開きまして
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils

続いてJDKのインストールも手順の通り
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
でOKです。

続いてはAndroidのソースツリーを落とすためのツールであるrepoのインストールです。
参考はこちら
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
これでrepoが利用可能になります。
ちなみにこれは、repoにパスを通す一時的な処置ですが、Ubuntuでは"~/.profile"に"~/bin"が存在するならば"~/bin"にパスを通すという記述がありますので、次回ログイン時にはコマンドラインから再度パスを通すという手順は必要ありません。

Androidのソースツリーダウンロードとビルド

ソースツリーのダウンロード先のディレクトリを作成しておきます。(ここでは~/work/androidとしましたが、任意でかまいません)
$ mkdir -p ~/work/android

ソースツリーのダウンロードですが、今回はmasterブランチから取得します。
(android -4.0.1_r1というブランチがあるのですが、ビルドできても起動しませんでした。ソースツリーの内容は日々更新されているようですので、安定してくればandroid-4.0.1_r1のブランチを利用する方が良いかもしれません。)
$ cd ~/work/android
$ repo init -u https://android.googlesource.com/platform/manifest
(名前とメールアドレスを聞かれるので適切に入力しておきましょう。一応、"本名"と"自分のメールアドレス"を入力する決まりになっているようです。)
$ repo sync
これでソースツリーのダウンロードが始まります。サイズは8GBぐらいで、回線にもよりますが、大体1~2時間はかかると思います。

もう一つ、pandaboard用のプロプライエタリなライブラリを別途ダウンロードして展開しておく必要があります。
$ cd ~/work/android
$ wget https://dl.google.com/dl/android/aosp/imgtec-panda-itl41d-dfebf249.tgz
$ tar xvzf imgtec-panda-itl41d-dfebf249.tgz
$ ./extract-imgtec-panda.sh
(ライセンスを読むためにEnterを入力し、スペースキーでスクロールし、最後に"I ACCEPT"と入力してEnter)
これでandroidのソースツリーの下の適切な位置に追加ファイルが展開されます。

いよいよビルドですが、下記のコマンドを叩きます。
$ cd ~/work/android
$ source build/envsetup.sh
$ lunch full_panda-eng
$ make -j4
(※-jの数字はコア数(マルチスレッド実行数)です。マルチコアなプロセッサであれば数字を大きくすることでビルドが並列に走り、高速に終わるかもしれません)
早いマシンであれば大体30分~1時間程度で完了すると思います。(4コア4GBメモリのVMware仮想マシンでビルドを仕掛け、昼飯を食べて1時間30後に帰ってきたらビルド終わってました。)
逆に言うと、シングルコアであったりメモリが少ない(2GB以上は欲しいところ)場合には、相当な時間がかかります。

これでout/target/product/panda/ディレクトリ以下にrootとsystemが作成されます。

本日はここまで。続きはまた今度

0 件のコメント:

コメントを投稿