官网: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
9.结果: