Android内核编译
说明:
我这里用的是Android
4.2.2自带的交叉编译工具。如果是使用host系统安装的,我觉得应该也是可以的。但是没有测试过。因为Android源代码已经自带了,所以大多数情况下,不需要再安装host系统的交叉编译工具。
Android自带的交叉编译工具有两套,位于prebuilts/gcc/linux-x86/arm目录下:
1.
arm-eabi-4.6
2.
arm-linux-androideabi-4.6
两者的区别是:后者比前者新一些,具备一些新的特性。实际测试表明都可以用来编译内核,都可以。似乎是后者更多地用于NDK。而且包含一些针对Android的特定修改。
对于如何编译Android
kernel
(默认指的是给Android模拟器编译),说明文档位于Android源代码下的
external/qemu/docs/ANDROID-KERNEL.TXT。大家可以参考。
环境准备:
1.将交叉编译工具链的路径加入系统路径中
在~/.bashrc中加入如下语句(具体路径请根据自己实际情况调整):
export
PATH=$PATH:~/Android_4.2.2_r1.2/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin
2.重新登录终端或者使用source
~/.bashrc。
3.在命令行下执行 arm-eabi-gcc
--version,如果没有出错信息,说明配置完成。
编译:
去google下载最新的kernel代码。假设放在了goldfish目录下,则执行以下命令编译(假设你的模拟器是armv7,你的编译工作站有8个core);
cd
goldfish
export CROSS_COMPILE=arm-eabi-
export ARCH=arm
export
SUBARCH=arm
make goldfish_armv7_defconfig
make
-j8
如果编译过程没有出错,则最后编译出的arch/arm/boot/zImage,就是我们要的kernel,可以用来测试了。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。