如何编译Android的kernel,编译Android的kernel
一 下载
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相关推荐
- Android内核开发 Goldfish Linux Kernel编译及安卓虚拟机测试
本文出处: http://blog.csdn.net/leytton/article/details/52736549 1.配置交叉编译环境 作者用的是android-ndk的/交叉编译工具 方法一: ...
- 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// ...
- android 4.4 源码编译,ubuntu12.04(64bit)编译android4.4源码、sdk及kernel
最近闲来无事,就想编译一下android源码折腾折腾.过程还算顺利,编译源码用了近3小时,编译sdk用了近30分钟.关于为什么要编译4.4的源码,而不编译5.0.6.0的源码,一是正好笔记本中有下载好 ...
- Android Linux内核编译调试
对于在Windows上写代码写习惯的人,调试是必不可少的手段,但是转到Android以后,发现调试手段异常简陋,跟Windows简直不是一个级别,特别是Android的内核调试,网上资料也相对较少,不 ...
- Google Android操作系统内核编译图文教程
Google Android操作系统内核编译图文教程 和标准的Linux开发流程一样,Android平台开发的一个很重要的基础工作就是对其内核的编译和移植.本文结合Android的开发文档以及本人的实 ...
- java编译使用androidsdk,详解Android源码的编译
本文将为大家介绍的是如何设置Android源码的编译环境,包括Linux下的配置.主要基于Android 1.0环境,希望对大家了解Android开发有所帮助. 本次编译过程主要参考官方文档(http ...
- android 内核裁剪概述,Android内核的编译与裁剪
概述 如果我们仅仅对Android内核感兴趣,我们可以选择合适的Android内核下载并编译. 可供选择的内核源码有很多版本: $ git clone https://android.googleso ...
- android源码编译1
一.环境说明: 1.liunx系统:Ubuntu12.04 2.jdk:sun-java6-jdk 3.g++4.5 gcc4.5 二.android源码的目录结构 |--Makefile|--bio ...
- Android MTK系统编译与调试命令
命令格式:./maketek [option] [project] [action] [modules] Option: -t ,-tee :输出log信息到当前终端 -o , -opt=- : 编译 ...
- Android源码编译及替换成自己编译的linux内核
/*************************************************************************************************** ...
最新文章
- mysql with语句_MySQL列举数据库(SHOW DATABASES语句)
- NeHe教程Qt实现——lesson07
- ASP.NET2.0通用数据访问类
- beyond compare4过期解决方法_面试必备:缓存穿透、雪崩解决方案及缓存击穿的四种解决方案...
- 使用jenkins实现监控嵌入式设备稳定性之二----脚本部分
- 如何将 winston log 库记录的日志写入 mongo DB 数据库
- 在Ubuntu下设置笔记本外接显示器(双显示器)
- docker php composer 使用_「PHP编程」如何使用Docker制作自己的LNMP/LAMP镜像
- 基于神经网络的文本分类(基于Pytorch实现)
- Java字符串与日期互转
- c语言 自动化办公,办公自动化快捷键大全
- jdk自带压测工具_jstack性能分析工具
- c语言全文件操作函数,C语言文件操作函数大全
- cookie和session笔记
- strcat函数使用中出现的问题
- kuka机器人齿轮箱油_库卡KUKA机器人保养润滑油00-144-898
- java视频生成缩略图_Java中使用ffmpeg生成视频缩略图
- BZOJ1864: [Zjoi2006]三色二叉树
- 将.fits数据转换为.png图像
- Java程序员考研失败后的面试经历,oppo、VIVO、等面经