diff options
author | Robert Yang <liezhi.yang@windriver.com> | 2015-06-29 20:06:38 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-07-01 15:38:23 +0100 |
commit | a82f62627f79761e1b09b8f54896a9f85a591443 (patch) | |
tree | af1cf30a5f149711e003c2b18776bd0ba647a07d /meta/classes | |
parent | 40cdf918dc2507a1270a4d933b2c2f46a514d6e2 (diff) | |
download | openembedded-core-a82f62627f79761e1b09b8f54896a9f85a591443.tar.gz openembedded-core-a82f62627f79761e1b09b8f54896a9f85a591443.tar.bz2 openembedded-core-a82f62627f79761e1b09b8f54896a9f85a591443.zip |
bootimg.bbclass:hddimg: check the size of rootfs.img for hddimg
The hddimg uses FAT, so the single file size should be less than 4GB,
otherwise errors, check that and error out.
Another way might be use ext2/3/4 rather than FAT, but EFI only supports
FAT, if we make EFI use FAT, and non-EFI use extX, that would the code
very different, which seems not worth.
[YOCTO #6449]
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/bootimg.bbclass | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/meta/classes/bootimg.bbclass b/meta/classes/bootimg.bbclass index 605edc911e..ab1d1bdd33 100644 --- a/meta/classes/bootimg.bbclass +++ b/meta/classes/bootimg.bbclass @@ -249,6 +249,19 @@ build_hddimg() { efi_hddimg_populate ${HDDDIR} fi + # Check the size of ${HDDDIR}/rootfs.img, error out if it + # exceeds 4GB, it is the single file's max size of FAT fs. + if [ -f ${HDDDIR}/rootfs.img ]; then + rootfs_img_size=`stat -c '%s' ${HDDDIR}/rootfs.img` + max_size=`expr 4 \* 1024 \* 1024 \* 1024` + if [ $rootfs_img_size -gt $max_size ]; then + bberror "${HDDDIR}/rootfs.img execeeds 4GB," + bberror "this doesn't work on FAT filesystem, you can try either of:" + bberror "1) Reduce the size of rootfs.img" + bbfatal "2) Use iso, vmdk or vdi to instead of hddimg\n" + fi + fi + build_fat_img ${HDDDIR} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg if [ "${PCBIOS}" = "1" ]; then |