您的位置:首页 > 运维架构 > Linux

YAFFS2文件系统搭建与配置(Micro2440 + linux 2.6.39)

2014-07-29 20:28 543 查看

1. YAFFS2文件系统配置

a) YAFFS2源码下载地址

yaffs2-HEAD-4e188b0.tar.gz:http://www.yaffs.net/download-yaffs-using-githttp://pan.baidu.com/s/1jG7OAP4

b) 解压源码

# tar -xvf yaffs2-HEAD-4e188b0.tar.gz -C ./

c) 为内核打YAFFS2补丁

# cd yaffs2-HEAD-4e188b0/

# ./patch-ker.sh c m ../linux-2.6.39/

d) 配置内核

# make menuconfig

File systems --->

[*] Miscellaneous filesystems --->

<*> yaffs2 file system support

e) 编译内核

# make uImage

将生成的内核下载到开发板中运行,使用以下命令可以查看内核支持的文件系统类型,可看到现在内核已经可以支持yaffs、yaffs2文件系统了。

# cat /proc/filesystems

f) 通过mount挂载yaffs2文件系统

# mount -t yaffs2 /dev/mtdblock3 /mnt //挂载文件系统

如下图所示,成功挂载YAFFS2文件系统后,使用ls命令查看mnt目录,里面包含有完善的一个root文件系统,这个文件系统是友善的文件系统,之前一直就保存在NAND中。



2. YAFFS2文件系统映像制作

a) 源码下载

yaffs2-HEAD-4e188b0.tar.gz:http://www.yaffs.net/download-yaffs-using-git

http://pan.baidu.com/s/1jG7OAP4

b) 编译镜像制作工具

# cd yaffs2-HEAD-4e188b0/utils/

# vim Makefile //增编译选项(以下红色字体)

CFLAGS = -O2 -Wall -DCONFIG_YAFFS_UTIL -DCONFIG_YAFFS_DEFINES_TYPES

c) 制作文件系统镜像

# ./mkyaffs2image NFS/ fs.yaffs2

最后发现直接从YAFFS2源码编译的mkyaffs2image工具生成的文件系统映像不能使用,使用友善提供的mkyaffs2image-128M生成的即可。关于mkyaffs2image工具的修改本文档不作说明,可参考网上的教程进行修改。

d) 测试镜像

可通过super vivi的y命令将fs.yaffs2下载到NAND的第三分区,然后使用以下命令挂载mtdblock3至mnt目录,查看mnt目录下是否有一个完整的根文件系统。

# mount -t yaffs2 /dev/mtdblock3 /mnt

e) 通过MTD工具烧写镜像

注意,这些工具不能使用busybox自带的,里面自带的功能不全。

# ./mtd_tools/flash_eraseall /dev/mtd3

# ./mtd_tools/nandwrite -a -o /dev/mtd3 fs.yaffs2

# mount -t yaffs2 /dev/mtdblock3 /mnt

通过mount挂载yaffs2文件系统mtd3分区到/mnt上,可以正常挂载,说明烧写成功。

f) 通过YAFFS2启动根文件系统

现在已经将YAFFS2文件系统烧写到NAND的mtd3分区,可以修改LINUX的启动参数,让YAFFS2文件系统作为LINUX的根文件系统。

进入U-BOOT命令行模式,修改启动参数如下即可。

# setenv bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0 rootfstype=yaffs2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: