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を落とせばわざわざJavaGUIでインストールすることもなく手っ取り早かった気もする。
/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

コンパイルされた環境がちゃんと変わってる。