最近在做Android的一个项目,需要进行内核的编译,参考了官网上以及其他博客的教程,把自己编译内核的步骤记录下来。

1.下载Android模拟器的专用内核代码goldfish

之前我已经下载好了Android的源代码,并把源码放在了~/android目录下面。

利用Ctrl+Alt+t打开shell终端,输入下面命令:


cd ~/android

gitclonehttp://android.googlesource.com/kernel/goldfish.git

cd goldfish

git branch -a

git checkout origin/android-goldfish-2.6.29


2.编译goldfish内核代码

在goldfish目录下面利用vim打开Makefile文件,进行如下修改:


ARCH ?=(SUBARCH)

CROSS_COMPILE ?=

修改为:

ARCH ?=arm

CROSS_COMPILE ?=arm-eabi-

保存后退出。


注意:ARCH ?=arm中的arm后边不要有空格,不然就会出现下面的错误:

Make:...../kernel/goldfish/arch/arm: Is a directory. Stop.


在shell中利用export命令导出交叉编译工具:

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


下面开始执行make命令:

make goldfish_armv7_defconfig


注:用$make goldfish_defconfig这样配置也可以编译通过,模拟器也可以正常启动,但是Android的开机画机就显示不了,模拟器启动后一直显示的是黑屏,具体的原因我不是很清除,不过就是用goldfish_defconfig这个配置文件编译出的问题,我最后换成了goldfish_armv7_defconfig后进行编译,模拟器利用goldfish_armv7_defconfig编译出来的内核启动时就可以正常进入系统了。


由于我需要让内核支持动态加载和卸载.ko模块,执行下面命令(不需要的可以直接跳过):

make menuconfig

把Enable loadable module support项按y选上


然后按回车进入选上前三项


退出时选择yes


最后在shell中执行make命令:

make


执行上面的步骤就可以完成Android内核代码的编译。编译后的内核为goldfish/arch/arm/boot/zImage








更多相关文章

  1. Android下使用TinyXml读取xml配置文件(Cocos2d-x游戏开发)
  2. android自学笔记《一》——android简介
  3. Android(安卓)apk签名
  4. (安卓/android)dex2oat与应用安装时间优化
  5. [安卓]Android导入第三方静态库.a编译成动态库.so
  6. Android(安卓)7 新特性浅析
  7. 如何在电脑上安装模拟器体验Android(安卓)4.0
  8. [Android--Tool][INSTALL_FAILED_INSUFFICIENT_STORAGE]问题及解
  9. Android(安卓)Studio 1.0 (稳定版) 完全攻略

随机推荐

  1. Android如何使用selector设置RelativeLay
  2. Android的数据存储方式
  3. Android(安卓)max17044平台驱动注册
  4. Android中内容观察者的使用---- ContentO
  5. Android(安卓)Glide设置图片圆角,亲测有效
  6. Android三种实现定时器的方法
  7. android listView 滚动加载显示
  8. android 获得 View
  9. Android实现简单计算器源码
  10. [android]system.img文件的打包和解包