UbuntuでAndroid 4.2の最新のカーネルソースコードをダウンロード、コンパイル、インストールします.

4510 ワード

によるとhttp://blog.csdn.net/luoshengyang/article/details/6564592ブログの内容はandroid 4.2のコンパイルです.
ソースコードツリーからダウンロードした最新のAndroidソースコードは、カーネルコードを含まない、つまりAndroidソースプロジェクトは、デフォルトではLinux Kernelコードを含まないで、あらかじめコンパイルされたカーネルを使っています.ケネル/arm/ケネル-qemeファイル.以下に、androidをコンパイルするLinuxカーネルを紹介します.
一、まず、根拠としてhttp://source.android.com/source/initializing.htmlAndroidソースコードをダウンロードしてコンパイルします.
二、そして、Linux Kernel for Androidソースコードをダウンロードします.
1、GITツールを使ってダウンロードし、以下のコマンドを実行します.
USER-NAME@MACHINE-NAME:~/my_android$ mkdirケネル
USER-NAME@MACHINE-NAME:~/my_android$ cdケネル
USER-NAME@MACHINE-NAME:~/my_android/ケネル$git clonehttps://android.googlesource.com/kernel/goldfish.git
     同じ長い待ち時間を経て、ケネルディレクトリの下にgoldfishディレクトリがあります.Linuxカーネルコードはここにあります.
2、ダウンロードが完了したら、ダウンロードしたカーネルコードのバージョンを確認できます.
     USER-NAME@MACHINE-NAME:~/my_android/ケネル$cd  goldfish
     USER-NAME@MACHINE-NAME:~/my_android/ケネル/goldfish$git  branch
     * マスター
3、上記はメインラインのカーネルソースコードです.今はシミュレータ用のカーネルに適用する必要があります.そのため、私達はcheckout goldfishバージョンが必要です.
     
USER-NAME@MACHINE-NAME:~/my_android/ケネル/goldfish$ git branch-a
      
*マスター  remotes/origgin/HEAD->origgin/master  remotes/origgin/android-goldfish-2.69  remotes/origgin/android-goldfish-34  remotes/origgin/linux-goldfish-3.0-wip  remotes/origgin/master
     
remotes/origgin/android-goldfish-34を選択:
      USER-NAME@MACHINE-NAME:~/my_android/ケネル/goldfish$ git checkout remotes/origgin/android-goldfish-34
三、カーネルコードをコンパイルする.
1、クロスコンパイルツールディレクトリを$PATH環境変数にエクスポートします.
USER-NAME@MACHINE-NAME:~/my_android/ケネル/goldfish$ export PATH=$PATH:~/my_android/prebuilds/gcc/linux-x 86/arm/arm-eabi-4.6/bin
または
USER-NAME@MACHINE-NAME:~/my_android/ケネル/goldfish$ export PATH=$PATH:~/my_android/prebuilds/gcc/linux-x 86/arm/arm-eabi-4.6/bin
2、 以下のコマンドを使用して、goldfishカーネルを構築します.
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
3、今はAndroidのカーネルコンパイルパラメータの配置ファイルを得る時です.このファイルはすでにインストールされているAndroidのシミュレータから入手しなければなりません.androidのsdkをインストールする必要があります.このステップはよく分からない友達が以前送ったandroid命令を参考にして体験することができます.まずAndroidシミュレータを起動して、adbを通じてシミュレータに提供されるカーネルの設定ファイルを取得します.USER-NAME@MACHINE-NAME:emulator&USER-NAME@MACHINE-NAME:adb pull/proc/config.gz.この時adbツールはシミュレータに接続して、その中からconfig.gzというファイルをあなたの現在のディレクトリにダウンロードします.それをあなたのケネル/goldfishディレクトリにコピーします.USER-NAME@MACHINE-NAME:cd~/my_android/kersnel/goldfish USER-NAME@MACHINE-NAME:cp~/config.gzはこのファイルを解凍して.configと名前を変更します.この手順でmake menuconfigなどのカーネルパラメータ設定動作をスキップできます.   USER-NAME@MACHINE-NAME:gnzip config.gz USER-NAME@MACHINE-NAME:mv config.config
このステップが重要です.make goldfishを通過するとdefconfigで生成された.configでコンパイルされたカーネルはemulatorでは実行できないかもしれない.
4、コンパイルを開始します.
      USER-NAME@MACHINE-NAME:~/my_android/ケネル/goldfish$ メークゴールドフィシュdefconfig(第3ステップを操作すると、このコマンドは省略できます.)
USER-NAME@MACHINE-NAME:~/my_android/ケネル/goldfish$ メーク
     
     コンパイルが成功したら、次の2行が見られます.
      OBJCOPY arch/arm/boot/zImage      Kernel:arch/arm/boot/zImage is ready
      makeコマンドを実行する前に、make menuconfigを実行してもいいです.まずコンパイルオプションを設定してください.
四、シミュレータでコンパイルされたカーネルを実行します.
1、シミュレータを起動する前に、まずシミュレータのディレクトリを環境変数$PATHに設定します.
USER-NAME@MACHINE-NAME:~/my_android$ export PATH=$PATH:~/my_android/out/host/linux-x 86/bin
2、ANDROID_を設定するPRODUCT_アウト環境変数:
USER-NAME@MACHINE-NAME:~/my_android$ export ANDROID_PRODUCT_OUT=~/my_android/out/target/product/generanic
3、バックグラウンドでカーネルファイルの起動シミュレータを指定します.
USER-NAME@MACHINE-NAME:~/my_android$  emulator-kersnel./kersnel/goldfish/arch/boot/zImage&
4、adbツールでシミュレータを接続して、カーネルバージョンの情報を確認して、シミュレータで走るカーネルは先ほどコンパイルしたカーネルではないかを確認します.
      USER-NAME@MACHINE-NAME:~/my_android$adb shell
      この時初めてadb shellコマンドを実行したら、以下の出力が見えます.それに関わらず、もう一度adb shellコマンドを実行すればいいです.
      * daemen not running.start it now on port 5037*
      * daemen started success fully*
      error:device ofline
     プロディレクトリに切り替え:
      root@
generic:/噫cd proc
      root@generic:/proc钻  cat version
      Linux version 3.4.0-g 39765 bd(fantasy@ubuntu)(gcc version 4.6.x-google 20106(prerelease)(GCC)))x 2 PREEMPT Fri Jun 14 23:09:45 CST 2013
    マシン名から
fantasy@ubuntu日付
 Fri Jun 14 23:09:45 CST 2013は、シミュレータが使用するカーネルがコンパイルされたばかりのカーネルであることを示しています.
root@android:/proc菗cat cu
参考:
1.http://blog.csdn.net/luoshengyang/article/details/6564592
2.http://source.android.com/source/building-kernels.html
3.http://blog.csdn.net/farce/article/details/5901531