diff options
| -rw-r--r-- | meta/classes/bootimg.bbclass | 15 | 
1 files changed, 13 insertions, 2 deletions
| diff --git a/meta/classes/bootimg.bbclass b/meta/classes/bootimg.bbclass index 4abe00e944..605edc911e 100644 --- a/meta/classes/bootimg.bbclass +++ b/meta/classes/bootimg.bbclass @@ -136,19 +136,30 @@ build_iso() {  		mkisofs_compress_opts="-r"  	fi +	# Check the size of ${ISODIR}/rootfs.img, use mkisofs -iso-level 3 +	# when it exceeds 3.8GB, the specification is 4G - 1 bytes, we need +	# leave a few space for other files. +	mkisofs_iso_level="" +	rootfs_img_size=`stat -c '%s' ${ISODIR}/rootfs.img` +	# 4080218931 = 3.8 * 1024 * 1024 * 1024 +	if [ $rootfs_img_size -gt 4080218931 ]; then +		bbnote "${ISODIR}/rootfs.img execeeds 3.8GB, using '-iso-level 3' for mkisofs" +		mkisofs_iso_level="-iso-level 3" +	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} \  			$mkisofs_compress_opts \ -			${MKISOFS_OPTIONS} ${ISODIR} +			${MKISOFS_OPTIONS} $mkisofs_iso_level ${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} \ -			$mkisofs_compress_opts ${MKISOFS_OPTIONS} \ +			$mkisofs_compress_opts ${MKISOFS_OPTIONS} $mkisofs_iso_level \  			-eltorito-alt-boot -eltorito-platform efi \  			-b efi.img -no-emul-boot \  			${ISODIR} | 
