Android移植之文件系统总结

Opendroid原创,转载请注明

参与讨论的朋友请加入qq群81410571

 

最近搞Android移植,文件系统自然是重头戏,移植的绝大多数问题,也都出在这里。这里总结一下一些经验技巧等。
1. 文件系统的结构
   制作Android文件系统,仅需要编译出的root和system两个文件夹即可,不需要data目录,data会在启动过程中自行创建并写入文件。无论选择什么文件系统,这都是可行的。
2. 文件系统的选择
  1)使用nfs的话,最简单,保证网卡驱动和kernel启动参数,另外配置好host上的nfs目录及权限即可。建议有网卡,或者能作usb over ethernet的都先作下nfs启动,方便一些。
  2)真机文件系统。用在nand上的文件系统,自然是jffs2和yaffs。但是Android的平台依赖于文件系统的mmap操作,jffs2并不支持这个操作,故yaffs2更适合。yaffs的麻烦之处在于依赖于nand flash数据块的备用空间。所以烧写等要麻烦些。 测试的话可以通过支持yaffs烧写的bootloader写入,或者用nfs作引。
  3)技巧,其实android需要mmap操作的目录,仅是data目录,所以如果没有烧写yaffs的条件,可以尝试用jffs2作root,以yaffs mount另外一个nand节点为根下的data目录的作法。这个方法能解决yaffs的麻烦。mount的设置,在init.rc里面可以修改。
  4)很多老一点板子,比如2440,都只带64m nand,这个空间是无法支持android的,android大概需要80m左右的空间,kernel+root fs+data(不考虑有人裁减的情况),我们可以选择sd卡来作data分区,mount的方式跟3一样,确保sd/mmc卡你的kernel已经支持即可。
  5)谈到sd,不能不谈谈从sd卡直接启动这一方式,sd卡也是很方便一个载体,因为可以在host上直接通过fdisk,mkfs,cp等命令就可作好。可以选用ext2/ext3等作文件系统(支持mmap),不能用vfat。
我测试过如下方式的启动:
nfs, yaffs2, jffs2(root)+yaffs(data), jffs2(root)+sd ext2(data), sd ext2等 没有括号没有单独mount data目录。
3. 文件系统的调试
  做了这么多,调试方面自然有些经验,一些容易出现的问题是:
  1)nfs权限问题,nfs通信问题(如mtu, blocksize)
  2)启动参数配置问题, ip, serverip, init节点,root fs type等,都有可能是问题所在
  3)init.rc中mount命令的使用,有一条remount成ro的误用
  4)可用空间太少,多出现在data目录的操作
  5)kernel的支持是否开启(初级)
  6)bootloader nand写入出错(需仔细查验)
  等等,想起来再补充。

Opendroid

QQ群:81410571

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值