没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
Android 文件系统移植总结
最近搞 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 写入出错(需仔细查验)
myspor
- 粉丝: 26
- 资源: 75
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0