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

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

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

时间: 2024-11-07 09:50:25

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

hi3531 SDK已编译文件系统制作jffs2文件系统镜像并解决问题 .

一, 安装SDK 1.Hi3531 SDK包位置 在"Hi3531_V100R001***/01.software/board"目录下,您可以看到一个 Hi3531_SDK_Vx.x.x.x.tgz 的文件, 该文件就是Hi3531的软件开发包. 2.解压缩SDK包 在linux服务器上(或者一台装有linux的PC上,主流的linux发行版本均可以),使用命令:tar -zxf Hi3531_SDK_Vx.x.x.x.tgz , 解压缩该文件,可以得到一个Hi3531_SDK_Vx.

JFFS2文件系统的移植

Linux文件系统的移植-JFFS2 JFFS2是JFFS的后继者,由Red Hat重新改写而成.JFFS2的全名为JournallingFlash File System Version 2(闪存日志型文件系统第2版),其功能就是管理在MTD设备上实现的日志型文件系统.与其他的存储设备存储方案相比,JFFS2并不准备提供让传统文件系统也可以使用此类设备的转换层.它只会直接在MTD设备上实现日志结构的文件系统.JFFS2会在安装的时候,扫描MTD设备的日志内容,并在RAM中重新建立文件系统结构本

第4阶段——制作根文件系统 (4)

在上节制作busybox后(位于/work/nfs_root/mini_fs), 然后根据以下5个来构建最小根文件系统: (1)/dev/console(终端控制台, 提供标准输入.标准输出以及标准错误) /dev/null  (表示空设备终端, 所有写到这个文件中的数据都会被丢弃掉.) (2)init进程的程序(也就是busybox,因为init程序位于busybox中,已经完成) (3)/etc/inittab(用于init进程读取配置, 然后执行inittab里的指定应用程序) (4)应用

Busybox文件系统的移植

相关软件下载地址:http://pan.baidu.com/s/16yo8Y fsc100开发板 交叉编译器:arm-cortex_a8-linux-gnueabi-gcc busybox-1.17.3.tar.bz2 一.根文件系统制作 1.  源码下载 我们选择的版本是busybox-1.17.3.tar.bz2下载路径为: http://busybox.net/downloads/ 2.  解压源码 $ tar  xvf  busybox-1.17.3.tar.bz2 3.  进入源码目录

linux系统移植和根文件系统制作

1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1  Linux版本 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中: VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 29 EXTRAVERSION = .1 其中的“VERSION”和“PATCHLEVEL”组成主版本号,比如2.4.2.5.

linux 内核移植和根文件系统的制作

1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1  Linux版本 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中: VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 29 EXTRAVERSION = .1 其 中的“VERSION”和“PATCHLEVEL”组成主版本号,比如2.4.2.5

jffs2文件系统制作

内核:                linux-3.0 uboot:             2010.09 开发板:             fl2440 交叉编译器:         2011.11 1.对根文件系统进行修改 无修改 2.添加内核对jffs2的支持 [[email protected] linux-3.0-jffs2]$ vt100[[email protected] linux-3.0-jffs2]$ sudo make menuconfig File systems  

linux分区,磁盘系统的管理,文件系统制作

最近又开始重新拾起linux了,因为工作中用的很少,所以看得东西很容易就忘记了. 这几天看了下linux的分区,以及如何制作文件系统等相关命令的用法,下面就按照这个流程来讲一讲,免得自己日后忘记了. 1.分区 磁盘分区,即指定分区的起始和结束柱面.我们在安装linux系统的时候,都会将磁盘划分为独立的几块,这就是分区,柱面是分区的最小单位,柱面由扇区构成,第一个扇区是最重要的,里面有MBR(446byte)和分区表(64byte),扇区大小固定为512byte. 2.文件系统 文件系统是怎么来的

u-boot移植(十三)---代码修改---支持文件系统及补丁制作

一.烧写文件系统 1.1 jffs2烧写 1.下载文件系统:tftp 30000000 fs_mini_mdev.jffs2 2.擦除文件的块:nand erase.part rootfs 3.烧入文件系统:nand write.jffs2 30000000 0x00260000 5b89a8 4.设置启动参数:set bootargs console=ttySAC0 root=/dev/mtdblock3 rootfstype=jffs2 5.重新启动 这个需要先烧写内核. 1.2 yaffs