Android kernel 編譯

 研究了Android內核編譯,以下資料來自其他作者的總結,在此整理

 

原文出處:http://blog.csdn.net/davidbeckham2901/article/details/7448717

1.準備工作: (ubuntu1110 32位)

推薦使用ubuntu等linuxOS,下載好eclipse,安裝好JDK, 安裝好android的SDK(http://developer.android.com/sdk/index.html 和http://developer.android.com/sdk/installing.html 有詳細官方介紹), 在eclipse中成功打開android 手機模擬器即OK。

2.初始化編譯環境 :

http://source.android.com/source/initializing.html   ,關注該網頁上的“installing required packages”,其中有的軟件包因爲版本問題而安裝不上,不用管它,之後遇到錯誤再單獨解決。

3.下載內核源碼

http://source.android.com/source/building-kernels.html 

android 2.3 內核 下載      $ git clone https://android.googlesource.com/kernel/goldfish.git   需要等待一段時間。

4.下載交叉編譯器:

編譯的過程中 用的交叉編譯器就不用 從android官網下載來的prebuilt文件夾中的東西了,

自己重新下載另外一個交叉編譯器:  網址http://www.codesourcery.com/gnu_toolchains/arm/download.html  , 到該網頁選擇去下載 ARM   EABI  類的這個軟件的tar.gz包,解壓縮後,找到bin文件夾,裏面應該有個arm-none-linux-gnueabi-   

Makefile文件中修改爲

CROSS_COMPILE=arm-none-linux-gnueabi- 了不到一個小時就能編譯ok!

5.設置參數以及編譯:

$ export ARCH=arm

$ export SUBARCH=arm

$ export CROSS_COMPILE=arm-eabi-

$ cd goldfish  // 進入下載的源代碼目錄

$ git checkout <commit_from_first_step>   //這個步驟我沒有做,不知道幹嘛用的

$ make goldfish_defconfig  

$ make

7.測試:

最後,測試一下剛纔編譯的內核:

emulator -avd myavd -kernel ~/goldfish/arch/arm/boot/zImage

emulator若系統找不到,可以去android SDK中某文件夾找到,加入系統PATH即可。   -avd後面的參數 myavd即爲模擬器的名字,這個我是在eclipse中的模擬器管理中新建的一個模擬器,用那個模擬器的名字即可。   -kernel後面的參數就找到剛纔編譯出的內核的路徑。

若啓動模擬器失敗,可嘗試關閉後再啓動。第一次啓動模擬器時可能需要等待比較長的時間,3分鐘到15分鐘不等。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章