***************************************************************************************************************************
作者:EasyWave 時間:2013.01.27
類別:Android系統源碼分析系列 聲明:轉載,請保留連結
注意:如有錯誤,歡迎指正。這些是我學習的日誌文章......
***************************************************************************************************************************
一:引子
以手邊的Andriod2.3.4和linux2.6.36版本為例,下一步自己想嘗試將Android2.3.4移植到android2.3.5或者更高版本的Android4.0上來,這是後話,這裡只說說,Andriod下的Linux核心的編譯,需要注意的是:編譯Andriod系統的Linux核心的交叉編譯工具,需要用到的是:arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2,同時設定下環境變數,當然在編譯的時候,手動指定交叉編譯工具的路徑也是可以的,如:export
PATH=/usr/local/arm/arm-none-linux-gnueabi/bin:$PATH,不過我在原有的Andriod下的交叉編譯工具的基礎上,通過重新打包,加入一個install.sh的指令碼,可以讓Andriod下的ARM Linux的交叉編譯工具自動安裝和自動化佈建交叉編譯環境,同時對UBOOT的交叉編一環境也通過重新打包,加入一個install.sh指令碼,這樣方便自己快捷的安裝交叉編譯工具。
二:交叉編譯工具安裝
以S3C6410的linux2.6.36為例,如所示:
可以從這個網站上下載這些資料哦,安裝arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2 很簡單,只需要執行:tar -xjvfarm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2
-C /. 即可。
之後設定交叉編譯工具鏈的環境變數:export PATH=/usr/local/arm/arm-none-linux-gnueabi/bin:$PATH,還有一種方法為:在Ubuntu10.04的/etc/profile.d/s3c_linux.sh檔案也開始可以的。這樣就不用每次都去設定環境變數了哦。看我的系統中設定如下:
在編譯UBOOT的時候,需要用到的是:arm-linux-gcc-4.3.2.tgz 安裝方法如:tar -xzvf arm-linux-gcc-4.3.2tgz -C /.
之後會在/usr/local/arm下會有如下的檔案夾:
之後,登出Ubuntu,可以在shell下輸入arm-nono-linux-guneabi-gcc -v測試是否安裝成功,圖片如下:
這要是能夠看到這個,就說明Linux核心的交叉編譯工具安裝成功了。之後,下載android2.3_kernel解壓到想要的目錄下,我的如下:
之後在shell下輸入make命令,[因為,我已經配置好了核心,不需要去做make xxx_defconfig之類的事情]即可,編譯出來的核心如下:
這個跟其它的ARM下的linux的編譯沒有任何差別,只是交叉編譯工具會有一些不同。。。。。