linux文件系统的移植-制作JFFS2文件系统
2012-07-09 12:57
471 查看
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
3、 目标机:FS_S5PC100平台
4、 交叉编译器 arm-cortex_a8-linux-gnueabi-gcc
---------------------------------------------------------------------
二、制作jffs2文件系
1、配置内核支持jffs2文件系统
2、zlib的编译
解压zlib-1.2.3.tar.bz2并进入zlib-1.2.3配置编译安装
3、mtd工具编译
解压mtd-snapshot-20050519.tar.bz2 并进入mtd/util编译安装
这样我们的系统里就有了mkfs.jffs2这个工具了
4、jffs2文件系统镜像制作
5、jffs2文件系统烧写
6、设置u-boot启动参数
重新启动开发板,查看是否成功。
原文链接:/article/6004290.html
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
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并进入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 并进入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
重新启动开发板,查看是否成功。
原文链接:/article/6004290.html
相关文章推荐
- linux文件系统移植和制作(jffs2文件系统)时的错误 /usr/bin/ld: cannot find -lc 改正
- linux文件系统的移植-制作JFFS2文件系统
- linux文件系统的移植-根文件系统制作
- jffs2文件系统制作与移植(二)
- 制作jffs2文件系统 分类: 终端移植_文件系统 2013-07-10 14:36 261人阅读 评论(0) 收藏
- jffs2文件系统制作与移植
- [Linux驱动开发] jffs2 文件系统制作及移植
- jffs2文件系统的制作以及移植
- jffs2文件系统制作与移植(二)
- jffs2文件系统的制作和移植
- Nand flash驱动移植及带硬件Ecc的Jffs2文件系统制作
- 基于S3C2440的busybox的移植 yaffs根文件系统制作
- 嵌入式根文件系统的移植和制作详解
- 【引用】Linux-2.6.32.2内核在mini2440上的移植(四)---根文件系统制作(1)
- 嵌入式根文件系统的移植和制作详解
- linux-2.6.24.4内核移植到s3c2440----使用busybox-1.9.2制作根文件系统
- linux 内核移植和根文件系统的制作
- NFS文件系统制作与移植
- Linux-2.6.28内核移植及Yaffs文件系统制作 for FL2440(二)
- Linux系统移植实验---根文件系统制作