Mac OS X 编译Android内核源代码

我在Mac电脑上编译Android的内核源代码遇到了很多问题,下面对遇到的问题进行一个简单的总结,但愿对你们有所帮助。linux


一、Android编译内核的源代码和编译Rom的源代码是分开的,所以若是要编译内核的话,须要单独下载。android

用git从谷歌的网站上克隆:git clone http://android.googlesource.com/kernel/goldfish.gitgit

注意这里不要用https,我用这个的时候常常卡死,下载不了,记得必定要用http。 ide


二、下载完成后,你会发现整个目录是空的,这是由于当前默认分支是master,先用git branch -a命令查看有哪些分支:工具

remotes/origin/HEAD -> origin/masterpost

remotes/origin/android-goldfish-2.6.29网站

remotes/origin/android-goldfish-3.4ui

remotes/origin/linux-goldfish-3.0-wipgoogle

remotes/origin/masterspa

这里咱们选择android-goldfish-3.4分支,用git checkout android-goldfish-3.4切换到该分支,切换的时候会进行解压,解压完成后,就会发现目录下有不少文件了。


三、打开Makefile文件,找到:

ARCH ?= $(SUBARCH)

CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)

改为:

ARCH ?=arm

CROSS_COMPILE ?=arm-eabi-

注意 ?=arm 千万不能有空格,不然会出现Make:...../kernel/goldfish/arch/arm: Is a directory. Stop.这样的错误


四、设置编译工具的环境变量,这里须要用到Android源码里面的交叉编译工具:

export PATH=$PATH:~/Android/android_source/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.7/bin

注意:根据你下载的Android源代码版本不一样,可能arm-eabi-4.7 存放的目录和版本号会有所不一样,同时要根据你是Linux系统仍是Mac系统要选择不一样的操做系统,由于个人是OS X系统,选择的是darwin-x86


五、修改硬件配置文件goldfish_armv7_defconfig

执行命令:make goldfish_armv7_defconfig

注意这里千万不要选择 make goldfish_defconfig ,不然你后面模拟器没法正常启动。

若是你编译过程当中遇到下面错误:

scripts/mod/mk_elfconfig.c:4:17: error: elf.h: No such file or directory,说明你的电脑缺乏 elf.h头文件,请到网站http://www.rockbox.org/tracker/9006?getfile=16683 将里面的内容复制下来,保存为elf.h,而后将它保存到scripts/mod 目录下,同时将mk_elfconfig.c,modpost.h中的<elf.h>修改成"elf.h"


六、而后编译整个内核

make

编译成功后,会看到以下信息

OBJCOPY arch/arm/boot/zImage

Kernel: arch/arm/boot/zImage is ready


7. 而后用模拟器加载新编译好的内核


emulator -kernel arch/arm/boot/zImage

打开关于手机,就能够看到新编译好的内核


172139547.jpg

相关文章
相关标签/搜索