免费注册 查看新帖 |

Chinaunix

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

制作jffs2文件系统 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-20 16:25 |只看该作者 |倒序浏览


文件:
zlib-1.2.3.tar.gz
大小:
484KB
下载:
下载

文件:
mtd-snapshot-20050519.tar.bz2
大小:
1227KB
下载:
下载
制作mtd-util工具:
从网上下载zlib-1.2.3.tar.gz
http://www.zlib.net/zlib-1.2.3.tar.gz
   
http://down.itlearner.com/soft/2359.shtml
http://www.333171.com/read.php?48
   zlib-1.2.3.tar.gz下载  
http://www.yzmcc.com/soft/sort014/sort035/down-100130.html
  需要先登录
从网上下载 mtd-snapshot-20050519.tar.bz2

http://down1.chinaunix.net/distfiles/mtd-snapshot-20050519.tar.bz2
http://sources.redhat.com/jffs2/
下可以下载到 jffs2的源代码
MTD TOOLS生成成功!
http://blog.csdn.net/hongjiujing/archive/2007/09/21/1794530.aspx
有关jffs2文件系统的问题
http://www.linuxeden.com/forum/viewthread.php?tid=128674
在pc端制作文件系统,通过uboot烧写到开发板,可参考:
在nand flash上实现JFFS2根文件文件系统
http://www.mcuol.com/Tech/216/28699.htm

基本操作摘抄如下:
1.下载MTD工具包
farsight#tar –jxvf mtd-snapshot-20050519.tar.bz2
farsight#cd mtd
farsight#./configure  解压后没有该文件,不知作者怎么做此操作??
farsight#make
farsight#make install
如果系统中没有安装ZLIB库,那么首先安装ZLIB库。具体的安装过程如下:
farsight#tar –zxvf zlib-1.2.3.tar.gz
farsight#cd zlib-1.2.3
farsight#./configure
farsight#make
farsight#make install
完成此步骤后,系统中就有了mkfs.jffs2的工具。
2、制作JFFS2文件镜像
farsight#mkfs.jffs2 -r /source/rootfs -o rootfs.jffs2 -e 0x4000 --pad=0x800000 -n
这样就会生成一个8M大小的rootfs.jffs2的镜像,它也正是JFFS2文件系统的镜像,关于这个命令行里的选项的内容,可以用man a mkfs.jffs2命令来查看内容。
3、设置内核启动参数
   本处用的bootloader是U-BOOT.所以在U-BOOT的命令终端设置如下:
   FS2410#setenv bootargs root=/dev/mtdblock/2 rootfstype=jffs2 rw console=ttySAC0,115200 init=/linuxrc mem=64M
4、配置内核支持JFFS2文件系统
File systems ---> Miscellaneous filesystems --->
  JournallingFlash File System v2 (JFFS2) support
     
  • JFFS2write-bufferingsupport
         
  • AdvancedcompressionoptionsforJFFS2
         
  • JFFS2ZLIBcompressionsupport
         
  • JFFS2RTIMEcompressionsuppor
         
  • JFFS2 RUBIN compression support
    5、下载rootfs.jffs2镜像
       下载到Nand Flash第二个分区。
       FS2410#nand erase 200000 800000
       FS2410#nand write.jffs2 300008000 200000 800000
    通过nfs启动后,在开发板上烧写jffs2文件系统可参考:
    如何制作和使用Jffs2文件系统
    http://blog.csdn.net/hongjiujing/archive/2007/09/21/1794480.aspx
    如何制作和使用jffs2文件系统(转)
    http://blog.chinaunix.net/u1/43093/showart_343469.htmlhttp://blog.chinaunix.net/u1/43093/showart_343
    http://linux.ccidnet.com/art/302/20070720/1150535_1.html
    主要步骤:
    用arm-linux-gcc编译:zlib-1.2.3.tar.gz, mtd-snapshot-20050519.tar.bz2 最后生成在开发板上可以使用的flash_erase,flash_eraseall, mkfs.jffs2工具放在ramdisk 文件系统中,同时复制用到的库文件libz.so, libz.so.1, libz.so.1.2.3;
       擦除nandflash
       # flash_erase /dev/mtd1
       制作jffs2映像
       # cd /var/tmp
       # mkdir jffs2 (jffs2下的目录可以任意建)
       # mkfs.jffs2 –d jffs2/ -o jffs2.img
       # cp /var/tmp/jffs2/jffs2.img /dev/mtdblock1
       最后# mount -t jffs2 /dev/mtdblock1 /mnt/mtd即可。

       如果只是当作普通的jffs2 来使用dataflash或者nandflash,可不必制作 jffs2映像,只需要最后一步
       # mount -t jffs2 /dev/mtdblock1 /mnt/mtd即可。


    其他内容可参考:
    嵌入式Linux下JFFS2文件系统的实现
    http://www.cedn.cn/?action-viewnews-itemid-2268
    基于s3c2440 yaffs2 文件系统的移植
    http://q.163.com/kjava/blog/www_yin/362652432008269461663/#362652432008269461663

    实现过程中遇到的ECC的问题:
    1.把make menuconfig中的
    Device Drivers --->
    Memory Technology Devices (MTD) --->
    NAND Flash Kevice Drivers--->
      
  • S3C2410 NAND Hardware ECC
    选中后,系统不能正常启动;

    2.要把  drivers/mtd/nand/s3c2410.c 的ecc校验:
    chip->eccmod = NAND_ECC_SOFT改为:
    chip->eccmod = NAND_ECC_NONE
    则每次启动时提示:
    Reading data from NAND FLASH without ECC is not recommended
    jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0050e154: 0xfbeb instead
    jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0050e154: 0xfbeb instead
    Further such events for this erase block will not be printed
    Empty flash at 0x0050e280 ends at 0x0050e284
    Empty flash at 0x0050e2d4 ends at 0x0050e2d8
    Reading data from NAND FLASH without ECC is not recommended
    VFS:Mounted root (jffs2 filesystem).
    Mounted devfs on /dev
    Freeing init memory:92K
    Reading data from NAND FLASH without ECC is not recommended
    Reading data from NAND FLASH without ECC is not recommended
    starting pid 17,tty '': '/etc/init.d/rcS'
    Cannot run '/etc/init.d/rcS': No such file or directory
    Reading data from NAND FLASH without ECC is not recommended
    jffs2_get_inode_nodes(): Data CRC failed on node at 0x0068d888: Read 0xf0b01ebl, calculated 0xfd24ef86
    jffs2_get_inode_nodes(): Data CRC failed on node at 0x0050f2c4: Read 0x18e8b547, calculated 0xcdd71ab0
    jffs2_get_inode_nodes(): CRC failed on node at 0x0068e9d4: Read 0xffffffff, calculated 0xb4c178b1
    starting pid 18, Reding data from NAND FLASH without ECC is not recommended
    tty '': '/bin/sh'
    每次执行命令时会提示:
    Reading data from NAND FLASH without ECC is not recommended
    Writing data without ECC to NAND-FLASH is not recommended
    3.不选择[] S3C2410 NAND Hardware ECC;且chip->eccmod = NAND_ECC_SOFT保持不变,则启动时会提示,但进入提示符操作没
    有问题。


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

    本版积分规则 发表回复

      

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

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP