天天看点

jffs2文件系统的制作和移植

    jffs2文件系统(Journalling Flash FileSystem Version2)——基于flash的文件系统

一.通过工具mkfs.jffs2制作文件系统

1.制作mkfs.jffs2通过脚本实现,这里用的是我们小组长修改的脚本完成的,步骤如下

1.1安装依赖库

yum install glibc-static zlo-devel zlib-static

1.2执行脚本文件

jffs2文件系统的制作和移植

生成工具mtd-utils-1.4.9/mkfs.jffs2

sudo cp mkfs.jffs2 /usr/bin/        

2.制作jffs2映像文件

在 rootfs(文件夹)所在的目录下:

sudo mkfs.jffs2 -n -s 2048 -e 128KiB -d rootfs -o rootfs.jffs2 --pad=0x1400000

这样就生成文件rootfs.jffs2(映像文件)

3.添加内核支持

vt100

make menuconfig

File systems  --->
Miscellaneous filesystems  --->
<*> Journalling Flash File System v2 (JFFS2) support
           (0)   JFFS2 debugging verbosity (0 = quiet, 2 = noisy)
           [*]   JFFS2 write-buffering support
           [ ]   JFFS2 summary support (EXPERIMENTAL) 
           [ ]   JFFS2 XATTR support (EXPERIMENTAL) 
           [ ]   Advanced compression options for JFFS2 
           

4.u-boot环境下操作

[[email protected]]# set bkrj 'tftp 30008000 uImage_jffs2.bin;nand erase 100000 f00000;nand write 30008000 100000 800000'

[[email protected]]# set bootcmd_jffs2 'nand read 30008000 100000 800000;bootm 30008000'

[[email protected]]# set bootargs_jffs2 'noinitrd root=/dev/mtdblock2 rootfstype=jffs2 init=/linuxrc console=ttyS0,115200'

[[email protected]]# set bootargs 'noinitrd root=/dev/mtdblock2 rootfstype=jffs2 init=/linuxrc console=ttyS0,115200'

/*参数说明

noinitrd: 当你没有使用ramdisk启动系统的时候,你需要使用noinitrd这个参数

root:用来指定rootfs的位置

rootfstype:指明文件系统的类型

init:init指定的是内核启起来后,进入系统中运行的第一个脚本,一般init=/linuxrc

console=ttyS0,115200:表示串口使用COM1,波特率为115200

[[email protected]]# set bootcmd 'run bootcmd_jffs2'

[[email protected]]# save

[[email protected]]# run bkrj

[[email protected]]# run bjffs2

[[email protected]]# boot

>: mount

rootfs on / type rootfs (rw)

/dev/root on / type jffs2 (rw,relatime)

proc on /proc type proc (rw,relatime)

tmpfs on /tmp type tmpfs (rw,relatime)

tmpfs on /dev type tmpfs (rw,relatime)

sysfs on /sys type sysfs (rw,relatime)

devpts on /dev/pts type devpts (rw,relatime,mode=600)

>: ls -l /dev

lrwxrwxrwx    1 root     root             9 Dec 31 17:00 root -> mtdblock2

参考博客:https://www.sfantree.com/rootfs_jffs2/