前回でハードウェアの準備が整ったので、今度はAndroidカーネルを準備している。別PC使っているので、裏でひたすらビルドしている感覚なのだが。
ビルド中に止ったりする事もあるが(特にx86版が)、エラーメッセージでググれば答えが出てくるので、あまり苦労は無い気がする。まあビルドに時間がかかるのは、なんとかしたいところ。
ビルド用PCを準備
VMWare Fusion & Ubuntu 8.10を使っていたのだが、ビルドに時間はかかるし、長時間のビルドによるCPU負荷 & HDDアクセスがヒドいし、パームレストが熱くなったりで、様々な弊害が出てくる事が判明したので、別PCにUbuntu 8.10(x86版)をインストールしてビルドさせる事にした。
Ubuntu 8.10にしたのは、これが一番開発環境が安定している & 使いなれているから。UbuntuはGoogleでもよく使われているし。贅沢を言えば分散コンパイル環境ならもっと時間を短縮できるのだろうが、今はカーネルを動作させるのが先決なので、あとまわし。
Build Tips
- make -j2とジョブ数を指定しない
通常、マルチコアを生かすために、make -j2とジョブ数を指定して効率よくビルドする事がよくあるのだが、Androidの場合、-j2を指定する事で ビルドが途中で止まる事がよくあった。基本ほったらかしでビルドしたいのでジョブ指定はしない事にした。
参考サイト
これらのサイトを参考に構築中。シリアル接続コネクタがまだ手元にないので、Beagle Boardでの動作検証が済んでない。
BeagleBoard
- Android Porting Guide to Beagle Board - Labs.embinux.org wiki
- Cerevo tech blog - Beagle Board用 ツールチェインとAndroidの起動のおまけ
BeagleBoardのソース取得先はGoogle Codeでは無い事に注意!
x86(VMWare等)
- 2008-12-30 - Android Zaurusはてな館
- x86 AndroidのUSBブートイメージを作成 - Foolishな日々
- 第1回 話題の携帯向けOS「Android」をx86パソコンで動かしてみよう:ITpro
などを参考に。実はx86版もまだ動いていなかったりする。