[yocto] [PATCH] Gracefully abort if rootfs.img gets to big

akuster808 akuster808 at gmail.com
Mon Mar 30 15:51:18 PDT 2015


Chris,

Should the hardcoded value '4160800000' be a variable so it can be 
overridden?

- armin

On 03/30/2015 01:50 PM, Chris Hallinan wrote:
> See https://bugzilla.yoctoproject.org/show_bug.cgi?id=7541
>
> Current implementation of live image type cannot support image size
> greater than 4GB. If the image gets too large, the build simply
> hangs silently, without any clues or debug output to indicate why.
> This patch prevents the build hanging on rootfs.img getting too big.
>
> ---
>   meta/classes/bootimg.bbclass | 7 +++++++
>   1 file changed, 7 insertions(+)
>
> diff --git a/meta/classes/bootimg.bbclass b/meta/classes/bootimg.bbclass
> index b1c03ba..e143e24 100644
> --- a/meta/classes/bootimg.bbclass
> +++ b/meta/classes/bootimg.bbclass
> @@ -84,6 +84,13 @@ populate() {
>   	fi
>
>   	if [ -n "${ROOTFS}" ] && [ -s "${ROOTFS}" ]; then
> +		ROOTFS_FILE_SIZE=`stat -L -c "%s" ${ROOTFS}`
> +		bbnote "do_bootimg(): rootfs.img size = ${ROOTFS_FILE_SIZE}"
> +		# Actual limit is difficult to determine
> +		# This leaves ~128MiB headroom for initrd and boot files
> +		if [ ${ROOTFS_FILE_SIZE} -gt 4160800000 ]; then
> +			bbfatal "Root fs (rootfs.img) is too big for live image"
> +		fi
>   		install -m 0644 ${ROOTFS} ${DEST}/rootfs.img
>   	fi
>
>



More information about the yocto mailing list