Android用にカーネルビルド
おとなしくLinux(Fedora 9) on Parallelsで。
やり方は http://honeypod.blogspot.com/2007/12/compile-android-kernel-from-source.html と全く同じ。
CodeSourceryからGNU/Linux用の IA32 GNU/Linux Installerをダウンロード。バージョンは2008q1-126を使いました。
rootになって
# sh arm-2008q1-126-arm-none-linux-gnueabi.bin
とかやればインストールできます。IDE使わないのでtarを落とせばわざわざJavaなGUIでインストールすることもなく手っ取り早かった気もする。
/opt/CodeSoucery/〜 にインストール。インストールしたディレクトリ内のbinにもPATHも通しておきます。
あとは上記URLにある手順通りに実行すればOK。
なんとなく、Googleからlinux-2.6.23-android-m3-rc20.tar.gzをビルドしてみました。環境はm5-rc14だけど。ビルドの途中で
Dynamic tick timer (NO_IDLE_HZ) [N/y/?] (NEW)
と聞いてきます。これはIDLE時にタイマー割り込み(HZ)を止めて省エネを図るというもの。
勢い余ってYESにしたが、ちゃんと動きました。
以下起動ログの冒頭。
% ./emulator -kernel ../../../Desktop/zImage -debug-kernel -console Uncompressing Linux.............................................................................. done, booting the kernel. Linux version 2.6.23 (neocat@macbook) (gcc version 4.2.3 (Sourcery G++ Lite 2008q1-126)) #1 Wed Jun 25 12:52:11 JST 2008 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00003137
コンパイルされた環境がちゃんと変わってる。