手动编译squashfs 4.3,添加xz压缩支持

squashfs目前最新版本4.3,从这里下载:https://sourceforge.net/projects/squashfs/ 下载后解压。

https://sourceforge.net/projects/lzmautils/files/ 下载xz-5.2.4,解压后,建立一个bin文件夹,然后:

./configure –disable-shared –prefix=/你的绝对路径/xz-5.2.4/bin

make

make install

把编译出来的include、lib两个文件夹复制到squashfs4.3\squashfs-tools目录下面

cd squashfs-tools

修改Makefile  注释掉#GZIP_SUPPORT = 1 去掉注释XZ_SUPPORT = 1 修改COMP_DEFAULT = xz

INCLUDEDIR = -I. -Iinclude #添加-Iinclude

修改下面这一段 ifeq ($(XZ_SUPPORT),1) CFLAGS += -DXZ_SUPPORT MKSQUASHFS_OBJS += xz_wrapper.o UNSQUASHFS_OBJS += xz_wrapper.o LIBS += -llzma -L./lib #添加-L./lib COMPRESSORS += xz endif

make

成功! for example:mksquashfs source1 dest.sqfs -comp xz -b 262144

分析文件系统镜像

unsquashfs -s rootfs_glibc_master_squashfs.img  

Found a valid SQUASHFS 4:0 superblock onrootfs_glibc_master_squashfs.img.

Creation or last append time Sun Nov 5 11:17:38 2017

Filesystem size 9294.89 Kbytes (9.08 Mbytes)

Compression xz      //压缩算法                                    

Block size 65536      // 制作镜像时需要用到的参数

Filesystem is exportable via NFS

Inodes are compressed

Data is compressed

Fragments are compressed

Always-use-fragments option is not specified

Xattrs are compressed

Duplicates are removed

Number of fragments 87

Number of inodes 1271

Number of ids 2

 

制作文件系统镜像 mksquashfs /opt/Hisi/Hi3519/Hi3519V101_SDK_V1.0.2.0 test.sqhfs -b 65536 -comp xz

参考: http://www.cnitblog.com/gouzhuang/archive/2011/10/17/squashfs-lzma.html https://www.squashfs-lzma.org/