在ubuntu10.04中用git和repo获得的android源码目录中没有kernel目录,
kernel需要我们在重新下载。
编译linux内核映像
a)准备交叉编译工具链
android代码树中有一个prebuilt项目,包含了我们编译内核所需的交叉编译工具。
b)设定环境变量
$ emacs ~/.bashrc
增加如下两行:
export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin
export ARCH=arm
保存后,同步变化:
$ source ~/.bashrc
c)获得合适的内核源代码
$ cd ~/android
获得内核源代码仓库
$ git clone git://android.git.kernel.org/kernel/common.git kernel
$ cd kernel
$ git branch
显示
* android-2.6.27
说明你现在在android- 2.6.27这个分支上,也是kernel/common.git的默认主分支。
显示所有head分支:
$ git branch -a
显示
* android-2.6.27
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/android-2.6.25
remotes/origin/android-2.6.27
remotes/origin/android-2.6.29
remotes/origin/android-goldfish-2.6.27
remotes/origin/android-goldfish-2.6.29
我们选取最新的android-goldfish-2.6.29,其中goldfish是 android的模拟器模拟的CPU。
$ git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
$ git branch
显示
android-2.6.27
* android-goldfish-2.6.29
我们已经工作在android-goldfish-2.6.29分支上了。
d)设定交叉编译参数
打开kernel目录下的Makefile文件,把CROSS_COMPILE指向刚才下载的prebuilt中的arm-eabi编译器
CROSS_COMPILE ?= arm-eabi-
把
LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\
$(call ld-option, -Wl$(comma)–build-id,))
这一行注释掉,并且添加一个空的LDFLAGS_BUILD_ID定义,如下:
LDFLAGS_BUILD_ID =
e)编译内核映像
$ cd ~/android/kernel
$ make goldfish_defconfig
$ make
f)测试生成的内核映像
$ emulator -avd myavd -kernel ~/android/kernel/arch/arm/boot/zImage
分享到:
相关推荐
MTK6577+Android编译之kernel
在Ubuntu上下载、编译和安装Android最新内核源代码
介绍了Android内核编译的方法,适用于新手学习
下载android kernel 2.6 (goldfish) 然后将config文件复制到内核所以在目录下,并改名为.config即可 然后make -j10 详情见: http://blog.csdn.net/fdl19881/article/details/7467129 (注这些是在linux(ubuntu11.10)...
这是从Google官网下载的Android内核源码,版本为goldfish3.4,对于Android4.4及以上的版本无法编译goldfish2.6版本的,因此需要使用goldfish3.4,因为上传资源大小的限制,用winrar分成了两部分上传,下载这两个部分...
手把手教你在linux下编译android内核并在模拟器中运行
Android内核编译手册
在Ubuntu上下载、编译和安装Android最新内核源代码(LinuxKernel).pdf
不过挺奇怪的,google sdk自带的内核映像的BogoMIPS是3.18的,偶编译出来的是3.13的。 为了方便没有安装sdk的朋友也可以编译内核,我把config.gz贴上来
android linux交叉编译工具aarch64-linux-android-4.9版本!需要的可以下载!
这是从Google官网下载的Android内核源码,版本为goldfish3.4,对于Android4.4及以上的版本无法编译goldfish2.6版本的,因此需要使用goldfish3.4,因为上传资源大小的限制,用winrar分成了两部分上传,下载这两个部分...
重新编译的kernel使tracerpid始终为0,从而越过反调试
改写了目前使用的Android编译脚本,如果检查到kernel代码没有发生变化的时候,则直接拷贝原来的kernel编译结果,不再重新编译内核。至于判断内核代码是否发生改变,则是通过比较kernel目录,打包编译前后的svn ...
可以移植到android平台实现NTFS文件系统挂载读写
看完了前面说的几本书之后,对Linux Kernel和Android有一定的认识了,是不是心里蠢蠢欲动,想小试牛刀自己编译一把Android源代码了呢?一直习惯使用Windows系统,而Android源代码是不支持在Windows上编译上,于是...
按照 Google 的说明设置构建环境,包括下载工具链,可以通过从 NDK 完整下载(Linux 用户可能需要chmod +x .bin 文件,然后再运行它以自动提取其中的整个预构建工具链)。 如何从头编译 mkbootimg 获取Android源...
Little Kernel(lk)是被Android系统接受进入源码树的Bootloader程序,并被多款智能手机和平板电脑所采用。论文介绍了lk的主要功能,分析了lk的源码结构,并在此基础上详细说明了lk移植的方法和过程。将移植后的lk进行...
This document describes how to build an Android kernel and the steps needed to integrate the CP210x virtual COM port (VCP) driver in to the build.
该文档描述了如何方便的调试全志(H3)平台下添加自己的驱动并方便调试,旋转按钮的添加
这是本人编译内核的整个过程,本过程经多次在不同机器上验证都可以通过,但每台机器的安装配置、环境等都不一样,故出现错误是很正常的事。。去百度一下就OK了。。。现在本人将它共享出来。。希望对大家有所帮助!~