灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2583回复:0

linux文件系统的移植-制作JFFS2文件系统

楼主#
更多 发布于:2012-08-27 15:07

linux文件系统的移植-制作JFFS2文件系统



JFFS2全名是 Journalling Flash File System Version2,是Redhat公司开发的快闪存储器(简称:闪存;英文: Flash Memory)的档案系统[1],其前身是JFFS, 最早只支援NOR Flash, 自2.6版以后开始支援NAND Flash, 极适合使用于嵌入式系统。
  

JFFS2 功能如下:

支援 NAND flash 装置。

硬连结(Hard links)。这是JFFS 碍于文件格式所无法支援的功能。

压缩。有三种算法: zlib, rubin 以及 rtime.

更佳的效能。
  

缺点:

JFFS2在挂载(mount)时会扫描整个flash 所有的资料,再将档案系统目录储存在system memory, 会线性倍数成长,消耗很多时间。

JFFS2没有write-back机制,不能将资料暂存于缓存(cache), 以致于flash I/O的动作频繁。

JFFS2设计机制过于复杂,程式码不易阅读。
  

一、移植环境:  

1、  Ubuntu 10.10发行版

2、  u-boot.bin http://download.csdn.net/detail/baby_afu/4412826

3、  目标机:FS_S5PC100平台

4、  交叉编译器 arm-cortex_a8-linux-gnueabi-gcc

---------------------------------------------------------------------

二、制作jffs2文件系

1、配置内核支持jffs2文件系统



$ make menuconfig



File system --->

  [*] Miscellaneous filesystems --->

    <*> Journalling Flash File System v2 (JFFS2) support



2、zlib的编译

       解压zlib-1.2.3.tar.bz2 http://download.csdn.net/detail/baby_afu/4418294 并进入zlib-1.2.3配置编译安装



$ tar xvf zlib-1.2.3.tar.bz2

$ cd zlib-1.2.3  

$ ./configure

$ make

$ make install



3、mtd工具编译

       解压mtd-snapshot-20050519.tar.bz2 http://download.csdn.net/detail/baby_afu/4418298并进入mtd/util编译安装



$ tar xvf  mtd-snapshot-20050519.tar.bz2

$ cd mtd/util

$ make

$ make install



       这样我们的系统里就有了mkfs.jffs2这个工具了

4、jffs2文件系统镜像制作



$ mkfs.jffs2 -r /source/rootfs -o rootfs.jffs2 -e 0x4000 --pad=0x800000  -n

$ cp rootfs.jffs2 /tftpboot


5、jffs2文件系统烧写



# tftp 30008000 rootfs.jffs2

# nand erase 500000 800000

# nand write 30008000 500000 800000



6、设置u-boot启动参数



# setenv bootcmd  tftp  33000000 zImage; go 33000000

# setenv bootargs root=/dev/mtdblock2 init=/linuxrc rootfstype=jffs2 rw console=ttySAC0,115200

# savenv

重新启动开发板,查看是否成功。



喜欢0 评分0
游客

返回顶部