设为首页 加入收藏

TOP

自己编译Google Android内核的Linux源码
2014-11-23 22:39:14 来源: 作者: 【 】 浏览:12
Tags:自己 编译 Google Android 内核 Linux 源码

下面就是比较详细的步骤。首先,我们知道,Android的默认硬件处理器是ARM的,因此我们需要在自己的host机器上构建交叉编译环境。来到CodeSourcery,(http://www.codesourcery.com/gnu_toolchains/arm/download.html)选择ARM EABI 以及IA32 GNU/Linux,直接下载即可。然后从这里(http://code.google.com/p/android/downloads/list)获得内核源代码,准备工作就完成了。


然后就是配置交叉编译链并解压缩源代码。建议这里把交叉编译工具的路径添加到PATH中,以后也方便。


好,接下来就是常规的编译内核步骤了。首先需要配置文件。我们编译所需要的配置文件存在于Android运行系统中的proc目录下,具体是/proc/config.gz,因此,需要将其导出来。打开模拟器emulator -console,然后在另一个终端下使用命令


adb pull /proc/config.gz ./


这样,config.gz就被转移到当前目录下了。解压缩,重命名为.config,放到kernel,也就是源代码解压缩后的目录下,这就是我们编译系统需要用的配置文件。


然后修改Makefile,指定成我们刚下载的交叉编译工具:


CROSS_COMPILE=/home/windstorm/Work/Android/arm-2007q3/bin/arm-none-eabi-


另外,2.6.23的内核增加的build-id在这里不能用,必须去掉


#LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,
$(call ld-option, -Wl$(comma)–build-id,))


如果不去掉,编译出来的内核有4.3M大,且模拟器无法加载。我还不是很清楚build-id在这里不能用的原因,知道的朋友请不吝赐教,谢谢。最后就直接make了。生成出来的镜像自动保存为arch/arm/boot/zImage,用ll看,是和原始镜像sdk/tools/lib/images/kernel-qemu的大小一样的。


最后,就是通过emulator加载自己编译的内核,看看能否成功运行了。


emulator -kernel YOUROWNPATH/zImage


如果可以,恭喜你,自己编译Android内核就此成功。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇让进程在shell退出后仍继续运行 下一篇Linux 下JDK的配置

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: