* [Buildroot] [PATCH] support: Allow compression of sdcard.img @ 2017-12-18 13:51 Evgeniy Didin 2018-01-07 23:00 ` Yann E. MORIN 0 siblings, 1 reply; 3+ messages in thread From: Evgeniy Didin @ 2017-12-18 13:51 UTC (permalink / raw) To: buildroot In image files, generated by genimage.sh, there are tens of megabytes most of which might be filled with zeros as partitions are made a bit larger than needed for minimalictic rootfs (which allows users to add more libs and aps later on without messign with partition sizes). So adding an option for genimage.sh script, setting which we gzip image file and greatly reduce it size. Signed-off-by: Evgeniy Didin <didin@synopsys.com> Cc: Alexey Brodkin <abrodkin@synopsys.com> Cc: arc-buildroot at synopsys.com Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- support/scripts/genimage.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/support/scripts/genimage.sh b/support/scripts/genimage.sh index 039b3fef1d..fa00e12855 100755 --- a/support/scripts/genimage.sh +++ b/support/scripts/genimage.sh @@ -1,16 +1,17 @@ #!/usr/bin/env bash +# -g option gzips IMAGE_FILE to reduce it size die() { cat <<EOF >&2 Error: $@ -Usage: ${0} -c GENIMAGE_CONFIG_FILE +Usage: ${0} -c GENIMAGE_CONFIG_FILE -g IMAGE_FILE EOF exit 1 } # Parse arguments and put into argument list of the script -opts="$(getopt -n "${0##*/}" -o c: -- "$@")" || exit $? +opts="$(getopt -n "${0##*/}" -o c:g: -- "$@")" || exit $? eval set -- "$opts" GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" @@ -23,6 +24,9 @@ while true ; do --) # Discard all non-option parameters shift 1; break ;; + -g) + GENIMAGE_NAME="${2}"; + shift 2;; *) die "unknown option '${1}'" ;; esac @@ -38,3 +42,8 @@ genimage \ --inputpath "${BINARIES_DIR}" \ --outputpath "${BINARIES_DIR}" \ --config "${GENIMAGE_CFG}" +if [ ${GENIMAGE_NAME} ] +then +echo ${GENIMAGE_NAME} +gzip < ${BINARIES_DIR}/${GENIMAGE_NAME} > ${BINARIES_DIR}/${GENIMAGE_NAME}.gz +fi -- 2.11.0 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH] support: Allow compression of sdcard.img 2017-12-18 13:51 [Buildroot] [PATCH] support: Allow compression of sdcard.img Evgeniy Didin @ 2018-01-07 23:00 ` Yann E. MORIN 2018-01-10 18:35 ` Alexey Brodkin 0 siblings, 1 reply; 3+ messages in thread From: Yann E. MORIN @ 2018-01-07 23:00 UTC (permalink / raw) To: buildroot Evgeniy, All, On 2017-12-18 16:51 +0300, Evgeniy Didin spake thusly: > In image files, generated by genimage.sh, there > are tens of megabytes most of which might be filled > with zeros as partitions are made a bit larger than > needed for minimalictic rootfs (which allows users to > add more libs and aps later on without messign with > partition sizes). > > So adding an option for genimage.sh script, setting which > we gzip image file and greatly reduce it size. Sorry, I am not in favour if this. Today you're adding gzip compression (and by the way, -g is really unusual for a compresion option, it usually is called -z), but tomorrow someone will want xz compression, then another one will want lzo or lzip or whatever... And then someone will want to add gpg signature and encryption or whatnot... So, in such situation, I would argue that one should provide their post-image script, that does whatever last-minute tweaks on the generated image(s). And by the way, this patch compreses the image, but does not remove the original, so this is actually a loss of space. So I am not in favour of this patch, sorry. Regards, Yann E. MORIN. > Signed-off-by: Evgeniy Didin <didin@synopsys.com> > Cc: Alexey Brodkin <abrodkin@synopsys.com> > Cc: arc-buildroot at synopsys.com > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > --- > support/scripts/genimage.sh | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/support/scripts/genimage.sh b/support/scripts/genimage.sh > index 039b3fef1d..fa00e12855 100755 > --- a/support/scripts/genimage.sh > +++ b/support/scripts/genimage.sh > @@ -1,16 +1,17 @@ > #!/usr/bin/env bash > +# -g option gzips IMAGE_FILE to reduce it size > > die() { > cat <<EOF >&2 > Error: $@ > > -Usage: ${0} -c GENIMAGE_CONFIG_FILE > +Usage: ${0} -c GENIMAGE_CONFIG_FILE -g IMAGE_FILE > EOF > exit 1 > } > > # Parse arguments and put into argument list of the script > -opts="$(getopt -n "${0##*/}" -o c: -- "$@")" || exit $? > +opts="$(getopt -n "${0##*/}" -o c:g: -- "$@")" || exit $? > eval set -- "$opts" > > GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" > @@ -23,6 +24,9 @@ while true ; do > --) # Discard all non-option parameters > shift 1; > break ;; > + -g) > + GENIMAGE_NAME="${2}"; > + shift 2;; > *) > die "unknown option '${1}'" ;; > esac > @@ -38,3 +42,8 @@ genimage \ > --inputpath "${BINARIES_DIR}" \ > --outputpath "${BINARIES_DIR}" \ > --config "${GENIMAGE_CFG}" > +if [ ${GENIMAGE_NAME} ] > +then > +echo ${GENIMAGE_NAME} > +gzip < ${BINARIES_DIR}/${GENIMAGE_NAME} > ${BINARIES_DIR}/${GENIMAGE_NAME}.gz > +fi > -- > 2.11.0 > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH] support: Allow compression of sdcard.img 2018-01-07 23:00 ` Yann E. MORIN @ 2018-01-10 18:35 ` Alexey Brodkin 0 siblings, 0 replies; 3+ messages in thread From: Alexey Brodkin @ 2018-01-10 18:35 UTC (permalink / raw) To: buildroot Hi Yann, On Mon, 2018-01-08 at 00:00 +0100, Yann E. MORIN wrote: > Evgeniy, All, > > On 2017-12-18 16:51 +0300, Evgeniy Didin spake thusly: > > In image files, generated by genimage.sh, there > > are tens of megabytes most of which might be filled > > with zeros as partitions are made a bit larger than > > needed for minimalictic rootfs (which allows users to > > add more libs and aps later on without messign with > > partition sizes). > > > > So adding an option for genimage.sh script, setting which > > we gzip image file and greatly reduce it size. > > Sorry, I am not in favour if this. > > Today you're adding gzip compression (and by the way, -g is really > unusual for a compresion option, it usually is called -z), but tomorrow > someone will want xz compression, then another one will want lzo or lzip > or whatever... Well I'm not sure if the idea behind that move was clearly explained. The point was to generate larger first partition so users may squeeze more stuff there (like splashscreens/logos for U-Boot, larger uImage/zImage or a couple of them even) while keeping smaller footprint of the resulting artifact (sdcard.img.xxx). We were inspired by OpenWrt guys who compress images, see https://downloads.lede-project.org/releases/17.01.4/targets/brcm2708/bcm2710/lede-17.01.4-brcm2708-bcm2710-rpi-3-ext4-sdcard.img.gz as an example. > And then someone will want to add gpg signature and encryption or > whatnot... That's for sure :) > So, in such situation, I would argue that one should provide their > post-image script, that does whatever last-minute tweaks on the > generated image(s). Ok it's OK by me as well. > And by the way, this patch compreses the image, but does not remove the > original, so this is actually a loss of space. Sure, that should be addressed. > So I am not in favour of this patch, sorry. Anyways, thanks for the review! -Alexey ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-01-10 18:35 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-12-18 13:51 [Buildroot] [PATCH] support: Allow compression of sdcard.img Evgeniy Didin 2018-01-07 23:00 ` Yann E. MORIN 2018-01-10 18:35 ` Alexey Brodkin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox