mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-09 04:11:16 +00:00
image_types_sparse: Pad source image to block size
If the source image's size is not aligned to the sparse image's block size, then conversion will fail with img2simg: libsparse/sparse.cpp:133: int write_all_blocks(sparse_file*, output_file*): Assertion `pad >= 0' failed. This is a bug in img2simg, but an easy way to work around it is to pad the source image ourselves. The default block size of 4096 matches img2simg's default block size. Signed-off-by: Sean Anderson <sean.anderson@seco.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
@@ -1,8 +1,16 @@
|
|||||||
inherit image_types
|
inherit image_types
|
||||||
|
|
||||||
|
# This sets the granularity of the sparse image conversion. Chunk sizes will be
|
||||||
|
# specified in units of this value. Setting this value smaller than the
|
||||||
|
# underlying image's block size will not result in any further space saving.
|
||||||
|
# However, there is no loss in correctness if this value is larger or smaller
|
||||||
|
# than optimal. This value should be a power of two.
|
||||||
|
SPARSE_BLOCK_SIZE ??= "4096"
|
||||||
|
|
||||||
CONVERSIONTYPES += "sparse"
|
CONVERSIONTYPES += "sparse"
|
||||||
CONVERSION_CMD:sparse = " \
|
CONVERSION_CMD:sparse() {
|
||||||
img2simg "${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}" \
|
INPUT="${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
|
||||||
"${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sparse" \
|
truncate --no-create --size=%${SPARSE_BLOCK_SIZE} "$INPUT"
|
||||||
"
|
img2simg "$INPUT" "$INPUT.sparse" ${SPARSE_BLOCK_SIZE}
|
||||||
|
}
|
||||||
CONVERSION_DEPENDS_sparse = "android-tools-native"
|
CONVERSION_DEPENDS_sparse = "android-tools-native"
|
||||||
|
|||||||
Reference in New Issue
Block a user