[OE-core] [PATCH 1/1] image-live.bbclass: Tweak rounding up sector count
Jussi Kukkonen
jussi.kukkonen at intel.com
Fri May 27 08:10:50 UTC 2016
On 27 May 2016 at 11:08, Jussi Kukkonen <jussi.kukkonen at intel.com> wrote:
> 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.
Just to be on the safe side: this patch should _not_ be applied
without the dosfstools upgrade.
- Jussi
> Make sure our sector count is always divisible by sectors-per-track.
>
> Signed-off-by: Jussi Kukkonen <jussi.kukkonen at 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
>
More information about the Openembedded-core
mailing list