免费注册 查看新帖 |

Chinaunix

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

嵌入应用:如何制作和使用Jffs2文件系统 [复制链接]

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

本文主要介绍如何在AT91SAM9261EK板子上制作和使用jffs2文件系统,使用的是linux-2.6.21内核。
首先配置MTD
$ make menuconfig
进入 Memory Technology Devices (MTD) --->
       Memory Technology Device (MTD) support
      
  • Debugging
          
  • MTD partitioning support
          
  •   Command line partition table parsing
          
  • Direct char device access to MTD devices
          
  • Caching block device access to MTD devices
           RAM/ROM/Flash chip drivers ----->
               Detect non-CFI AMD/JEDEC-compatible flash chips
               Support for AMD/Fujitsu flash chips
           Mapping drivers for chip access --->
               
  • Support non-linear mappings of flash chips
           Self-contained MTD device drivers --->
               
  • Support for AT45... DataFlash
           NAND Flash Device Drivers ---->
               
  • NAND Device Support
               
  • Support for NAND Flash /SmartMedia on AT91
                         
          File systems ---->
              Second extended fs support
             
  • Inotify file change notification support
             
  • Inotify support for user space
              Filesystem in Userspace support
             Miscellaneous filesystems
               Journalling Flash File System v2 (JFFS2) support
             
  • JFFS2 write-buffering support
               Compressed ROM file system support (cramfs)
    以上配置中没有列出的,都没选;其配置仅做参考,可根据自己的需要自行配置。
    $ make all
    其次制作mtd-util工具
    从网上下载zlib-1.2.3.tar.gz 解压缩 $ cd zlib-1.2.3
    $ ./configure –prefix=/usr/local/arm/3.4.1/arm-linux --shared
    修改Makefile如下:
    CC=arm-linux-gcc
    LDSHARED=arm-linux-ld -shared
    $ make all
    $ make install
    注重:这里是安装在/usr/local/arm/3.4.1/arm-linux目录下
    由于交叉编译mtd工具时需要zlib.h文件,所以在编译之前先安装zlib库文件。
    从网上下载 mtd-snapshot-20050519.tar.bz2 解压缩 $ cd mtd/util
    修改该目录下的Makefile:
    CROSS=arm-linux-
    $ make all
    然后将该目录下生成的 flash_erase,flash_eraseall, mkfs.jffs2工具放在ramdisk 文件系统中(我这里放在/bin目录下),另外在 ramdisk文件系统的dev目录下要保证有mtd0~mtd9,mtdblock0~mtdblock9这些设备,假如没有可参考 ramdisk文件系统的制作,也可从pc机相同目录下拷贝,要加上文件属性。
    另外,需要将/arm-linux/lib目录下的libz.so, libz.so.1, libz.so.1.2.3文件拷贝到ramdisk文件系统的/lib目录下,否则mkfs.jffs2工具不能使用。
    最后将新生成的uImage和ramdisk文件下载到板子上,起动系统,使用命令 cat /proc/mtd 可以看到
    dev: size erasesize name
    mtd0: 00040000 00020000 "Partition 1"
    mtd1: 0ffc0000 00020000 "Partition 2"
    mtd2: 00420000 00000210 "spi0.0-AT45DB321x"
    这里mtd0,mtd1是nandflash上的分区; mtd2是dataflsh上的分区,该分区上放有u-boot,uImage.img,ramdisk.img,所以我们这里可以使用空的nandflash上的两个分区。使用之前要先用工具flash_erase或者flash_eraseall擦除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即可,使用结束可使用$ umount /mnt/mtd 卸载.
    假如只是当作普通的jffs2 来使用dataflash或者nandflash,可不必制作 jffs2映像,只需要最后一步,# mount -t jffs2 /dev/mtdblock1 /mnt/mtd即可。


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

    本版积分规则 发表回复

      

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

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP