全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

制作JFFS2文件系统

发布时间:2022-12-28 11:48:09
发布人:wjy

  制作 JFFS2 文件系统是通过工具 mkfs.jffs2 将文件系统目录制成映像文件。制作工具 mkfs.jffs2 需要编译 zhb 库和 mtd-utils,下面详细介绍其制作过程。

  1.内核配置MTD驱动支持和JFFS2支持

  我们可以了解 YAFFS2 自带 MTD 驱动,而 JFFS2 文件系统则需要在内核中配 置 MTD 驱动支持。

制作 JFFS2 文件系统176

  内核也必须支持 JFFS2 文件系统。 在编译内核时选择 Device Drivers ---> Memory Technology Device (MTD) support --->, 进入 Memory Technology Device 配置窗口,如图 5.14 所示。 在编译内核时选择 File systems --->Miscellaneous filesystems--->,进入 Miscellaneous filesystems 配置窗口,选择支持 JFFS2 文件系统,如

制作 JFFS2 文件系统429

  2.制作工具mkfs.jffs2

  制作工具 mkfs.jffs2 是用于制作 JFFS2 映像文件。制作 JFFS2 映像文件需要以下两个文件:

制作 JFFS2 文件系统509

  (1)编译安装 zlib 库,用于文件压缩和解压。进入 zlib 的解压目录下,使用 configure命令生成 Makefile。

  # ./configure --prefix=/usr/local/arm/4.4.3/arm-none-linux-gnueabi/libc -shared

  修改生成的 Makefile 如下:

  CC=arm-linux-gcc

  LDSHARED= arm-linux-gcc -shared

  -Wl,-soname,libz.so.1,--version-script,zlib.map

  CPP=arm-linux-gcc –E

  AR=arm-linux-ar

  RANLIB=arm-linux-ranlib

  执行 make 和 make install 进行编译和安装。

  #make

  #make install

  编译和安装完成后在目录/usr/local/arm/4.4.3/arm-none-linux-gnueabi/libc/lib 下会生成 动态和静态库文件 libz.a、libz.so、libz.so.1.2.8 和 libz.so.1。

  (2)编译工具 mtd-utils。进入 mtd-utils 的解压目录,执行 make 进行编译。完成编译后,新生成的工具

  mkfs.jffs2、mkfs.jffs 等在目录/usr/local/jffs_root/tmp/mtd-utils-1.0.0 下。

  # tar jxvf mtd-utils-1.5.0.tar.bz2

  # cd mtd-utils-1.5.0

  # make

  # make install

  将该路径添加到环境变量 PATH 中。

  #PATH=$PATH: /usr/local/jffs_root/tmp/mtd-utils-1.0.0

  (3)制作 JFFS2 映像文件。制作 JFFS2 根文件系统的过程与其他文件系统的过程相同,

  制作 JFFS2 映像文件的命令如下:

  #mkfs.jffs2 -r jffs_root -o jffs_root.jffs2 -e 0x4000 --pad=0x800000 -s 0x200 -n

  各个参数的含义如下所述。

  -r:指定文件系统。

  -o:指定输出的映像文件名。

  -e:擦除块的大小(block size),不同的 flash,其 block size 不一样。

  --pad (-p):指定输出文件的大小,也就是 jffs_root.jffs2 的大小。重要的是, 为 了不浪费 flash 的空间,该值应该符合 flash driver 划分块的大小。

  -n:在每个擦除块中不添加 clreanmarker(消除标志)

  本文摘自《linux系统移植(第2版)》

相关文章

黑石服务器是什么?

黑石服务器是什么?

2023-10-14
Rx和Tx是什么?

Rx和Tx是什么?

2023-10-14
重大应急管理(MME)是什么?

重大应急管理(MME)是什么?

2023-10-14
直播系统使用什么语言编写的?

直播系统使用什么语言编写的?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取