编译Android内核

首先需要知道自己android内核的版本,我们android系统是android 4.0.1,内核版本为2.6.29.

由于我们在下载android源代码的时候默认是不带内核源码的,因为他内置了一个编译好的zImage内核镜像,所以,如果要编译内核源码的时候,我们需要下载我们当前版本的内核源码.注意,这里的内核源码并不是Linux官网的内核源码,而是谷歌定制的内核.

我们首先需要在android源代码根目录下新建一个kernel目录.

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

这个需要等待一段时间,下载完成之后,我们使用如下命令.

git branch -a
//找到自己需要的内核源码版本
git checkout remotes/origin/android-goldfish-2.6.29

好了,完成之后,我们就可以编译我们的内核源代码了.在编译之前,我们需要修改一个内核源码的根目录下的Makefile文件,也就是老罗提到的修改两个部分:

ARCH            ?= arm
CROSS_COMPILE   ?=  arm-eabi-   

在make之前,我们需要将Android提供的交叉编译链添加到我们的环境变量中,android提供的交叉编译链在目录

/prebuilt/linux-x86/toolchain 中.

下面我们使用下面的命令进行编译:

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

//android2.3以下使用这个
make goldfish_defconfig
//android2.3以上使用这个
make goldfish_armv7_defconfig

//多线程编译
make -j4 

等出现zImage生成成功,表示编译完成.

最后,指定内核运行我们的虚拟机.

emulator -kernel ./kernel/goldfish-android/arch/arm/boot/zImage 

如果想要在后台运行这个虚拟机来启动adb的话,则需要在命令后面添加”&”.

emulator -kernel ./kernel/goldfish-android/arch/arm/boot/zImage &

版权声明:您好,转载请留下本人博客的地址,谢谢

时间: 2024-08-03 11:42:15

编译Android内核的相关文章

编译Android系统源码和内核源码

好长时间没有写blog了,之所以没有写,主要还是工作上的事,发现最近的脑子不够用了,今天写点什么呢?就把我之前编译Android系统源码和内核源码的过程记录一下,因为这个过程真的是受益匪浅,看重的不是结果,主要是过程,在这个过程中,我感觉最大的收获就是学习的耐心和毅力,因为在这个过程中那个问题就像是雨点似的天天打在你的脸上,虽然现在网上有很多文章介绍怎么去操作,但是我说句真心话,那些只能提供参考,因为你的工作环境毕竟和他不一样,所以等你按照他的步骤去操作的时候还是会遇到很多问题,当然我写这篇文章

FW 编译Android系统源码和内核源码

编译Android系统源码和内核源码 分类: Android2014-07-21 20:58 7287人阅读 评论(28) 收藏 举报 好长时间没有写blog了,之所以没有写,主要还是工作上的事,发现最近的脑子不够用了,今天写点什么呢?就把我之前编译Android系统源码和内核源码的过程记录一下,因为这个过程真的是受益匪浅,看重的不是结果,主要是过程,在这个过程中,我感觉最大的收获就是学习的耐心和毅力,因为在这个过程中那个问题就像是雨点似的天天打在你的脸上,虽然现在网上有很多文章介绍怎么去操作,

Android系统篇之—-编写简单的驱动程序并且将其编译到内核源码中【转】

本文转载自:大神 通过之前的一篇文章,我们了解了 Android中的Binder机制和远程服务调用 在这篇文章中主要介绍了Android中的应用在调用一些系统服务的时候的原理,那么接下来就继续来介绍一下如何通过编译Android源码来手动添加一个系统服务,让编译之后的Android系统中存在我们的这个服务,每个应用都可以调用.但是本文得先介绍一下如何编写一个简单的驱动程序,先介绍了驱动程序,然后在通过JNI让framework层访问这个驱动程序,在通过注册服务来封装这个功能,最后在把这个服务添加

编译Android源代码与内核总结

这些天花了些时间自己下载了android源代码来编译,当中走了一些弯路导致耗了些时间,如今又一次梳理总结下,让有同样想法的人自己编译的时候能少走些弯路,官方指导文档在http://source.android.com/source/initializing.html. 1.安装linux环境 我是windows系统,安装了Vmware虚拟机.在虚拟机上装了ubuntu-12.04,我的这个版本号是32位的,这个还蛮重要的.安装32位或者64位的将决定你能编译的android版本号,官方文档里Fo

【转】编译Android系统源码和内核源码

原文网址:http://blog.csdn.net/jiangwei0910410003/article/details/37988637 好长时间没有写blog了,之所以没有写,主要还是工作上的事,发现最近的脑子不够用了,今天写点什么呢?就把我之前编译Android系统源码和内核源码的过程记录一下,因为这个过程真的是受益匪浅,看重的不是结果,主要是过程,在这个过程中,我感觉最大的收获就是学习的耐心和毅力,因为在这个过程中那个问题就像是雨点似的天天打在你的脸上,虽然现在网上有很多文章介绍怎么去操

Android系统篇之----编写简单的驱动程序并且将其编译到内核源码中

通过之前的一篇文章,我们了解了 Android中的Binder机制和远程服务调用 在这篇文章中主要介绍了Android中的应用在调用一些系统服务的时候的原理,那么接下来就继续来介绍一下如何通过编译Android源码来手动添加一个系统服务,让编译之后的Android系统中存在我们的这个服务,每个应用都可以调用.但是本文得先介绍一下如何编写一个简单的驱动程序,先介绍了驱动程序,然后在通过JNI让framework层访问这个驱动程序,在通过注册服务来封装这个功能,最后在把这个服务添加到系统中,实现上层

Android内核的编译与测试

1.下载Android内核 source.android.com/source->Downloading and Building Building Kernels 大概要花2个小时,其源码在培训软件里面的 Android模拟器使用的Linux-3.10版本内核源码 复制到Ubuntu,并解压之.进入该目录 这是Android源代码已经自带好的交叉工具链,只需要把它加入到path环境变量即可. sudo gedit /etc/profile source /etc/profile 测试: 2.编

Android内核开发:系统编译输出的镜像文件

本文是<Android内核开发>的第四篇文章,主要介绍一下源码编译输出的几个重要的镜像文件,这里把bootloader源码和Linux内核源码的编译输出也算在其中,因为毕竟Android系统缺少了这两个部分在设备上也是跑不起来的. 1. MLO, u-boot.img 任何操作系统的启动,都离不开"引导程序",比如桌面Windows系统的BIOS.桌面Linux系统常用的是Grub,而在嵌入式系统中,这个引导程序通常叫做"bootloader",它通常由

【Android 系统开发】 编译 Android 系统 u-boot 内核 源码 并烧写到 OK-6410A 开发板上

博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 Android 光盘 下载地址 : http://pan.baidu.com/share/link?shareid=3662728609&uk=2754759285 ; -- 光盘所含内容 : Android 引导 u-boot 源码, Android 内核 源码, Android 系统源码, 交叉编