編譯android內核
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.下載交叉編譯器:
按照上面網頁中的說法是下載:
$ git clone https://android.googlesource.com/platform/prebuilt
下載完後記得:
$ export PATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
(該步驟有可能耗費大量時間,依據網速不同,幾個小時到幾天不等,或許可以嘗試git clone 後面的地址只下載prebuilt/linux-x86/toolchain,那樣就需要下載的東西很少了,此方法我還沒有嘗試;或者跳過該步驟參考第6點)
5.設置參數以及編譯:
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ cd goldfish // 進入下載的源代碼目錄
$ git checkout <commit_from_first_step> //這個步驟我沒有做,不知道幹嘛用的
$ make goldfish_defconfig
$ make
6.報錯信息:
若有報錯說找不到 (arm-eabi-gcc command not found)等等,嘗試使用http://blog.csdn.net/davidbeckham2901/article/details/7397447 中說到的解決方案即可(即採用另外一個交叉編譯器)。
7.測試:
最後,測試一下剛纔編譯的內核:
emulator -avd myavd -kernel ~/goldfish/arch/arm/boot/zImage
emulator若系統找不到,可以去android SDK中某文件夾找到,加入系統PATH即可。 -avd後面的參數 myavd即爲模擬器的名字,這個我是在eclipse中的模擬器管理中新建的一個模擬器,用那個模擬器的名字即可。 -kernel後面的參數就找到剛纔編譯出的內核的路徑。
若啓動模擬器失敗,可嘗試關閉後再啓動。第一次啓動模擬器時可能需要等待比較長的時間,3分鐘到15分鐘不等。