1 Flash闪存类型
任何flash器件的写入操作只能在空或者已擦除的单元进行,在进行写入操作之前需要执行擦除
2 Linux内核中选项配置
2.1 文件系统公共选项:fs/Kconfig
ACL控制:访问控制列表
文件锁:CONFIG_FILE_LOCKING
模块:
通知机制
配额管理:ext2、ext3、reiserfs
自动挂载:CONFIG_AUTOFS4_FS
用户态完整的文件系统:CONFIG_FUSE_FS
缓存:Cache
分区类型:Partition Types
2.2 具体文件系统特性选项
CONFIG_YAFFS2_XXX
YAFFS_YAFFS1:是否支持YAFFS1
YAFFS_DOES_ECC:ECC校验
YAFFS_YAFFS2:
YAFFS_AUTO_YAFFS2
YAFFS_ALWAYS_CHECK_CHUNK_ERASED
YAFFS_EMPTY_LOST_AND_FOUND
YAFFS_DISABLE_BLOCK_REFRESHING
YAFFS_DISABLE_BACKGROUND
YAFFS_XATTR
Network FS
CONFIG_NFS_XXX (client)
NFS_COMMON
NFS_ACL_SUPPORT
Version:V3 V4
ROOT_NFS:如果需要使用NFS作为根文件系统,内核必须要设置支持NFS根文件系统
NFS_FSCACHE
NFS_USE_LEGACY_DNS / NFS_USE_KERNEL_DNS
3 内核修剪:文件系统相关
make ARCH=arm menuconfig
内置构建:增加内核镜像文件大小(常用)
模块构建:提供动态加载移除的灵活性
4 yaffs2文件镜像制作
下载yaffs2源码
git clone git://www.aleph1.co.uk/yaffs2
仅需要在utils目录下编译就能得到yaffs2工具
4.1 部分报错
In file included from mkyaffsimage.c:30:0:
yaffs_guts.h