New mkdosfs has changed the default sectors-per-track it sets on a new image: This number is useless in our use case but mcopy has sanity checks to make sure image size is an integral number of sectors-per-track.
Make sure our sector count is always divisible by sectors-per-track. Signed-off-by: Jussi Kukkonen <jussi.kukko...@intel.com> --- meta/classes/image-live.bbclass | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/meta/classes/image-live.bbclass b/meta/classes/image-live.bbclass index ea6ced2..9b65753 100644 --- a/meta/classes/image-live.bbclass +++ b/meta/classes/image-live.bbclass @@ -199,14 +199,15 @@ build_fat_img() { FAT_SECTORS=$(expr $(expr $(expr $FAT_BYTES + 511) / 512) \* 2) SECTORS=$(expr $SECTORS + $(expr $DIR_SECTORS + $FAT_SECTORS)) - # Determine the final size in blocks accounting for some padding - BLOCKS=$(expr $(expr $SECTORS / 2) + ${BOOTIMG_EXTRA_SPACE}) + # Determine the final size accounting for some padding + SECTORS=$(expr $SECTORS + $(expr ${BOOTIMG_EXTRA_SPACE} \* 2)) # Ensure total sectors is an integral number of sectors per - # track or mcopy will complain. Sectors are 512 bytes, and we - # generate images with 32 sectors per track. This calculation is - # done in blocks, thus the mod by 16 instead of 32. - BLOCKS=$(expr $BLOCKS + $(expr 16 - $(expr $BLOCKS % 16))) + # track or mcopy will complain. Sectors are 512 bytes, and current + # mkdosfs generates images with 63 sectors per track. Use 2*63 + # as the mod to ensure result is divisible by two. + SECTORS=$(expr $SECTORS + $(expr 126 - $(expr $SECTORS % 126))) + BLOCKS=$(expr $SECTORS / 2) # mkdosfs will sometimes use FAT16 when it is not appropriate, # resulting in a boot failure from SYSLINUX. Use FAT32 for -- 2.1.4 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core