1、获取yaffs2源代码:
2、为内核打上 yaffs2 补丁
解压,进入 yaffs2 源代码目录,执行patch-ker.sh给Linux内核打上yaffs2文件系统的补丁:
#cd yaffs2
#./patch-ker.sh c m /root/linux_kernel/linux-2.6.32.2
这里第二个参数我们选择m参数,否则可能出现下面提示,表示执行失败:
[root@localhost yaffs2]# ./patch-ker.sh c /root/linux-test/linux-2.6.32.2
usage: ./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 //注意这一句话,根据自己需要选用第二个参数是m还是s
知识补充,patch-ker.sh命令完成下面三件事:
<1>修改内核文件/fs/Kconfig,增加下面两行(在177行附近):
if MISC_FILESYSTEMS
source "fs/adfs/Kconfig"
source "fs/affs/Kconfig"
source "fs/ecryptfs/Kconfig"
source "fs/hfs/Kconfig"
source "fs/hfsplus/Kconfig"
source "fs/befs/Kconfig"
source "fs/bfs/Kconfig"
source "fs/efs/Kconfig"
source "fs/yaffs2/Kconfig"
source "fs/jffs2/Kconfig"
# UBIFS File system configuration
<2>修改内核文件/fs/Makefile,增加下面两行(在129行附近):
obj-$(CONFIG_GFS2_FS) += gfs2/
obj-$(CONFIG_EXOFS_FS) += exofs/
obj-$(CONFIG_YAFFS_FS) += yaffs2/
<3>在内核文件的fs目录下创建yaffs2子目录,然后复制如下文件:
将yaffs2源码目录下的Makefile.kernel文件复制为内核fs/yaffs2/Makefile文件。
将yaffs2源码目录下的Kconfig文件复制为内核fs/yaffs2/目录下。
将yaffs2源码目录下的*.c、*.h文件(不包括子目录下的文件)复制为内核fs/yaffs2/目录下。
补丁打完后,进入 linux-2.6.32.2/fs 目录,可以看到多了一个 yaffs2 目录。
3、配置Linux支持yaffs2
在 Linux 内核源代码根目录运行:make menuconfig 会弹出图形菜单界面。
移动上下按键找到 File Systems,按回车进入该子菜单再找到"Miscellaneous filesystems"菜单项,按回车进入该子菜单,找到"YAFFS2 file system support",并按空格选中它,这样我们就在内核中添加了 yaffs2文件系统的支持,按"Exit"退出内核配置。
4、制作yaffs2文件系统镜像
参考这篇文章:https://blog.csdn.net/u012577474/article/details/101288968