How to create your own distribution

Applicable for STM32MP13x lines, STM32MP15x lines

1 Article purpose[edit]

The purpose of this article is to describe the basic steps required to create your own distribution.

2 Prerequisites[edit]

OpenSTLinux distribution must be installed and into the board Flash memory(ies).

3 Creating your own distribution[edit]

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[edit]

Please read the How to create a new open embedded layer article.

3.2 Creating the distribution configuration file[edit]

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[edit]

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
└── [...]

3.4 Adding more to the layer if necessary[edit]

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[edit]

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[edit]