android系统移植讲解

android系统移植讲解

ID:31995352

大小:372.00 KB

页数:25页

时间:2019-01-30

android系统移植讲解_第1页
android系统移植讲解_第2页
android系统移植讲解_第3页
android系统移植讲解_第4页
android系统移植讲解_第5页
资源描述:

《android系统移植讲解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、android系统移植讲解茁壮网络股份有限公司陈华兵2011-5-16硬件需求RAM: 512MBFLASH:256MBCPU:ARM平台指令集要求ARM9Family以上,ARMv5以上指令集,mips平台指令集要求MIPS32revision2-Little-Endian,O32软件需求Linux2.6以上版本,目前froyo(v2.2)对应于linux2.6.32-linux2.6.35版本,最好是使用android官方网可以下载到的代码【目前linux2.6.23官方网下不了,最低也是linux2.6.25】Android源码移植主要四大模块1、bootload运行起来,无论使用u-b

2、oot还是fastboot,主要是关于flash分区问题2、linuxkernel主要涉及到androiddriver层驱动代码3、android系统移植4、应用程序移植【后面则详细讲解各个模块的移植过程】Bootload一般使用u-boot或者fastboot,主要的工作就是flash分区问题,一般划分为如下几个分区:1、fastboot【快速启动,裸板启动区】2、recovery【系统恢复分区】recovery就好比外套,fastboot就好比内裤3、kernel【linux内核分区】4、system【android核心系统分区】5、userdata【用户数据分区】6、factorydat

3、a【工厂数据分区】linuxkernel由于android系统对于linuxkernel的限制,首先是要选定合适的kernel版本,然后剩下的工作就是整个一个全新的kernel代码,系统移植有三份kernel代码需要集成1、机顶盒厂商提供的linux源码,包含有针对平台的驱动代码及修改2、官方网站下载的linux源码,与厂商的版本可能有所不同3、增加了androidlinuxdriver的源码,这部分已经从linuxkernel中分离开来,需要单独移植所以首要的问题是将三份统一到一起,目标是支持厂商驱动,支持android驱动以及更新到一定linux内核版本(androiddriver+sdk

4、driver+linuxkernel)这部分工作需要深入到linuxkerneldriver层代码,一定的技术功底+细心Kernel移植要点1、尽可能将硬件平台相关的代码从旧版移植到新版本2、针对硬件平台相关的代码,以旧版本为主,毕竟旧版的是可以正常运行的版本,3、非硬件平台相关代码尽量使用新版本4、若遇到不知如何处理问题,先跳过,记录下该文件及修改点,这部分需要多参考部份原码进行移植5、对于配置.config文件,需要根据相关功能进行修改及配置,可以从模拟器上拿到config.gz文件解开即可6、编译及测式,采用nfs挂载根文件系统,一般遇到kernelpanic错误时,打开kernelde

5、bug,printk加打印,或者disable此功能进行调试我的移植过程(一)1、移植boot-loader和linux2.6内核到目标平台上,让linux内核可以启动起来,基本的驱动运行正常2、修改内核配置文件,打开Android必须的驱动,比如binder,logger,ashemem,pmem等3、为了提高启动速度,采用ramdisk,将android文件系统的部分内容压缩到内核中4、根据分区表修改内核启动参数,例如mem=352Mconsole=ttyAMA0,115200root=/dev/mtdblock2rootfstype=yaffs2rw启动的第一个应用程序是/init5、确

6、保控制台的设置和硬件保持一致,如:硬件上串口用的是UART1,则内核启动参数中设置有console=ttyAMA0与启动参数中保持一致我的移植过程(二)6、修改android源代码system/core/rootdir目录下的init.rc文件,android默认yaffs2文件系统,所以制作system.img也是yaffs2及linuxkernel配置成支持yaffs2文件系统,首先将android文件系统修改成可读写mountrootfsrootfs/rwremount7、编译busybox将其加入到system中作为命令使用总结:android的移植按如下流程:1、androidlin

7、ux内核的普通驱动移植,让内核可以在目标平台上运行起来。2、正确挂载文件系统,确保内核启动参数和android源代码system/core/rootdir目录下的init.rc中的文件系统挂载正确。3、调试控制台,让内核启动参数中的console参数以及android源代码system/core/init/init.c中的console_name设置和硬件保持一致4、打开android相关的驱动(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。