免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1062 | 回复: 0
打印 上一主题 下一主题

基于Linux 2.6.27.3内核创建YAFFS文件系统 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-25 23:34 |只看该作者 |倒序浏览
    从网上下载YAFFS2源码,之所以没用YAFFS源码,是因为YAFFS2中的mkyaffs工具更容易创建,直接make即可得到(之后发现此工具有问题)。
1、 将YAFFS编译进入内核。此步只需要用YAFFS2源码中的patch包patch一下内核就OK了。在make menuconfig时,要选中“Lets Yaffs do its own ECC”,如果出现读写错误,就要用flash_eraseall将对应的mtd区擦除一下。如果选择“Use older-style on-NAND data format with pageStatus byte”,则在mount –t yaffs时会出现“yaffs: mtd device has only 8 bytes for tags, need 9”的错误,原因是导致编译时开启了CONFIG_YAFFS_9BYTE_TAGS控制字:
#ifndef CONFIG_YAFFS_9BYTE_TAGS
# define YTAG1_SIZE 8
#else
# define YTAG1_SIZE 9
#endif
2、 此版本的内核中,super_operations结构已经没有put_inode这个变量了,所以在yaffs_fs.c文件中注释掉:
// .put_inode = yaffs_put_inode, //modified by Jacky_Xu @ 2008.10.24
3、 在yaffs_fs.c文件中加入:
extern struct proc_dir_entry proc_root;
    这样,进入内核后cat /proc/filesystems,会出现yaffs,yaffs2两项,说明YAFFS文件系统已经被内核支持。手动挂载:
mount –t yaffs /dev/mtdblock2 /mnt/yaffs
然后读写文件,都正常。复位之后,文件还存在,说明YAFFS文件系统已经可以工作了。
这里,可以把之前用busybox做好的一套rootfs文件包复制到/mnt/yaffs下,再修改内核参数为noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,
让其直接从/dev/mtdblock2挂载YAFFS,这样开机就直接进入了YAFFS的根文件系统之下了!如下:
…….
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
VFS: Mounted root (yaffs filesystem).
Freeing init memory: 148K
init started: BusyBox v1.11.1 (2008-07-13 22:36:35 CST)
starting pid 856, tty '': '/etc/init.d/rcS'
Processing etc/init.d/rc.S
  Mount all
  Start mdev....
****************************************************
              RootFS by NFS, s3c2410
         Created by Jacky Xu @ 2008.7.13
                   Enjoy
****************************************************
starting pid 860, tty '': '-/bin/sh'
Processing /etc/profile
  Set search library path
  Set user path
  Set PS1
All
[root@Jacky /]#
待解决的问题:用mkyaffsimage创建的根文件系统包无法正常使用。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/58780/showart_1335367.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP