Android内核编译
说明:
我这里用的是Android 4.2.2自带的交叉编译工具。如果是使用host系统安装的,我觉得应该也是可以的。但是没有测试过。因为Android源代码已经自带了,所以大多数情况下,不需要再安装host系统的交叉编译工具。
Android自带的交叉编译工具有两套,位于prebuilts/gcc/linux-x86/arm目录下:
1. arm-eabi-4.6
2. arm-linux-androideabi-4.6
两者的区别是:后者比前者新一些,具备一些新的特性。实际测试表明都可以用来编译内核,都可以。似乎是后者更多地用于NDK。而且包含一些针对Android的特定修改。
对于如何编译Android kernel (默认指的是给Android模拟器编译),说明文档位于Android源代码下的
external/qemu/docs/ANDROID-KERNEL.TXT。大家可以参考。
环境准备:
1.将交叉编译工具链的路径加入系统路径中
在~/.bashrc中加入如下语句(具体路径请根据自己实际情况调整):
export PATH=$PATH:~/Android_4.2.2_r1.2/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin
2.重新登录终端或者使用source ~/.bashrc。
3.在命令行下执行 arm-eabi-gcc --version,如果没有出错信息,说明配置完成。
编译:
去google下载最新的kernel代码。假设放在了goldfish目录下,则执行以下命令编译(假设你的模拟器是armv7,你的编译工作站有8个core);
cd goldfish
export CROSS_COMPILE=arm-eabi-
export ARCH=arm
export SUBARCH=arm
make goldfish_armv7_defconfig
make -j8
如果编译过程没有出错,则最后编译出的arch/arm/boot/zImage,就是我们要的kernel,可以用来测试了。
Android内核编译的更多相关文章
- Android学习【Android内核编译流程和错误笔记】
博客:http://blog.csdn.net/muyang_ren Ubuntu14.04 LTS(要求是64位长期支持版LTS) Jdk1.8 内核:android4.0 一:jdk 1.解压jd ...
- Android内核编译步骤
android_4.0.4_tq210$ source build/envsetup.shandroid_4.0.4_tq210$ lunch 5/android_4.0.4_tq210$ make ...
- Android内核的编译和调试
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/70500488 一.Android内核源码的选择 Android手机设备内核源码的调 ...
- 编译Android内核 For nexus 5 以及绕过Android的反调试
本文博客链接:http://blog.csdn.net/qq1084283172/article/details/54880488 前面的博客中已经记录了Nexus 5手机的Android 4.4.4 ...
- Android内核驱动程序的编写和编译过程
注意:涉及的代码为android内核代码而不是android源码. 在智能手机时代,每个品牌的手机都有自己的个性特点.正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非ip ...
- Android内核的编译与测试
1.下载Android内核 source.android.com/source->Downloading and Building Building Kernels 大概要花2个小时,其源码在培 ...
- linux 驱动模块 内核编译环境
目录(?)[+] Linux设备驱动Hello World程序介绍 如何编写一个简单的linux内核模块和设备驱动程序.我将学习到如何在内核模式下以三种不同的方式来打印hello world,这三种方 ...
- [原创]Nexus5 内核编译烧录过程记录
参考Android系统源代码情况分析第二章进行实践,为了提高效率,也为了增加实践机会,使用Nexus5进行内核编译.需要说明的是,Android源代码工程默认是不包含它所使用的Linux内核源码,如果 ...
- Android内核sysfs中switch类使用实例
Android内核sysfs中switch类使用实例 最终在这个周末,能够干点自己想要干的事了. 由我这个二流的内核驱动开发人员来解析一下sysfs中的switch类.先猜測一下来历,在普通的嵌入式L ...
随机推荐
- STL中set和map
set 可以认为是数学上的集合,集合中的元素不允许有重复.set特有的操作是高效的插入.删除和执行基本查找. set的插入方法是 insert,由于集合元素的唯一性,insert操作不一定会成功,in ...
- PHP生成随机或者唯一字符串
本文出至:新太潮流网络博客 /** * [生成随机字符串] * @E-mial wuliqiang_aa@163.com * @TIME 2017-04-07 * @WEB http://blog.i ...
- SQL Server 索引知识-概念
概念篇 索引概念(index concept) 一种表或视图中相关的B-tree的数据结构.索引键列由一列或多列组成.可拥有包含性列(sql2005).用于提升Sql Server 查找相关数据行效率 ...
- 深入理解SVG坐标体系和transformations- viewport, viewBox,preserveAspectRatio
本文翻译自blog: https://www.sarasoueidan.com/blog/svg-coordinate-systems/ SVG元素不像其他HTML元素一样受css盒子模型所制约.这个 ...
- Ajax 请求下载 Execl 文件
通过Ajax请求下载Execl 的问题,掉进一个坑里半个多小时,特此来记录一下 . 起初 我误以为是后台的问题,然而调试了一下并不是这样的,也不会报错,且进入了success 函数. 以下的事件及请 ...
- Oracle重启操作步骤
有时候在服务中重启了oracle之后,数据库并不能正常访问,可以通过以下步骤: 在windows服务中启动数据库服务: 在windows命令窗口中输入命令:sqlplus /nolog 在sql> ...
- 重置 Winsock:初始化计算机网络环境
初始化网络环境,以解决由于软件冲突.病毒原因造成的参数错误问题(复杂网络环境下慎用).批处理代码: netsh winhttp reset proxy netsh winhttp reset trac ...
- JAVA容器全面总结
1 容器体系图 简图: 详图: 2 基础 2.1 Iterator接口 迭代器. 具有的能力:后向迭代.删除. 2.2 Iterable接口 表示一个类具有迭代 ...
- symfony学习笔记1—简介
1.symfony快速入门还是先看代码结构把,这个是拿到代码的第一印象,app/:整个应用的配置,模版,translations,这个可能是多语言文件什么,src/:项目php文件,vendor/:第 ...
- .split("\n") 和 .strip("我是诗人的感叹")
s10='''诗人 学者 作家 # 这里面是有换行 "\n" 的, 要想变成一行, 删除strip不行,要用 split分开,这样就能变成一个列表,里面是各个字 ...