最近在做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选上

32位ubuntu10.04编译Android4.0.1内核_第1张图片

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

32位ubuntu10.04编译Android4.0.1内核_第2张图片

退出时选择yes

32位ubuntu10.04编译Android4.0.1内核_第3张图片

最后在shell中执行make命令:

make


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








更多相关文章

  1. (连载)Android 8.0 : 系统启动流程之Linux内核
  2. Android系统信息获取 之十三:Linux内核版本信息获取
  3. Android系统和linux内核的关系详解
  4. Android模拟器学framework和driver之battery & backlight-----3.
  5. 通过ADB命令实现App的安装、卸载、覆盖
  6. Android最快的模拟器Genymotion试用小结
  7. Android dumpSys命令用法总结

随机推荐

  1. android 实现自定义隐藏式菜单
  2. Mac版的Android Eclipse识别安卓真机
  3. Android 平板电脑的判断方法
  4. git使用教程二 远程仓库操作
  5. Android 手机端与服务端POST数据交互类
  6. 构建更好的应用--Xamarin平台
  7. Android SQLite 抽象出CRUD操作工具类
  8. Android RectF类的构造函数参数说明
  9. Android5.0以太网流程源码情景分析
  10. Android(安卓)USB\HDMI等事件监听