The process of getting from source code to an image suitable for loading
into a target device with Apertis is a clearly defined multi-step
process. The initial step is to build the source and package the
resulting artefacts into .deb
packages. For the vast majority of
packages this is already done and provided by Apertis in the package
repositories. This page will not
cover this step of the process an will assume all required packages have
been successfully built and are available in the package repositories.
There are two further steps to generating an image:
- Building an Operating System package (OSpack)
- Combining the OSpack with a Hardware package (HWpack) to create an image
Both the process of building OSpacks and images from them is carried out using Debos. It is strongly recommended to utilise the appropriate Docker image builder container to perform these steps, though the Apertis SDK image running in a VM can be used with reduced reliability.
Building OSpacks
The OSpack is a root file system containing all the generic software for
a particular image type and hardware architecture (e.g. the arm
architecture). Apertis provides stock Debos recipes in the form of
.yaml
files in the
apertis-image-recipes
gitlab repository, with a name of the form apertis-ospack-*.yaml
, each
one providing a different balance of packages for different tasks.
It is best to build these packages images from the appropriate image-builder docker container. This is documented in the apertis-image-recipes README.md.
Building an image with a HWpack
Unlike the OSpack, that is generic, the HWpack contains the bits needed to boot on a specific target. The HWpack configuration typically extracts an OSpack, creates an image containing the required partition layout for the specific hardware, writes the extracted OSpack into it, adds extra components necessary for the target and may perform some tweaks to the image (tweaking configuration files etc). Finally the image is compressed to minimise storage space.
Existing Apertis examples can be found in the Apertis Image Recipes
repository
called apertis-image-*.yaml
. The Debos documentation also provides a
simple example.