javascript plugin Error : このプラグインで利用できない命令または文字列が入っています。
javascript plugin Error : このプラグインで利用できない命令または文字列が入っています。

kernel のコンパイル

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

ソースコードの入手

ソースコードの入手を参照

Android NDK の入手

Android NDK は、アプリケーションのコードの一部をネイティブ命令で実行できるようにし、アプリケーションの高速化を目的とするもので、単独のアプリケーションを作成するものではない。しかし、単独のアプリケーションの作成に利用したり、kernel をコンパイルすることもできる。

http://developer.android.com/sdk/ndk/index.html から、android-ndk-r5b-linux-x86.tar.bz2 を入手する。以下の文章は、全て、Linux(Ubuntu 10.04.1 LTS)を対象とする。

環境構築

$ export ARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ export PATH=$PATH:~/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin

$ sudo apt-get libncurses5-dev

後で、make menuconfig を実行するために libncurses5-dev を使う。恐らく、他に、コンパイルに必要なパッケージが今後出てくるかもしれないが、それは、必要に応じて apt-get でインストールするように。

kernel の設定を行う


先に、kernel の設定ファイルの雛形になる .config ファイルを P10AN01 から持ってくる必要がある。

$ cd kernel-source
$ adb pull /proc/config.gz .
$ gunzip config.gz
$ mv config .config

.config を用意できたら、menuconfig を立ち上げる。

$ make menuconfig

make menuconfig を実行すると設定画面が現れる。ここでは、スペースキーで項目の ON/OFF と詳細設定への移動, エスケープを2度押すことで前のページに戻れる。

General Setup に移動すると "(何らかの文字列) Local verison - append to kernel release" という項目を確認できる。ここは、kernel のローカルバージョンを設定する場所で、例えば、"_MY_KERNEL_" と設定すると、Android 上の 設定->デバイス情報->カーネルバージョンで、"2.6.32.9_MY_KERNEL_" と表示されるようになる。

設定が終わったら、"Save an Alternate Configuration File" で .config ファイルを保存する。

kernel のコンパイル


$ make

このコマンドを実行すると kernel のコンパイルが始まる。環境によるが、core i7 だったら、10分~20分で終了する。

kernel のコンパイルが終了すると、arch/arm/boot/ に zImage ができる。これが kernel の本体。

boot.img の作成

boot.img を作成する際に、RAMDISK が必要になるので、P10AN01 の ROM からboot.img を入手して、RAMDISK を入手しておく。入手手順は boot.img, recovery.img の展開 を参照する。

zImage と RAMDISK を一つのディレクトリにおいたら、mkbootimg コマンドを実行する。

$ mkbootimg --kernel zImage --ramdisk boot.img-ramdisk.gz -o boot.img --base 0x10000000

なお、mkbootimg は、Android のソースコードから NDK でコンパイルできる。

boot.img を書き込む


flash_image や nvflash で書き込める

参照した URL


http://android.modaco.com/content/advent-vega-vega-modaco-com/330834/advent-vega-kernel-source-code-now-available/
http://www.robmcghee.com/android/compiling-an-android-kernel/
|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|