首先声明: 本人未能测试此方法的完全可行性!
由于本人也是初学者,经过多天的分析试验,移植一个标版的YAFFS至2.4 内核,没有找到具体的操作;
所以本人另找了一个方法:
1,条件: 有一个支持YAFFS文件系统的内核2.4版本
有目标板所需的内核树,当然也是2.4版本的
2,将带有YAFFS文件系统的内核解压,把FS/YAFFS 目录拷至目标内核树同级目录下
3,修改FS 目录下的Makefile 文件, 加入subdir-$(CONFIG_YAFFS_FS) += yaffs
4,修改FS 目录下的Config.in 文件, 在适当的位置加入 tristate 'YAFFS FS support' CONFIG_YAFFS_FS
5,配置并编译内核
6,测试内核,cat /proc/filesystems
应该会在下面出现 yaffs 。并可以用mount -t yaffs /dev/xxx /mnt 挂载想要挂载的分区。
以上步聚本人测试过, 有YAFFS文件系统的内核版本是2.4.18 , 需要YAFFS文件系统支持的版本是2.4.20。
仍存在的问题:
1,本人水平有限,现还没能编译通过mkyaffs 及mkyaffsimage 工具,所以现没有合适的文件系统映象
和烧写NAND FLASH 的工具,没办法测试。
2,上述步骤完成以后,我用mount -t /yaffs /dev/mtdblock/7 /mnt/ide/ 成功挂载后,不能向/mnt/ide 目录写入文件
我的分析原因是: 此NAND FLASH 以前用JFFS2 文件系统管理,JFFS2文件系统只管理第块的512个字节,而
NAND FLASH 每块的后16个字节没做处理;现在以YAFFS 文件系统管理它时,文件系统会发现后16个字节都为
FF ;所以认为它是坏块,写入文件时就会提示:Cannot allocate memory 。(以上分析为个人意见,还请高人指正)
3,如果2 里分析正确,则我们要真正实现YAFFS文件系统管理NAND FLASH 必须要做两点: 第一,要做一个
YAFFS 文件系统(那就要把mkyaffsimage 工具准备好),然后还要找到一个合适的(或是自己写一个) NAND FLASH
烧写工具,这个烧写工具将能实现NAND FLASH后16个字节的烧写。
4,还请达人传授小弟一些经验和方法, 在此谢过!
用户725477 2009-2-18 15:12
用户313295 2007-9-10 21:08