mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00
base/kernel: Support zstd-compressed squashfs and cpio initramfs
Enable zstd PACKAGECONFIG knob for squashfs-tools and add support for zstd compressed initramfs and squashfs. (From OE-Core rev: fa146049eec5f9730781830270cc9dc55a2146f7) Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
3d2904cab5
commit
e492d55d02
|
@ -631,6 +631,10 @@ python () {
|
|||
if path.endswith('.lz4'):
|
||||
d.appendVarFlag('do_unpack', 'depends', ' lz4-native:do_populate_sysroot')
|
||||
|
||||
# *.zst should DEPEND on zstd-native for unpacking
|
||||
elif path.endswith('.zst'):
|
||||
d.appendVarFlag('do_unpack', 'depends', ' zstd-native:do_populate_sysroot')
|
||||
|
||||
# *.lz should DEPEND on lzip-native for unpacking
|
||||
elif path.endswith('.lz'):
|
||||
d.appendVarFlag('do_unpack', 'depends', ' lzip-native:do_populate_sysroot')
|
||||
|
|
|
@ -107,6 +107,7 @@ IMAGE_CMD:squashfs = "mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${
|
|||
IMAGE_CMD:squashfs-xz = "mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs-xz ${EXTRA_IMAGECMD} -noappend -comp xz"
|
||||
IMAGE_CMD:squashfs-lzo = "mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs-lzo ${EXTRA_IMAGECMD} -noappend -comp lzo"
|
||||
IMAGE_CMD:squashfs-lz4 = "mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs-lz4 ${EXTRA_IMAGECMD} -noappend -comp lz4"
|
||||
IMAGE_CMD:squashfs-zst = "mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs-zst ${EXTRA_IMAGECMD} -noappend -comp zstd"
|
||||
|
||||
IMAGE_CMD:erofs = "mkfs.erofs ${EXTRA_IMAGECMD} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.erofs ${IMAGE_ROOTFS}"
|
||||
IMAGE_CMD:erofs-lz4 = "mkfs.erofs -zlz4 ${EXTRA_IMAGECMD} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.erofs-lz4 ${IMAGE_ROOTFS}"
|
||||
|
@ -244,6 +245,7 @@ do_image_squashfs[depends] += "squashfs-tools-native:do_populate_sysroot"
|
|||
do_image_squashfs_xz[depends] += "squashfs-tools-native:do_populate_sysroot"
|
||||
do_image_squashfs_lzo[depends] += "squashfs-tools-native:do_populate_sysroot"
|
||||
do_image_squashfs_lz4[depends] += "squashfs-tools-native:do_populate_sysroot"
|
||||
do_image_squashfs_zst[depends] += "squashfs-tools-native:do_populate_sysroot"
|
||||
do_image_ubi[depends] += "mtd-utils-native:do_populate_sysroot"
|
||||
do_image_ubifs[depends] += "mtd-utils-native:do_populate_sysroot"
|
||||
do_image_multiubi[depends] += "mtd-utils-native:do_populate_sysroot"
|
||||
|
@ -262,10 +264,10 @@ IMAGE_TYPES = " \
|
|||
btrfs \
|
||||
iso \
|
||||
hddimg \
|
||||
squashfs squashfs-xz squashfs-lzo squashfs-lz4 \
|
||||
squashfs squashfs-xz squashfs-lzo squashfs-lz4 squashfs-zst \
|
||||
ubi ubifs multiubi \
|
||||
tar tar.gz tar.bz2 tar.xz tar.lz4 tar.zst \
|
||||
cpio cpio.gz cpio.xz cpio.lzma cpio.lz4 \
|
||||
cpio cpio.gz cpio.xz cpio.lzma cpio.lz4 cpio.zst \
|
||||
wic wic.gz wic.bz2 wic.lzma wic.zst \
|
||||
container \
|
||||
f2fs \
|
||||
|
|
|
@ -576,7 +576,7 @@ fitimage_assemble() {
|
|||
#
|
||||
if [ "x${ramdiskcount}" = "x1" ] && [ "${INITRAMFS_IMAGE_BUNDLE}" != "1" ]; then
|
||||
# Find and use the first initramfs image archive type we find
|
||||
for img in cpio.lz4 cpio.lzo cpio.lzma cpio.xz cpio.gz ext2.gz cpio; do
|
||||
for img in cpio.lz4 cpio.lzo cpio.lzma cpio.xz cpio.zst cpio.gz ext2.gz cpio; do
|
||||
initramfs_path="${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE_NAME}.${img}"
|
||||
echo "Using $initramfs_path"
|
||||
if [ -e "${initramfs_path}" ]; then
|
||||
|
|
|
@ -9,6 +9,7 @@ PROVIDES += "${@ "virtual/kernel" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel
|
|||
DEPENDS += "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc kmod-native bc-native bison-native"
|
||||
DEPENDS += "${@bb.utils.contains("INITRAMFS_FSTYPES", "cpio.lzo", "lzop-native", "", d)}"
|
||||
DEPENDS += "${@bb.utils.contains("INITRAMFS_FSTYPES", "cpio.lz4", "lz4-native", "", d)}"
|
||||
DEPENDS += "${@bb.utils.contains("INITRAMFS_FSTYPES", "cpio.zst", "zstd-native", "", d)}"
|
||||
PACKAGE_WRITE_DEPS += "depmodwrapper-cross"
|
||||
|
||||
do_deploy[depends] += "depmodwrapper-cross:do_populate_sysroot gzip-native:do_populate_sysroot"
|
||||
|
@ -236,7 +237,7 @@ copy_initramfs() {
|
|||
mkdir -p ${B}/usr
|
||||
# Find and use the first initramfs image archive type we find
|
||||
rm -f ${B}/usr/${INITRAMFS_IMAGE_NAME}.cpio
|
||||
for img in cpio cpio.gz cpio.lz4 cpio.lzo cpio.lzma cpio.xz; do
|
||||
for img in cpio cpio.gz cpio.lz4 cpio.lzo cpio.lzma cpio.xz cpio.zst; do
|
||||
if [ -e "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE_NAME}.$img" ]; then
|
||||
cp ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE_NAME}.$img ${B}/usr/.
|
||||
case $img in
|
||||
|
@ -265,12 +266,17 @@ copy_initramfs() {
|
|||
xz -df ${B}/usr/${INITRAMFS_IMAGE_NAME}.$img
|
||||
break
|
||||
;;
|
||||
*zst)
|
||||
echo "zst decompressing image"
|
||||
zstd -df ${B}/usr/${INITRAMFS_IMAGE_NAME}.$img
|
||||
break
|
||||
;;
|
||||
esac
|
||||
break
|
||||
fi
|
||||
done
|
||||
# Verify that the above loop found a initramfs, fail otherwise
|
||||
[ -f ${B}/usr/${INITRAMFS_IMAGE_NAME}.cpio ] && echo "Finished copy of initramfs into ./usr" || die "Could not find any ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE_NAME}.cpio{.gz|.lz4|.lzo|.lzma|.xz) for bundling; INITRAMFS_IMAGE_NAME might be wrong."
|
||||
[ -f ${B}/usr/${INITRAMFS_IMAGE_NAME}.cpio ] && echo "Finished copy of initramfs into ./usr" || die "Could not find any ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE_NAME}.cpio{.gz|.lz4|.lzo|.lzma|.xz|.zst) for bundling; INITRAMFS_IMAGE_NAME might be wrong."
|
||||
}
|
||||
|
||||
do_bundle_initramfs () {
|
||||
|
|
|
@ -17,7 +17,7 @@ S = "${WORKDIR}/git/squashfs-tools"
|
|||
|
||||
EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS}"
|
||||
|
||||
PACKAGECONFIG ??= "gzip xz lzo lz4 lzma xattr reproducible"
|
||||
PACKAGECONFIG ??= "gzip xz lzo lz4 lzma xattr zstd reproducible"
|
||||
PACKAGECONFIG[gzip] = "GZIP_SUPPORT=1,GZIP_SUPPORT=0,zlib"
|
||||
PACKAGECONFIG[xz] = "XZ_SUPPORT=1,XZ_SUPPORT=0,xz"
|
||||
PACKAGECONFIG[lzo] = "LZO_SUPPORT=1,LZO_SUPPORT=0,lzo"
|
||||
|
|
Loading…
Reference in New Issue
Block a user