移植方法:

第一步,我们需要YAFFS2的源码,如果大家有兴趣想了解YAFFS2文件系统的驱动原理的话可以直接去访问他们的官网,地址是www.yaffs2.net,上面说的很详细的,也有源码下载地址,怕大家进去后难找,直接贴出YAFFS2的最新源码地址吧http://www.aleph1.co.uk/gitweb?p=yaffs2.git;a=summary, 直接点击,点最新版本,点击最右边的SNAPSHOT下载,这个是目前最新的YAFFS2的源码了。

第二步,将下载下来的YAFFS2最新源码 YAFFS2.tar.gz 放入你LINUX的任意一个目录下,执行 tar zxvf YAFFS2.tar.gz 然后进入YAFFS2源码包,由于最新的源码再执行脚本 patch-ker.sh 时 有四个参数,可以追加:c,l,m,s,

./patch-ker.sh  c/l m/s kernelpath
 if c/l is c, then copy. If l then link
 if m/s is m, then use multi version code. If s then use single version code

上面这段英文应该很好懂吧,简而言之,C 是复制文件,L是链接文件,M是多种,S是单个的,

那么在这里,我们只需执行 ./patch-ker.sh c m /your linux2.6.39.2 kernel directory

执行完这条命令之后,你将会发现在linux2.6.39.2/fs/下发现有了yaffs2目录了,并且里面也出现了好多文件

root@hewenqiang-ubuntu:/SHARE/linux-2.6.39.2/fs/yaffs2# ls
Kconfig               yaffs_linux.h        yaffs_summary.c
Makefile              yaffs_mtdif1.c       yaffs_summary.h
yaffs_allocator.c     yaffs_mtdif1.h       yaffs_tagscompat.c
yaffs_allocator.h     yaffs_mtdif2.c       yaffs_tagscompat.h
yaffs_attribs.c       yaffs_mtdif2.h       yaffs_trace.h
yaffs_attribs.h       yaffs_mtdif.c        yaffs_verify.c
yaffs_bitmap.c        yaffs_mtdif.h        yaffs_verify.h
yaffs_bitmap.h        yaffs_nameval.c      yaffs_vfs.c
yaffs_checkptrw.c     yaffs_nameval.h      yaffs_yaffs1.c
yaffs_checkptrw.h     yaffs_nand.c         yaffs_yaffs1.h
yaffs_ecc.c           yaffs_nand.h         yaffs_yaffs2.c
yaffs_ecc.h           yaffs_packedtags1.c  yaffs_yaffs2.h
yaffs_getblockinfo.h  yaffs_packedtags1.h  yportenv.h
yaffs_guts.c          yaffs_packedtags2.c
yaffs_guts.h          yaffs_packedtags2.h

说明这个补丁是打成功了,同时,你会发现,在fs目录下的Kconfig 和Makefile文件里也被相应的添加了加入yaffs2的支持信息,好了,到这一步,说明YAFFS2的补丁是打上了。

注:若在make menuconfig中没有出现yaffs2文件系统的支持,请检查MTD的配置,yaffs2依赖于MTD。

04-26 18:02