开发环境
- ubuntu16.04
- petalinux 2018.2(ubuntu16.04)
- vivado 2018.2(windows11)
- ZYNQ型号:ZYNQ 7020
制作步骤
整体步骤与镜像制作步骤相似,只不过需要将文件系统类型更改为JFFS2,并将rootfs重新打包。
镜像制作流程请见:使用petalinux工具制作ZYNQ linux系统启动镜像
本文只介绍文件系统类型为JFFS2时差异化的部分。
差异点一:更改文件系统类型
在petalinux-config阶段,需要将文件系统类型从默认的INITRAMFS更改为JFFS2。
- Image Packaging Configuration ---> Root filesystem type (INITRAMFS) ---> 选择JFFS2
然后将新增项jffs2 erase block size(KByte) (jffs2 erase block size: 8Kib)修改为64Kib。
修改后的效果图如下:

差异点二:更改flash分区设置
在petalinux-config阶段,需要为flash增加jffs2分区。具体分区大小根据自己的实际flash大小。本例设置为8M。如下图所示:

保存后退出。
差异点三:更改内核配置
在petalinux-config后,使用petalinux-config -c kernel命令单独配置一下内核。
- Device Drivers ---> Memory Technology Device (MTD) support ---> SPI-NOR device support ---> Use small 4096 B erase sectors,将此项改为exclude状态,即未选中状态。
保存后退出。
差异点四:重新打包文件系统镜像
在petalinux-build之后,打包BOOT.bin之前,进入petalinux项目根目录/images/linux
目录,
mkdir rootfs
tar -xf rootfs.tar.gz -C rootfs
mkfs.jffs2 --root=rootfs --eraseblock=0x10000 -p -o rootfs.jffs2
即按照64KB块大小将文件系统重新打包,这样才能和前述设置的flash擦除块大小对应。
差异点五:打包BOOT.bin
使用以下命令打包系统镜像(偏置大小根据自己镜像计算,本例中为0xfa0000):
petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --u-boot --kernel --add rootfs.jffs2 --offset 0x00fa0000 --force
声明:
本文采用
BY-NC-SA
协议进行授权,如无注明均为原创,转载请注明转自
SigmaPoet
本文地址: 使用petalinux制作JFFS2文件系统
本文地址: 使用petalinux制作JFFS2文件系统