官網:http://source.android.com/source/building-kernels.html
下載地址:https://android.googlesource.com/?format=HTML
一般下載:goldfish版本的
1.建立目錄
mkdir kernel
2.解壓文件(goldfish-android-goldfish-3.4.tar.gz)到目錄下
tar zxvf goldfish-android-goldfish-3.4.tar.gz -C kernel
文件目錄結構
3.修改文件夾中的Makefile文件中的編譯環境
VIM
# ARCH ?= (SUBARCH)
# CROSS_COMPILE?=
ARCH ?= arm #體系結構爲arm
CROSS_COMPILE ?= arm-eabi- #交叉編譯工具鏈前綴
或者
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
4.導出交叉編譯工具目錄到$PATH環境變量中去
這步沒做,下面報錯
export PATH=$PATH:/media/M_hM_=M_M_dM__M_6/Download/442/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin
5.編譯
切換到kernel目錄 ( cd kernel)
命令:make goldfish_defconfig (make goldfish_armv7_defconfig)
2.3版本以後的體系架構是用的是armv7
命令:make -j16
錯誤1:
/kernel_dir ...../arch/arm: 是一個目錄。 停止
修改:
ARCH ?= arm<空格>
刪除空格
錯誤2:
/bin/sh: 1: arm-eabi-gcc: not found 導出交叉編譯工具目錄到$PATH環境變量中去
導出交叉編譯工具目錄到$PATH環境變量中去:export PATH=$PATH:/media/M_hM_=M_M_dM__M_6/Download/442/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin
6.編譯成功
7.在模擬器中運行編譯好的內核
export PATH=$PATH:/media/M_hM_=M_M_dM__M_6/Download/442/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=/media/M_hM_=M_M_dM__M_6/Download/442/out/target/product/generic
8.在後臺中指定內核文件啓動模擬器
切換到android源碼目錄 運行命令:emulator -kernel kernel/arch/arm/boot/zImage &
錯誤1:
解決:
source build/envsetup.sh
lunch sdk-eng
錯誤2:黑屏
原因:
2.3版本以後的體系架構是用的是armv7了,
解決:將make goldfish_defconfig改成make goldfish_armv7_defconfig