jffs2文件系统(Journalling Flash FileSystem Version2)——基于flash的文件系统
一.通过工具mkfs.jffs2制作文件系统
1.制作mkfs.jffs2通过脚本实现,这里用的是我们小组长修改的脚本完成的,步骤如下
1.1安装依赖库
yum install glibc-static zlo-devel zlib-static
1.2执行脚本文件
生成工具mtd-utils-1.4.9/mkfs.jffs2
sudo cp mkfs.jffs2 /usr/bin/ /*拷贝到shell环境变量下的一个路径*/
2.制作jffs2映像文件
在 rootfs(文件夹)所在的目录下:
sudo mkfs.jffs2 -n -s 2048 -e 128KiB -d rootfs -o rootfs.jffs2 --pad=0x1400000
/*
-n Don't add a cleanmarker to every eraseblock
-s Use page size (max data node size) SIZE (default: 4KiB)
-e Use erase block size SIZE (default: 64KiB)
-d Build file system from directory DIR (default: cwd)
-o Output to FILE (default: stdout)
--pad Pad output to SIZE bytes with 0xFF. If SIZE is not specified, the output is padded to the end of the final erase block
要注意,不同的flash, 其page size和block size会不一样
*/
这样就生成文件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
[fl2440@lingyun]# set bkrj 'tftp 30008000 uImage_jffs2.bin;nand erase 100000 f00000;nand write 30008000 100000 800000'
[fl2440@lingyun]# set bootcmd_jffs2 'nand read 30008000 100000 800000;bootm 30008000'
[fl2440@lingyun]# set bootargs_jffs2 'noinitrd root=/dev/mtdblock2 rootfstype=jffs2 init=/linuxrc console=ttyS0,115200'
[fl2440@lingyun]# 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
[fl2440@lingyun]# set bootcmd 'run bootcmd_jffs2'
[fl2440@lingyun]# save
[fl2440@lingyun]# run bkrj
[fl2440@lingyun]# run bjffs2
[fl2440@lingyun]# boot
>: ls -l /dev
lrwxrwxrwx 1 root root 9 Dec 31 17:00 root -> mtdblock2
参考博客:https://www.sfantree.com/rootfs_jffs2/