如何下載並編譯Android 4.0內核源碼Goldfish

下面進入正題:
linux

第一步:下載goldfish源碼android

在Android源碼根目錄下新建kernel文件夾git

  1. $mkdir kernel  shell

  2. $cd kernel  工具

下載源碼:ui

  1. $git clone http://android.googlesource.com/kernel/goldfish.git   google


下載完畢以下圖:spa

此時在kernel目錄下會生成一個goldfish文件夾。進入此目錄:.net

cd goldfish

此目錄下有一個隱藏的目錄.git,經過code

ls -al

可看到此目錄:


查看全部分支:

git  branch -a

以下圖:


check out:

git checkout remotes/origin/android-goldfish-2.6.29



此時你會看到goldfish目錄下會出現不少文件:

ls

這個時候goldfish源碼就已經下下來了,接下來的事情就是編譯了.


第二步:編譯goldfish

導出交叉編譯工具目錄到$PATH環境變量中去.

export PATH=$PATH:/uslocalandroidsource/bin/WORKING_DIRECTORY/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin


    咱們將使用上述這個目錄下的交叉編譯器arm-eabi-gcc

    而後在glodfish目錄下用gedit打開Makefile文件,找到這兩行文字:

     # ARCH ?= (SUBARCH)

     # CROSS_COMPILE?=
    修改成:
    ARCH ?= arm

    CROSS_COMPILE     ?= arm-eabi-

gedit Makefile

注意:ARTH ?=arm,的arm後邊不要有空格,否則就會出現以下相似錯誤:
Make:...../kernel/goldfish/arch/arm: Is a directory.  Stop.
害我白白浪費了幾個小時.

關閉gedit,接下來就開始make了,執行以下指令:

  1. $ make goldfish_armv7_defconfig  

  2. $ make  

注:用$make goldfish_defconfig這樣配置也能夠編譯經過,模擬器也能夠啓動,可是Android的開機畫機就顯示不了,$adb shell也死活連不上,緣由就是這個goldfish_defconfig這個配置文件問題.

提示:
$make goldfish_armv7_defconfig指令的意思是將目錄WORKING_DIRECTORY/kernel/goldfish/arch/arm/configs/下的goldfish_armv7_defconfig文件內的Kconfig配置內容複製到WORKING_DIRECTORY/kernel/goldfish/目錄下的.config文件中,.config文件是一個隱藏目錄,保存着各個目錄下Kconfig文件的配置.
最終結果以下圖所示:



這樣就表示編譯成功了.

 

  1. $ ls arch/arm/boot/  

能夠看到zImage文件.

第三步:在模擬器中啓動編譯好的內核

  1. $ export PATH=$PATH:/usr/local/androidsource/bin/WORKING_DIRECTORY/out/host/linux-x86/bin  

  2. $ export ANDROID_PRODUCT_OUT= /usr/local/androidsource/bin/WORKING_DIRECTORY/   out/target/product/generic  

  3. $ emulator -kernel /usr/local/androidsource/bin/WORKING_DIRECTORY/kernel/goldfish/arch/arm/boot/zImage &  

模擬器啓動界面:



進入模擬器從設置裏看版本信息:

從上圖能夠看出當前Android版本是4.0.1,內核版本是2.6.29,說明成功了.

一樣也能夠經過adb shell來查看內核版本信息,以下圖:

  1. $adb shell  

  2. #cd proc  

  3. #cat version  


完!

相關文章
相關標籤/搜索