diff options
author | Jason Wessel <jason.wessel@windriver.com> | 2013-09-17 13:32:18 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-09-30 22:11:56 +0100 |
commit | fde291198386dae7eca868276d5e1a7b069fda58 (patch) | |
tree | 2021d61a9a8c429bb7611bca335c2f22f7cc8c84 /meta/classes | |
parent | 4a0ff9c74dcf41847c23f30616e95f18309e59c1 (diff) | |
download | poky-fde291198386dae7eca868276d5e1a7b069fda58.tar.gz |
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>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/bootimg.bbclass | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/meta/classes/bootimg.bbclass b/meta/classes/bootimg.bbclass index fdd4ea9561..c61c4e985e 100644 --- a/meta/classes/bootimg.bbclass +++ b/meta/classes/bootimg.bbclass | |||
@@ -19,13 +19,15 @@ | |||
19 | 19 | ||
20 | # External variables (also used by syslinux.bbclass) | 20 | # External variables (also used by syslinux.bbclass) |
21 | # ${INITRD} - indicates a filesystem image to use as an initrd (optional) | 21 | # ${INITRD} - indicates a filesystem image to use as an initrd (optional) |
22 | # ${COMPRESSISO} - Transparent compress ISO, reduce size ~40% if set to 1 | ||
22 | # ${NOISO} - skip building the ISO image if set to 1 | 23 | # ${NOISO} - skip building the ISO image if set to 1 |
23 | # ${NOHDD} - skip building the HDD image if set to 1 | 24 | # ${NOHDD} - skip building the HDD image if set to 1 |
24 | # ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional) | 25 | # ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional) |
25 | 26 | ||
26 | do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \ | 27 | do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \ |
27 | mtools-native:do_populate_sysroot \ | 28 | mtools-native:do_populate_sysroot \ |
28 | cdrtools-native:do_populate_sysroot" | 29 | cdrtools-native:do_populate_sysroot \ |
30 | ${@oe.utils.ifelse(d.getVar('COMPRESSISO'),'zisofs-tools-native:do_populate_sysroot','')}" | ||
29 | 31 | ||
30 | PACKAGES = " " | 32 | PACKAGES = " " |
31 | EXCLUDE_FROM_WORLD = "1" | 33 | EXCLUDE_FROM_WORLD = "1" |
@@ -33,6 +35,8 @@ EXCLUDE_FROM_WORLD = "1" | |||
33 | HDDDIR = "${S}/hddimg" | 35 | HDDDIR = "${S}/hddimg" |
34 | ISODIR = "${S}/iso" | 36 | ISODIR = "${S}/iso" |
35 | EFIIMGDIR = "${S}/efi_img" | 37 | EFIIMGDIR = "${S}/efi_img" |
38 | COMPACT_ISODIR = "${S}/iso.z" | ||
39 | COMPRESSISO ?= "0" | ||
36 | 40 | ||
37 | BOOTIMG_VOLUME_ID ?= "boot" | 41 | BOOTIMG_VOLUME_ID ?= "boot" |
38 | BOOTIMG_EXTRA_SPACE ?= "512" | 42 | BOOTIMG_EXTRA_SPACE ?= "512" |
@@ -97,18 +101,32 @@ build_iso() { | |||
97 | install -m 0644 ${STAGING_DATADIR}/syslinux/isolinux.bin ${ISODIR}${ISOLINUXDIR} | 101 | install -m 0644 ${STAGING_DATADIR}/syslinux/isolinux.bin ${ISODIR}${ISOLINUXDIR} |
98 | fi | 102 | fi |
99 | 103 | ||
104 | if [ "${COMPRESSISO}" = "1" ] ; then | ||
105 | # create compact directory, compress iso | ||
106 | mkdir -p ${COMPACT_ISODIR} | ||
107 | mkzftree -z 9 -p 4 -F ${ISODIR}/rootfs.img ${COMPACT_ISODIR}/rootfs.img | ||
108 | |||
109 | # move compact iso to iso, then remove compact directory | ||
110 | mv ${COMPACT_ISODIR}/rootfs.img ${ISODIR}/rootfs.img | ||
111 | rm -Rf ${COMPACT_ISODIR} | ||
112 | mkisofs_compress_opts="-R -z -D -l" | ||
113 | else | ||
114 | mkisofs_compress_opts="-r" | ||
115 | fi | ||
116 | |||
100 | if [ "${PCBIOS}" = "1" ] && [ "${EFI}" != "1" ] ; then | 117 | if [ "${PCBIOS}" = "1" ] && [ "${EFI}" != "1" ] ; then |
101 | # PCBIOS only media | 118 | # PCBIOS only media |
102 | mkisofs -V ${BOOTIMG_VOLUME_ID} \ | 119 | mkisofs -V ${BOOTIMG_VOLUME_ID} \ |
103 | -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso \ | 120 | -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso \ |
104 | -b ${ISO_BOOTIMG} -c ${ISO_BOOTCAT} -r \ | 121 | -b ${ISO_BOOTIMG} -c ${ISO_BOOTCAT} \ |
122 | $mkisofs_compress_opts \ | ||
105 | ${MKISOFS_OPTIONS} ${ISODIR} | 123 | ${MKISOFS_OPTIONS} ${ISODIR} |
106 | else | 124 | else |
107 | # EFI only OR EFI+PCBIOS | 125 | # EFI only OR EFI+PCBIOS |
108 | mkisofs -A ${BOOTIMG_VOLUME_ID} -V ${BOOTIMG_VOLUME_ID} \ | 126 | mkisofs -A ${BOOTIMG_VOLUME_ID} -V ${BOOTIMG_VOLUME_ID} \ |
109 | -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso \ | 127 | -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso \ |
110 | -b ${ISO_BOOTIMG} -c ${ISO_BOOTCAT} \ | 128 | -b ${ISO_BOOTIMG} -c ${ISO_BOOTCAT} \ |
111 | -r ${MKISOFS_OPTIONS} \ | 129 | $mkisofs_compress_opts ${MKISOFS_OPTIONS} \ |
112 | -eltorito-alt-boot -eltorito-platform efi \ | 130 | -eltorito-alt-boot -eltorito-platform efi \ |
113 | -b efi.img -no-emul-boot \ | 131 | -b efi.img -no-emul-boot \ |
114 | ${ISODIR} | 132 | ${ISODIR} |