1. Article purpose
The purpose of this article is to describe the basic steps required to create your own distribution.
2. Prerequisites
OpenSTLinux distribution must be installed and into the board Flash memory(ies).
3. Creating your own distribution
As recommended in Yocto user manual [1], you may create your own distribution in order not to alter any original distribution Metadata, while gaining more control over package alternative selections, compile-time options, and other low-level configurations.
The basic steps for creating a distribution are detailed in the below chapter.
More details can be found in Yocto Mega manual/Creating your own distribution[1].
3.1. Creating a layer for a new distro
Please read the How to create a new open embedded layer article.
3.2. Creating the distribution configuration file
Some configuration examples are provided in ST distribution under: <path of OpenSTLinux distribution delivery>/meta-st/meta-st-openstlinux/conf/distro/*.conf
3.3. Providing miscellaneous variables
Some miscellaneous variable examples are provided under : <path of OpenSTLinux distribution delivery>/meta-st/meta-st-openstlinux/conf/distro/include/st-default-distro*.inc files
All meta-st-openstlinux distro layer configuration files presented above are located here:
distro ├── include │ ├── exception-gplv3.inc │ ├── openstlinux.inc │ ├── st-default-distro-providers.inc │ ├── st-default-distro-rules.inc ├── openstlinux-eglfs.conf ├── openstlinux-weston.conf ├── openstlinux-x11.conf └── [...]
3.4. Adding more to the layer if necessary
More add-on component examples:
- recipes for installing distro-specific configuration files
- any image recipes specific to user distribution
- a psplash append file for a branded splash screen
- any other append files to make custom changes
Some examples of such add-on components can be found in <path of OpenSTLinux distribution delivery>/meta-st/meta-st-openstlinux, you will retrieve some examples of these addons.
ST has already added some recipes (*bbappend) in openstlinux-weston distribution for configuring, patching, ... (non-exhaustive list shown below):
- recipes-benchmark for glmark2
- recipes-connectivity for bluez5
- recipes-core for busybox
- recipes-graphics for weston-init
...
Some other added components (*bb) are more specific: images, system services, ... (non-exhaustive list shown below):
- recipes-core for psplash screen, systemd services
- recipes-samples for example images
- recipes-security for OP-TEE userland part
...
3.5. Use of meta-st-stm32mp with a core image
If you want to use the meta-st-stm32mp layer with a core image (nodistro mode), please apply the following steps to manage the dependencies between layers:
source layers/openembedded-core/oe-init-build-env
bitbake-layers add-layer ../layers/meta-openembedded/meta-oe
bitbake-layers add-layer ../layers/meta-openembedded/meta-python
bitbake-layers add-layer ../layers/meta-st/meta-st-stm32mp
bitbake core-image-base or bitbake core-image-minimal
4. Reference list