32位ubuntu10.04编译Android4.0.1内核

最近在做Android的一个项目,需要进行内核的编译,参考了官网上以及其他博客的教程,把自己编译内核的步骤记录下来。

1.下载Android模拟器的专用内核代码goldfish

之前我已经下载好了Android的源代码,并把源码放在了~/android目录下面。

利用Ctrl+Alt+t打开shell终端,输入下面命令:


cd ~/android

git clone http://android.googlesource.com/kernel/goldfish.git

cd goldfish

git branch -a

git checkout origin/android-goldfish-2.6.29


2.编译goldfish内核代码

在goldfish目录下面利用vim打开Makefile文件,进行如下修改:


ARCH ?=(SUBARCH)

CROSS_COMPILE ?=

修改为:

ARCH ?=arm

CROSS_COMPILE ?=arm-eabi-

保存后退出。


注意:ARCH ?=arm中的arm后边不要有空格,不然就会出现下面的错误:

Make:...../kernel/goldfish/arch/arm: Is a directory.  Stop.


在shell中利用export命令导出交叉编译工具:

export PATH=$PATH:~/android/prebuild/linux-x86/toolchain/arm-eabi-4.4.3/bin


下面开始执行make命令:

make goldfish_armv7_defconfig


注:用$make goldfish_defconfig这样配置也可以编译通过,模拟器也可以正常启动,但是Android的开机画机就显示不了,模拟器启动后一直显示的是黑屏,具体的原因我不是很清除,不过就是用goldfish_defconfig这个配置文件编译出的问题,我最后换成了goldfish_armv7_defconfig后进行编译,模拟器利用goldfish_armv7_defconfig编译出来的内核启动时就可以正常进入系统了。


由于我需要让内核支持动态加载和卸载.ko模块,执行下面命令(不需要的可以直接跳过):

make menuconfig

把Enable loadable module support项按y选上

32位ubuntu10.04编译Android4.0.1内核_第1张图片

然后按回车进入选上前三项

32位ubuntu10.04编译Android4.0.1内核_第2张图片

退出时选择yes

32位ubuntu10.04编译Android4.0.1内核_第3张图片

最后在shell中执行make命令:

make


执行上面的步骤就可以完成Android内核代码的编译。编译后的内核为goldfish/arch/arm/boot/zImage








你可能感兴趣的:(android,shell,ubuntu,Path,makefile,branch)