当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]图解Google Android内核编译教程

Android作为Google公司推出的一款手机开发平台,其本身是基于linux内核的。Google提供的内核源代码中除了linux部分外,有很大一部分是与虚拟处理器Qemu和模拟硬件平台Goldfish相关的。所以如果想将Android移植到实际的硬件平台上需要将这部分代码剥离出来。当然这不是这篇文章的重点,我们现在的目的是要编译出一个可以在模拟器上运行的系统内核.

和标准的Linux开发流程一样,Android平台开发的一个很重要的基础工作就是对其内核的编译和移植。本文结合Android的开发文档以及本人的实践经验,简单介绍了Android内核的编译过程,希望有助于对内核移植感兴趣的开发人员。

工作环境及所需软件包
系统环境:Redhat Linux 9.0
交叉编译器:GNU Toolchain for ARM Processors
其中第一项选择ARM EABI或ARM GNU/Linux,第二项选择IA32 GNU/Linux即可。
 
Android内核源代码: 
Android SDK

 

1.搭建交叉编译环境
1) 安装Android SDK: 将android-sdk_m5-rc14_linux-x86.zip解压缩到适当路径下即可使用。本文将其释放至/usr/local/android_sdk_linux路径下,并将其tools路径添加到PATH中:
$ export PATH=$PATH:/usr/local/android_sdk_linux/tools
2) 安装交叉编译器:将arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 解压缩至/usr/local/arm-2007q3目录下,并将其bin路径添加到PATH中:
$ export PATH=$PATH:/usr/local/arm-2007q3/bin
 
3) 解压缩内核源代码:将linux-2.6.23-android-m5-rc14.tar.gz解压缩,得到kernel文件夹,本文中将其放置在/Android目录下。
2.获取内核编译配置文件
交叉编译环境搭建好后需要得到android的内核编译参数的配置文件,该文件需要从android sdk 中的模拟器中得到。启动android模拟器,然后通过adb得到模拟器中提供的内核配置文件:
$emulator &
$adb pull /proc/config.gz
这时候adb工具会连接模拟器,并从它里面下载一个叫做config.gz的文件到你的当前目录下。将其移动至kernel目录,解压该文件得
到config,将其重命名为.config,这样就可以跳过make config而直接得到Makefile所需要的内核配置文件。
$ gunzip config.gz
$ mv config .config
 [!--empirenews.page--]
3.修改Makefile
首先修改第187行,将CROSS_COMPILE值改为arm-none-linux-gnueabi-,这是我们安装的交叉编译工具链的前缀,修改此处意在告诉make在编译的时候要使用该工具链。
 
然后修改第519、520行,将build id 值注释掉,因为目前版本的android内核不支持该选项。
 
4.开始编译
在kernel目录下执行make:
$ make
除个别警告外编译过程一切顺利,最终在/kernel/arch/arm/boot目录下面生成一个zImage,即为编译好的内核镜像了。
 
 
5.运行该镜像
$emulator -kernel ~/android/kernel/arch/arm/boot/zImage
最终效果如图所示。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

(全球TMT2022年10月13日讯)全球营销衡量与体验管理平台 AppsFlyer 发布《广告平台综合表现报告》第 15 版,对移动广告行业各家媒体渠道进行排名。2022 年上半年,受隐...

关键字: APP ADS GOOGLE BSP

北京2022年10月11日 /美通社/ -- 在四川大凉山深处,有一只"凉山黑鹰"少年篮球队:队员平均年龄12岁,平均身高1米3,球队刚成立时,连个像样的球场都没有。然而,凭着一腔热情和惊人天赋,这只...

关键字: 网络 BSP 内核 腾讯

(全球TMT2022年9月27日讯)新思科技近日宣布推出业内首款基于其ZeBu® EP1硬件仿真系统的硬件仿真与原型验证统一硬件系统,致力为SoC验证和前期软件开发提供更高水平的性能和灵活性。新思科技ZeBu...

关键字: 硬件仿真 新思科技 硬件系统 编译

随着2003年10月安迪鲁宾联合几位朋友创建了Android公司,后来影响众人的智能设备操作系统公司由此而生(2005年被Google收购)。现如今,世界上越来越多的智能终端包括手机、TV、SmartBox和IoT、汽车...

关键字: Android 内核开源

ARM的全称为Advanced RISC Machines,直译为高级精简指令集处理器;RISC即为精简指令集,那么对应的就存在CISC,其为复杂指令集。

关键字: ARM 内核 SoC

上海2022年9月8日 /美通社/ -- 中国家居人齐聚沪上,点亮行业高质量发展之光。9月6日,家居行业盛事——家居产业高质量发展大会暨"月星之夜"在上海月星国际家居生活MALL举行,数百位...

关键字: BSP HID 内核 大赛

(全球TMT2022年9月7日讯)爱立信在与谷歌最近的一次合作中,与生态系统合作伙伴成功展示了爱立信网络基础设施可支持单台Android 13设备上的多个切片,同时满足企业(工作模式)和消费者应用。同时,该演示首次为运...

关键字: Android 爱立信 网络切片 带宽

北京2022年9月7日 /美通社/ -- 网络切片技术可以满足不同的业务需求,是为运营商和企业全方位实现5G价值的关键所在。为更好地发掘5G潜力、实现5G价值,爱立信近日携手谷歌成功展示了灵活性更高的网络切片技术,推动网...

关键字: Android 爱立信 网络切片 RS

42Gears客户可以继续使用MDM套件管理升级过的Android设备 印度班加罗尔, 2022年9月6日 /美通社/ -- 随着谷歌Android 13的最新发布,42G...

关键字: Android RS GE DM

(全球TMT2022年8月29日讯)2022年8月26日,飞书深诺于上海举办了"亮剑起航,破局海外 -- 2022飞书深诺游戏出海高峰会"。飞书深诺推出专注游戏出海的成长平台Meetgames。秉承"开启游戏出海成功新...

关键字: TIKTOK MT GOOGLE

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭