「kernel のコンパイル」の編集履歴(バックアップ)一覧はこちら
「kernel のコンパイル」(2011/02/10 (木) 00:54:52) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*ソースコードの入手
[[ソースコードの入手]]を参照
*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>http://www43.atwiki.jp/p10an01/?cmd=upload&act=open&page=kernel%20%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB&file=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/
*ソースコードの入手
[[ソースコードの入手]]を参照
*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>http://www43.atwiki.jp/p10an01/?cmd=upload&act=open&page=kernel%20%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB&file=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/
表示オプション
横に並べて表示:
変化行の前後のみ表示: