Android核心編譯

來源:互聯網
上載者:User

標籤:android   c   ext   a   strong   com   



說明:

我這裡用的是Android 4.2.2內建的交叉編譯工具。如果是使用host系統安裝的,我覺得應該也是可以的。但是沒有測試過。因為Android原始碼已經內建了,所以大多數情況下,不需要再安裝host系統的交叉編譯工具。

Android內建的交叉編譯工具有兩套,位於prebuilts/gcc/linux-x86/arm目錄下:
1. arm-eabi-4.6
2. arm-linux-androideabi-4.6

兩者的區別是:後者比前者新一些,具備一些新的特性。實際測試表明都可以用來編譯核心,都可以。似乎是後者更多地用於NDK。而且包含一些針對Android的特定修改。

對於如何編譯Android kernel (預設指的是給Android模擬器編譯),說明文檔位於Android原始碼下的
external/qemu/docs/ANDROID-KERNEL.TXT。大家可以參考。

環境準備:

1.將交叉編譯工具鏈的路徑加入系統路徑中

在~/.bashrc中加入如下語句(具體路徑請根據自己實際情況調整):

export PATH=$PATH:~/Android_4.2.2_r1.2/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin

2.重新登入終端或者使用source ~/.bashrc。

3.在命令列下執行 arm-eabi-gcc --version,如果沒有出錯資訊,說明配置完成。

編譯:

去google下載最新的kernel代碼。假設放在了goldfish目錄下,則執行以下命令編譯(假設你的模擬器是armv7,你的編譯工作站有8個core);
cd goldfish
export CROSS_COMPILE=arm-eabi-
export ARCH=arm
export SUBARCH=arm
make goldfish_armv7_defconfig
make -j8

如果編譯過程沒有出錯,則最後編譯出的arch/arm/boot/zImage,就是我們要的kernel,可以用來測試了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.