編譯android的linux核心

來源:互聯網
上載者:User

參考文檔:http://linux.chinaunix.net/techdoc/beginner/2009/02/06/1060906.shtml

運行環境:Ubuntu8.10

1、構建交叉編譯環境
Android的預設硬體處理器是ARM的,因此我們需要在自己的host機器上構建交叉編譯環境。來到CodeSourcery,(http://www.codesourcery.com/gnu_toolchains/arm/download.html),點擊GNU/Linux對應的連結,再點擊IA32 GNU/Linux Installer連結直接下載。
把arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2解壓到一目錄下,如~/programes/。並加入PATH環境變數:
vim ~/.bashrc
添加:
ARM_TOOLCHIAN=~/programes/arm-2008q3/bin/
export PATH=${PATH}:${ARM_TOOLCHIAN};
儲存,並source ~/.bashrc

2、擷取核心源碼
http://code.google.com/p/android/downloads/list
注意該核心版本要與你選用的模擬器版本盡量一致。
下載後,解壓後得到kernel.git檔案夾:
tar -xvf ~/download/linux-2.6.25-android-1.0_r1.tar.gz

3、擷取核心編譯配置資訊檔
編譯核心時需要configure,而一般configure的選項很多,我們往往不知道需要那些選項。Android模擬器運行時,有一檔案/proc/config.gz, config.gz是當前核心的配置資訊檔,我們把config.gz擷取出來,解壓放到kernel.git/之下(改名為.config):
cd kernel.git/
emulator &

adb pull /proc/config.gz

gunzip config.gz

mv config .config

4、修改Makefile
修改195行:
CROSS_COMPILE    = arm-none-linux-gnueabi-
將CROSS_COMPILE值改為arm-none-linux-gnueabi-,這是我們安裝的交叉編譯工具鏈的首碼,修改此處意在告訴make在編譯的時候要使用該工具鏈。
注釋562,563行:
#LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,/
#                  $(call ld-option, -Wl$(comma)--build-id,))
將build id 值注釋掉,因為目前版本的android核心不支援該選項。

5、編譯
make
很快就編譯好,並產生zImage:
  LD      arch/arm/boot/compressed/vmlinux

  OBJCOPY arch/arm/boot/zImage

  Kernel: arch/arm/boot/zImage is ready
產生zImage大小為1.23M,android-sdk-linux_x86-1.0_r2/tools/lib/images/kernel-qemu是1.24M

6、用模擬器載入核心測試
cd android/out/cupcake/out/target/product/generic
emulator -image system.img -data userdata.img -ramdisk ramdisk.img -kernel ~/project/android/kernel.git/arch/arm/boot/zImage &
模擬器載入成功就OK了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.