Difference between revisions of "How to create your own distribution"

[quality revision] [quality revision]
m
m

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
├── openstlinux-x11.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]



==Article purpose==
The purpose of this article is to describe the basic steps required to create your own distribution.<br>


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

==Creating your own distribution==
As recommended in Yocto user manual <ref name="Yocto mega manual"> [https://www.yoctoproject.org/docs/2.46/mega-manual/mega-manual.html#creating-your-own-distribution Yocto Megamanual Creating your own distribution]</ref>, 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''<ref name="Yocto mega manual"/>.  

===Creating a layer for a new distro===
Please read the [[How to create a new open embedded layer]] article.

===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'''

===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:
 {{Highlight|distro}}            
 ├── {{Highlight|include}}  
 │   ├── exception-gplv3.inc
 │   ├── openstlinux.inc
 │   ├── {{HighlightParam|st-default-distro-providers.inc}}
 │   ├── {{HighlightParam|st-default-distro-rules.inc}}
 ├── openstlinux-eglfs.conf
 ├── {{HighlightParam|openstlinux-weston.conf}}
 ├── openstlinux-x11.conf
 └── [...]

===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.'''<br>


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''
...<br>


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''
...<br>


===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

==Reference list==<references />

<noinclude>

{{PublicationRequestId | 8445 | 2018-09-21 | BrunoB}} 
[[Category:How to customize software]]</noinclude>
Line 6: Line 6:
   
 
==Creating your own distribution==
 
==Creating your own distribution==
As recommended in Yocto user manual <ref name="Yocto mega manual"> [https://www.yoctoproject.org/docs/2.4/mega-manual/mega-manual.html#creating-your-own-distribution Yocto Megamanual Creating your own distribution]</ref>, 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.
+
As recommended in Yocto user manual <ref name="Yocto mega manual"> [https://www.yoctoproject.org/docs/2.6/mega-manual/mega-manual.html#creating-your-own-distribution Yocto Megamanual Creating your own distribution]</ref>, 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.