一 下载

cd kernel 进入我们刚才创建的kernel文件夹

git branch -avv 查看远程的git 库

我们选择remotes/origin/android-goldfish-2.6.29分支来下载

git checkout -b android-goldfish-2.6.29 remotes/origin/android-goldfish-2.6.29

二 编译kernel代码

设置环境变量

export PATH=$PATH:~/andr-perf/gcc-arm-none-eabi-4_8-2014q3/bin

修改kernel下面的makefile文件,修改

ARCH ?= $(SUBARCH)

CROSS_COMPILE ?=

这两个字段成如下内容:

ARCH ?= arm

CROSS_COMPILE ?= arm-none-eabi-

// 但是对于make goldfish_armv7_defconfig这样编译的内核模拟器好像启动不了,应该是默认编译成v5的,需要改成v7。或者可以改成ndk的编译器

// CROSS_COMPILE ?= /home/kk/andr-perf/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-

开始编译,敲入如下命令

make goldfish_defconfig

或者看arch/arm/configs/目录下有什么,就挑一个make XXX

正式编译,敲入如下命令

make

正式编译成功之后,我们会看到如下文字:

OBJCOPY arch/arm/boot/zImage

Kernel: arch/arm/boot/zImage is ready

三 利用新编译的kernel来启动模拟器

在启动模拟器之前,先设置模拟器的目录到环境变量$PATH中去:

USER-NAME@MACHINE-NAME:~/Android$ export PATH=$PATH:~/android_prj/out/host/linux-x86/bin

设置ANDROID_PRODUCT_OUT环境变量:

USER-NAME@MACHINE-NAME:~/Android$ export ANDROID_PRODUCT_OUT=~/android_prj/out/target/product/generic

同样,如果你的源代码目录不是android_prj,请注意修改下。另外,如果你已经配置了环境变量。则不必如此。建议最好写到配置文件 ~/.bash_rc配置文件里面去。 免得每次都要配置

启动模拟器

一、

cd ~/android_prj 回到源代码目录

sandy@ubuntu:~/android_prj$ emulator -kernel ./kernel/arch/arm/boot/zImage 利用刚才我们编译的kernel内核启动模拟器

二、

emulator -avd myavd -kernel ~/goldfish/arch/arm/boot/zImage

-avd后面的参数 myavd即为模拟器的名字,-kernel后面的参数就找到刚才编译出的内核的路径。

若启动模拟器失败,可尝试关闭后再启动。第一次启动模拟器时可能需要等待比较长的时间,3分钟到15分钟不等。

验证结果

待模拟器启动完毕之后,我们敲入adb shell

第一次会说device offline,不管它,再敲入一遍,就会进入adb 调试

然后cd proc 进入proc目录,cat version

如何编译Android的kernel,编译Android的kernel相关推荐

  1. Android内核开发 Goldfish Linux Kernel编译及安卓虚拟机测试

    本文出处: http://blog.csdn.net/leytton/article/details/52736549 1.配置交叉编译环境 作者用的是android-ndk的/交叉编译工具 方法一: ...

  2. android 单独编译lk,1. 快速编译lk、kernel、vendor命令

    kk: 全编: ./m v28d_v2.1_72kk_qhd_k31_b1b5 eng 单编内核 ./mk kst72_cwet_kk r k bootimage 零.命令解释: make -j8// ...

  3. android 4.4 源码编译,ubuntu12.04(64bit)编译android4.4源码、sdk及kernel

    最近闲来无事,就想编译一下android源码折腾折腾.过程还算顺利,编译源码用了近3小时,编译sdk用了近30分钟.关于为什么要编译4.4的源码,而不编译5.0.6.0的源码,一是正好笔记本中有下载好 ...

  4. Android Linux内核编译调试

    对于在Windows上写代码写习惯的人,调试是必不可少的手段,但是转到Android以后,发现调试手段异常简陋,跟Windows简直不是一个级别,特别是Android的内核调试,网上资料也相对较少,不 ...

  5. Google Android操作系统内核编译图文教程

    Google Android操作系统内核编译图文教程 和标准的Linux开发流程一样,Android平台开发的一个很重要的基础工作就是对其内核的编译和移植.本文结合Android的开发文档以及本人的实 ...

  6. java编译使用androidsdk,详解Android源码的编译

    本文将为大家介绍的是如何设置Android源码的编译环境,包括Linux下的配置.主要基于Android 1.0环境,希望对大家了解Android开发有所帮助. 本次编译过程主要参考官方文档(http ...

  7. android 内核裁剪概述,Android内核的编译与裁剪

    概述 如果我们仅仅对Android内核感兴趣,我们可以选择合适的Android内核下载并编译. 可供选择的内核源码有很多版本: $ git clone https://android.googleso ...

  8. android源码编译1

    一.环境说明: 1.liunx系统:Ubuntu12.04 2.jdk:sun-java6-jdk 3.g++4.5 gcc4.5 二.android源码的目录结构 |--Makefile|--bio ...

  9. Android MTK系统编译与调试命令

    命令格式:./maketek [option] [project] [action] [modules] Option: -t ,-tee :输出log信息到当前终端 -o , -opt=- : 编译 ...

  10. Android源码编译及替换成自己编译的linux内核

    /*************************************************************************************************** ...

最新文章

  1. mysql with语句_MySQL列举数据库(SHOW DATABASES语句)
  2. NeHe教程Qt实现——lesson07
  3. ASP.NET2.0通用数据访问类
  4. beyond compare4过期解决方法_面试必备:缓存穿透、雪崩解决方案及缓存击穿的四种解决方案...
  5. 使用jenkins实现监控嵌入式设备稳定性之二----脚本部分
  6. 如何将 winston log 库记录的日志写入 mongo DB 数据库
  7. 在Ubuntu下设置笔记本外接显示器(双显示器)
  8. docker php composer 使用_「PHP编程」如何使用Docker制作自己的LNMP/LAMP镜像
  9. 基于神经网络的文本分类(基于Pytorch实现)
  10. Java字符串与日期互转
  11. c语言 自动化办公,办公自动化快捷键大全
  12. jdk自带压测工具_jstack性能分析工具
  13. c语言全文件操作函数,C语言文件操作函数大全
  14. cookie和session笔记
  15. strcat函数使用中出现的问题
  16. kuka机器人齿轮箱油_库卡KUKA机器人保养润滑油00-144-898
  17. java视频生成缩略图_Java中使用ffmpeg生成视频缩略图
  18. BZOJ1864: [Zjoi2006]三色二叉树
  19. 将.fits数据转换为.png图像
  20. Java程序员考研失败后的面试经历,oppo、VIVO、等面经

热门文章

  1. AntV G6修改节点label样式
  2. 杂谈:硬件和软件接口选择
  3. group_concat函数详解
  4. 法律意义上可靠的电子签名是如何实现的
  5. 年年flag都倒,年年还立flag的我们多么感人
  6. 10、H3C接入交换机配置管理地址
  7. inn之CTS debug小技巧(1)
  8. IOS11 光标错位问题
  9. 手把手教学51单片机 | 第四节 动态数码管,用6位数码管做一个时钟
  10. 第29讲 常见算法(查找算法、递归算法、排序算法)