概述
如果我们仅仅对Android内核感兴趣,我们可以选择合适的Android内核下载并编译。
可供选择的内核源码有很多版本:
$ git clone https://android.googlesource.com/kernel/common.git
$ git clone https://android.googlesource.com/kernel/exynos.git
$ git clone https://android.googlesource.com/kernel/goldfish.git
$ git clone https://android.googlesource.com/kernel/msm.git
$ git clone https://android.googlesource.com/kernel/omap.git
$ git clone https://android.googlesource.com/kernel/samsung.git
$ git clone https://android.googlesource.com/kernel/tegra.git
goldfish这个project包含了适合于模拟器平台的源码;
msm这个project包含了适合于ADP1、ADP2、Nexus One、Nexus
4的源码,并且可以作为高通MSM芯片组开发定制内核工作的起始点;
omap这个project包含了适合于PandaBoard、Galaxy
Nexus的源码,并且可以作为德州仪器OMAP芯片组内核开发定制工作的起始点;
samsung这个project包含了适合于Nexus
S的源码,并且可以作为三星蜂鸟芯片组内核开发定制工作的起始点;
tegra这个project包含了适合于Xoom和Nexus
7的源码,并且可以作为英伟达图睿芯片组内核开发定制工作的起始点;
exynos这个project包含了适合与Nexus
10的源码,并且可以作为三星猎户座芯片组内核开发定制工作的起始点。
编译
1.我选择的是goldfish这个版本,也即把goldfish给clone下来即可。
$ mkdir AndroidKernel
$ git clone https://android.googlesource.com/kernel/goldfish.git
需要等待一会,视网速而定:
2.接着进入goldfish,发现里面没有文件,别急,我们还要选择分支,下载真正的源码:
可以通过执行:
$ git branch -a
来查看所有分支,接着:
$ git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
下载源码:
3.下载编译所必需的prebuilt工具:
$ git clone https://android.googlesource.com/platform/prebuilt
等待一会:
4.将prebuilt工具添加到环境变量中以备后续使用:
$ export PATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
5.接着配置其他必要的环境变量:
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
6.我们执行:
$ make goldfish_defconfig
来在内核源码根目录下生成一个默认的.config文件:
7.最后,我们就可以编译了:
编译过程截图:
映像的输出为:arch/arm/boot/zImage,这样就通过默认的配置完成了Android内核的编译。
from:http://blog.csdn.net/leilu2008/article/details/9467991