How to create your own distribution
1 Article purpose
The purpose of this article is to describe the basic steps required to create your own distribution.
OpenSTLinux distribution must be installed and into the board Flash memory(ies).
3 Creating your own distribution
As recommended in Yocto user manual , 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.
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:
PC $> source layers/openembedded-core/oe-init-build-env PC $> bitbake-layers add-layer ../layers/meta-openembedded/meta-oe PC $> bitbake-layers add-layer ../layers/meta-openembedded/meta-python PC $> bitbake-layers add-layer ../layers/meta-st/meta-st-stm32mp PC $> bitbake core-image-base or bitbake core-image-minimal
4 Reference list