image-base

image v1.1.0

Default image settings and build attributes.

Additional Documentation

Common Attributes

Different image layers are provided to support image generation with a specific footprint while allowing for customisation. Unless otherwise stated, the following apply to all image layers:

Provider

rpi-image-gen uses genimage for creating filesystem images.

Default Partition Size

Each partition image encapsulated in a disk image has a default size. Typically this is 100% of the filesystem that is created and filled, which means there is no headroom if the filesystem is intended to be writable. Customisation of images should involve setting variables governing size accordingly if the default is not suitable. 100% is likely a suitable size if the partition contains a read-only filesystem such as squashfs.

mke2fs.conf

In order to ensure ext filesystems are created consistently, image creation involves genimage using a particular mke2fs.conf. Additional options may be passed to mke2fs via the genimage template.

vfat

When creating FAT filesystems, different options may be passed to mkdosfs(8) by genimage depending on needs.

Sparse Images

Image layers create sparse images by default. Sparse format means filesystem images with lots of empty space can be transferred and written to device storage in a much shorter time using fastboot when compared with primitive tools such as dd. Other utilities such as bmaptool provide a similar much-improved way for storage handling of large images. Because genimage can create sparse images itself, this removes the need to use AOSP tools in the image creation flow.

Warning

Older versions of genimage can be problematic when creating sparse images. For example, genimage v16 currently shipping in Debian Bookworm does not create usable sparse images of vfat filesystems. Raspberry Pi provisioning tools such as rpi-sb-provisioner (https://github.com/raspberrypi/rpi-sb-provisioner) rely on sparse image format, so it is recommended to use the most up-to-date version of genimage as possible.

Relationships

Depends on:

sys-build-base sbom-base target-config artefact-base deploy-base

Required by:

image-rota image-rpios

Requires Provider: device

Configuration Variables

References: IGconf_sys_workroot, IGconf_artefact_version

Declares (prefix: image):

Variable Description Default Validation Policy
IGconf_image_suffix The base suffix of generated raw image(s) img Non-empty string value immediate
IGconf_image_compression Identifier for the compression scheme used when deploying image assets. none Must be one of: none, zstd immediate
IGconf_image_version Version string of generated images. This always maps to the artefact version. ${IGconf_artefact_version} Non-empty string value force
IGconf_image_name The base name for all generated images rpi-${IGconf_image_version} Non-empty string value immediate
IGconf_image_pmap Set the identifier string for the image Provisioning Map (PMAP). The PMAP file defines how the image will be provisioned on the device for which it's intended. The PMAP is part of the Image Description JSON file generated by the build. Providing a PMAP is optional, but is mandatory for provisioning the image using Raspberry Pi tools. <empty> String value (may be empty) lazy
IGconf_image_pmap_schema Image Description PMAP schema for validation ${DIRECTORY}/schemas/provisionmap/v1/schema.json Non-empty string value lazy
IGconf_image_outputdir Location of all image build artefacts. ${IGconf_sys_workroot}/image-${IGconf_image_name} Non-empty string value immediate
IGconf_image_provider Image generation provider genimage Must be one of: genimage lazy
IGconf_image_assetdir Image specific asset location. Use this directory to hold image provider templates, geometry configuration, overlays, etc particular to the image layout. /dev/null Non-empty string value lazy
IGconf_image_pmapfile Full path to the Provisioning Map file. When IGconf_image_pmap is specified, this provides the complete path to the pmap file. If no pmap identifier is set, this variable remains empty. ${IGconf_image_pmap:+${IGconf_image_assetdir}/device/provisionmap-${IGconf_image_pmap}.json} String value (may be empty) lazy

Attributes

File: base/image-base.yaml

Type: static