Android系统移植讲解.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android系统移植讲解整理ppt

android系统移植讲解 茁壮网络股份有限公司 陈华兵 2011-5-16 硬件需求 RAM: 512MB FLASH:256MB CPU:  ARM平台指令集要求 ARM9 Family以上,ARMv5以上指令集, mips平台指令集要求 MIPS32 revision 2 - 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-boot还是fastboot,主要是关于flash分区问题 2、linux kernel 主要涉及到android driver层驱动代码 3、android 系统移植 4、应用程序移植 【后面则详细讲解各个模块的移植过程】 Bootload 一般使用u-boot或者fastboot,主要的工作就是flash分区问题,一般划分为如下几个分区: 1、fastboot 【快速启动,裸板启动区】 2、recovery 【系统恢复分区】 recovery就好比外套,fastboot就好比内裤 3、kernel 【linux内核分区】 4、system 【android核心系统分区】 5、userdata 【用户数据分区】 6、factorydata【工厂数据分区】 linux kernel 由于android系统对于linux kernel的限制,首先是要选定合 适的kernel版本,然后剩下的工作就是整个一个全新的kernel代码,系统移植有三份kernel代码需要集成 1、机顶盒厂商提供的linux源码,包含有针对平台的驱动代码及修改 2、官方网站下载的linux源码,与厂商的版本可能有所不同 3、增加了android linux driver的源码,这部分已经从linux kernel中分离开来,需要单独移植 所以首要的问题是将三份统一到一起,目标是支持 厂商驱动,支持android驱动以及更新到一定 linux内核版本(android driver +sdk driver + linux kernel ) 这部分工作需要深入到linux kernel driver层代码,一定的 技术功底+细心 Kernel移植要点 1、尽可能将硬件平台相关的代码从旧版移植到新版本 2、针对硬件平台相关的代码,以旧版本为主,毕竟旧版的是可以正常运行的版本, 3、非硬件平台相关代码尽量使用新版本 4、若遇到不知如何处理问题,先跳过,记录下该文件及修改点,这部分需要多参考部份原码进行移植 5、对于配置.config文件,需要根据相关功能进行修改及配置,可以从模拟器上拿到config.gz文件解开即可 6、编译及测式,采用nfs挂载根文件系统,一般遇到kernel panic错误时,打开kernel debug,printk加打印,或者disable此功能进行调试 我的移植过程(一) 1、移植boot-loader和linux2.6内核到目标平台上,让linux内核可以启动起来,基本的驱动运行正常 2、修改内核配置文件,打开Android必须的驱动,比如binder,logger,ashemem,pmem等 3、为了提高启动速度,采用ramdisk,将android文件系统的部分内容压缩到内核中 4、根据分区表修改内核启动参数,例如mem=352M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=yaffs2 rw启动的第一个应用程序是/init 5、确保控制台的设置和硬件保持一致,如:硬件上串口用的是UART1,则内核启动参数中设置有console=ttyAMA0 与启动参数中保持一致 我的移植过程(二) 6、修改android源代码system/core/rootdir目录下的init.rc文件,android默认yaffs2文件系统,所以制作system.img也是yaffs2及linux kernel配置成支持yaffs2文件系统,首先将android文件系统修改成可读写 mount rootfs rootfs / rw remount 7、编译busybox将其加入到system中作为命令使用 总结: android的移植按如下流程: 1、android linux内核的普通驱动移植,让内核可以在目标平台上运行起来。 2、正确挂载

文档评论(0)

zyzsaa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档