bootimage.bbclass, zisofs-tools-native: add ability to compress ISO images
The mkzftree is needed to allow ISO images to be compressed with minimal runtime overhead. Below is an example of the savings on a core-image-minimal. Before ls -l: 24117248 core-image-minimal-qemux86-64.iso Using the mkzftree ls -l: 16777216 core-image-minimal-qemux86-64.iso (From OE-Core rev: 808d4371939ec48ed62e0c0b6614b96d61b1f7b8) Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Reviewed-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
4a0ff9c74d
commit
fde2911983
|
@ -19,13 +19,15 @@
|
|||
|
||||
# External variables (also used by syslinux.bbclass)
|
||||
# ${INITRD} - indicates a filesystem image to use as an initrd (optional)
|
||||
# ${COMPRESSISO} - Transparent compress ISO, reduce size ~40% if set to 1
|
||||
# ${NOISO} - skip building the ISO image if set to 1
|
||||
# ${NOHDD} - skip building the HDD image if set to 1
|
||||
# ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional)
|
||||
|
||||
do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \
|
||||
mtools-native:do_populate_sysroot \
|
||||
cdrtools-native:do_populate_sysroot"
|
||||
cdrtools-native:do_populate_sysroot \
|
||||
${@oe.utils.ifelse(d.getVar('COMPRESSISO'),'zisofs-tools-native:do_populate_sysroot','')}"
|
||||
|
||||
PACKAGES = " "
|
||||
EXCLUDE_FROM_WORLD = "1"
|
||||
|
@ -33,6 +35,8 @@ EXCLUDE_FROM_WORLD = "1"
|
|||
HDDDIR = "${S}/hddimg"
|
||||
ISODIR = "${S}/iso"
|
||||
EFIIMGDIR = "${S}/efi_img"
|
||||
COMPACT_ISODIR = "${S}/iso.z"
|
||||
COMPRESSISO ?= "0"
|
||||
|
||||
BOOTIMG_VOLUME_ID ?= "boot"
|
||||
BOOTIMG_EXTRA_SPACE ?= "512"
|
||||
|
@ -97,18 +101,32 @@ build_iso() {
|
|||
install -m 0644 ${STAGING_DATADIR}/syslinux/isolinux.bin ${ISODIR}${ISOLINUXDIR}
|
||||
fi
|
||||
|
||||
if [ "${COMPRESSISO}" = "1" ] ; then
|
||||
# create compact directory, compress iso
|
||||
mkdir -p ${COMPACT_ISODIR}
|
||||
mkzftree -z 9 -p 4 -F ${ISODIR}/rootfs.img ${COMPACT_ISODIR}/rootfs.img
|
||||
|
||||
# move compact iso to iso, then remove compact directory
|
||||
mv ${COMPACT_ISODIR}/rootfs.img ${ISODIR}/rootfs.img
|
||||
rm -Rf ${COMPACT_ISODIR}
|
||||
mkisofs_compress_opts="-R -z -D -l"
|
||||
else
|
||||
mkisofs_compress_opts="-r"
|
||||
fi
|
||||
|
||||
if [ "${PCBIOS}" = "1" ] && [ "${EFI}" != "1" ] ; then
|
||||
# PCBIOS only media
|
||||
mkisofs -V ${BOOTIMG_VOLUME_ID} \
|
||||
-o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso \
|
||||
-b ${ISO_BOOTIMG} -c ${ISO_BOOTCAT} -r \
|
||||
-b ${ISO_BOOTIMG} -c ${ISO_BOOTCAT} \
|
||||
$mkisofs_compress_opts \
|
||||
${MKISOFS_OPTIONS} ${ISODIR}
|
||||
else
|
||||
# EFI only OR EFI+PCBIOS
|
||||
mkisofs -A ${BOOTIMG_VOLUME_ID} -V ${BOOTIMG_VOLUME_ID} \
|
||||
-o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso \
|
||||
-b ${ISO_BOOTIMG} -c ${ISO_BOOTCAT} \
|
||||
-r ${MKISOFS_OPTIONS} \
|
||||
$mkisofs_compress_opts ${MKISOFS_OPTIONS} \
|
||||
-eltorito-alt-boot -eltorito-platform efi \
|
||||
-b efi.img -no-emul-boot \
|
||||
${ISODIR}
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
# zisofs-tools-native OE build file
|
||||
# Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
SUMMARY = "A set of tools for iso file compression"
|
||||
DESCRIPTION = "A set of tools for iso file compression"
|
||||
HOMEPAGE = "http://http://freecode.com/projects/zisofs-tools"
|
||||
SECTION = "console/utils"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
|
||||
|
||||
SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/zisofs-tools/zisofs-tools-${PV}.tar.bz2/2d0ed8c9a1f60b45f949b136f9be1f6c/zisofs-tools-${PV}.tar.bz2"
|
||||
|
||||
SRC_URI[md5sum] = "2d0ed8c9a1f60b45f949b136f9be1f6c"
|
||||
SRC_URI[sha256sum] = "ae4e53e4914934d41660248fb59d3c8761f1f1fd180d5ec993c17ddb3afd04f3"
|
||||
|
||||
inherit native
|
||||
|
||||
do_install() {
|
||||
oe_runmake install INSTALLROOT=${D} bindir=${bindir}
|
||||
}
|
Loading…
Reference in New Issue