Image files will typically contain lots of null blocks and should compress well. This will help with distribution of images over slow network links.
Signed-off-by: Paul Barker <p...@paulbarker.me.uk> --- README | 2 ++ classes/sdcard_image-rpi.bbclass | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/README b/README index db88066..6f947c7 100644 --- a/README +++ b/README @@ -112,6 +112,8 @@ How to use it: IMAGE_FSTYPES = "tar.bz2 ext3.xz rpi-sdimg.xz 2. Overwrite SDIMG_ROOTFS_TYPE in local.conf SDIMG_ROOTFS_TYPE = "ext3.xz" +3. Overwrite SDIMG_COMPRESSION in local.conf + SDIMG_COMPRESSION = "xz" *Accommodate the values above to your own needs (ex: ext3 / ext4). 2.B. Optional - GPU memory: diff --git a/classes/sdcard_image-rpi.bbclass b/classes/sdcard_image-rpi.bbclass index a2fcd52..3ee4e94 100644 --- a/classes/sdcard_image-rpi.bbclass +++ b/classes/sdcard_image-rpi.bbclass @@ -50,6 +50,13 @@ IMAGE_DEPENDS_rpi-sdimg = " \ # SD card image name SDIMG = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.rpi-sdimg" +# Compression method to apply to SDIMG after it has been created. Supported +# compression formats are "gzip", "bzip2" or "xz". The original .rpi-sdimg file +# is kept and a new compressed file is created if one of these compression +# formats is chosen. If SDIMG_COMPRESSION is set to any other value it is +# silently ignored. +#SDIMG_COMPRESSION ?= "" + # Additional files and/or directories to be copied into the vfat partition from the IMAGE_ROOTFS. FATPAYLOAD ?= "" @@ -107,6 +114,19 @@ IMAGE_CMD_rpi-sdimg () { else dd if=${SDIMG_ROOTFS} of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024 \* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync fi + + # Optionally apply compression + case "${SDIMG_COMPRESSION}" in + "gzip") + gzip -k9 "${SDIMG}" + ;; + "bzip2") + bzip2 -k9 "${SDIMG}" + ;; + "xz") + xz -k "${SDIMG}" + ;; + esac } ROOTFS_POSTPROCESS_COMMAND += " rpi_generate_sysctl_config ; " -- 1.8.4 _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto