Difference between revisions of "OpenSTLinux distribution"

[quality revision] [quality revision]
m
 

Template:ArticleMainWriter

Template:ArticleApprovedVersion


1 What is the OpenSTLinux distribution?[edit]

The OpenSTLinux distribution, running on the Arm® Cortex®-A processor(s), is a sub-part of the STM32MPU Embedded Software distribution.

OpenSTLinux distribution.png

OpenSTLinux is a Linux® distribution based on the OpenEmbedded build framework.

It includes the following collection of software components:

As explained in the OpenEmbedded article, the files used to build an image are stored in layers that come from different sources, and that are configured for this image.
Only layers specific to the OpenSTLinux distribution (for example the OpenSTLinux Board Support Package layer) are detailed in the Layers chapter below. Community layers referenced in this article are not listed.


The Machines chapter introduces the machine metadata (the information needed to build a kernel for specific target boards), while the Images chapter specifies the images that contain the information needed to build the user space. The Distros chapter describes the available distros configurations.

2 Software architecture overview[edit]

The figure below gives an overview of the OpenSTLinux architecture. You can obtain more details by clicking on one of the sub-levels.

The Linux application frameworks (or Linux user space components) that rely on the OpenSTLinux BSP, mainly come from open-source communities.

OpenEmbedded core components (community layers) combined with STMicroelectronics-specific layers (for example the BSP layer) give a consistent starting point to develop customer applications based on a standardized interface.


OP-TEE overview OP-TEE overview TF-A overview U-Boot overview STM32MP15 Linux kernel overview Boot chains overview OpenSTLinux BSP architecture overview Linux application frameworks overview
OpenSTLinux architecture overview



3 OpenSTLinux concept[edit]

To build an OpenSTLinux based software, a combination of machine, image and distro must be selected.
Available machines, images and distros are listed below.

More information on how to compile and use an OpenSTLinux distribution can be found in the Distribution Package articles available in category:Distribution Package.

3.1 Layers[edit]

This chapter describes the layers developed by STMicroelectonics.


STMicroelectronics' strategy is to organize the layers in order to split BSP descriptions from applications and frameworks.
By doing this, any BSP can be combined with any framework, or no framework at all.

Layer Description
meta-st-stm32mp BSP Layer for stm32mp
meta-st-openstlinux OpenSTLinux layer - framework/image settings

For the detailed content of the layers, please check STM32MP15_OpenSTLinux_release_note#Detailed delivery content

In addition, in OpenSTLinux distribution, a layer (meta-st-stm32mp-addons) has been created to manage STM32CubeMX integration.
If necessary, you can also create your own layer. The procedure to do so is explained in How_to_create_a_new_open_embedded_layer.

Layer Description
meta-st-stm32mp-addons BSP Layer addons for stm32mp (CubeMX Machine)
meta-my-custo-layer framework addons/customization

3.2 Machines[edit]

Machine Description
stm32mp1 Machine configuration for STM32MP1 microprocessor device boards
stm32mp1-eval Machine configuration for STM32MP1 evaluation board
stm32mp1-disco Machine configuration for STM32MP1 disco board

3.3 Images[edit]

Image Description
Official images
st-image-weston OpenSTLinux weston image with basic Wayland support (if enabled in distro)
Supported images
st-image-core OpenSTLinux core image
Images, proposed
Proposed images as example only
st-example-image-qt ST example of image based on QT framework
st-example-image-x11 ST example of image based on X11
st-example-image-xfce ST example of image based on XFCE framework
st-example-image-gtk ST example of image based on GTK framework

3.4 Distros[edit]

For further details on distributions (distros), read "Creating a distribution" [1]

Distro Description
openstlinux-eglfs OpenSTLinux featuring eglfs - no X11, no Wayland
openstlinux-weston OpenSTLinux featuring Weston/Wayland
openstlinux-x11 OpenSTLinux featuring X11
nodistro *** DEFAULT OPENEMBEDDED SETTING : DISTRO is not defined ***

3.5 Reference source code[edit]

The TF-A, U-Boot, OP-TEE and kernel components have been configured by default to use tarball + patches for source code.

If you prefer to use github® as a source code reference, you need to update your local.conf file

Refer to the section ‘Configure STM32MP default version to github’ in local.conf :

# =========================================================================
# Configure STM32MP default version to github
# =========================================================================
#STM32MP_SOURCE_SELECTION_pn-linux-stm32mp = "github"
#STM32MP_SOURCE_SELECTION_pn-optee-os-stm32mp = "github"
#STM32MP_SOURCE_SELECTION_pn-tf-a-stm32mp = "github"
#STM32MP_SOURCE_SELECTION_pn-u-boot-stm32mp = "github"

Then just uncomment the line to switch the component to github® for source code.

4 How to get the software for this distribution[edit]

The OpenSTLinux distribution is available through the three Packages (Starter, Developer, and Distribution) of the STM32MPU Embedded Software distribution.

5 References[edit]

<noinclude>

{{ArticleMainWriter|DenisH}}

{{ArticleApprovedVersion|DenisH| NathalieS, ChristopheM | RomualdJ - 27Feb'18  | Philip S. - 28Jun'18 - 8358| 28Jun'18 }}

[[Category:OpenSTLinux distribution|00]]</noinclude>

==What is the OpenSTLinux distribution?==
The OpenSTLinux distribution, running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A processor(s), is a sub-part of the [[STM32MPU Embedded Software distribution]].
[[File:OpenSTLinux distribution.png|thumb|200px|link=]]

OpenSTLinux is a Linux<sup>&reg;</sup> distribution based on the [[OpenEmbedded]] build framework.<br>


It includes the following collection of software components:
* [[OpenSTLinux BSP architecture overview|OpenSTLinux BSP]] (OP-TEE secure OS, boot chain and Linux kernel)
* Application frameworks such as the following Linux application frameworks (non-exhaustive list):
** [[Wayland Weston overview|Wayland-Weston]] as a display/graphic framework
** [[GStreamer_overview|Gstreamer]] as a multimedia framework
** [[ALSA overview|Advanced Linux Sound Architecture (ALSA)]] libraries

As explained in the [[OpenEmbedded]] article, the files used to build an image are stored in layers that come from different sources, and that are configured for this image. <br>

Only layers specific to the OpenSTLinux distribution (for example the OpenSTLinux Board Support Package layer) are detailed in the [[#Layers|Layers]]  chapter below. Community layers referenced in this article are not listed.
{{ReviewsComments| JLD (product maketing): today:The diagram inludes Yocto while not described into the above comment. That might drive some confusion..Is Yocto included into the distro or not??}}

The [[#Machines|Machines]] chapter introduces the machine metadata (the information needed to build a kernel for specific target boards), while the [[#Images|Images]] chapter specifies the images that contain the information needed to build the user space. The [[#Distros|Distros]] chapter describes the available distros configurations.

==Software architecture overview==
The figure below gives an overview of the [[OpenSTLinux architecture overview|OpenSTLinux architecture]]. You can obtain more details by clicking on one of the sub-levels.<br>


The '''Linux application frameworks''' (or Linux user space components) that rely on the [[OpenSTLinux BSP architecture overview|OpenSTLinux BSP]], mainly come from open-source communities.

OpenEmbedded core components (community layers) combined with STMicroelectronics-specific layers (for example the BSP layer) give a consistent starting point to develop customer applications based on a standardized interface.

{{:OpenSTLinux architecture overview}}

==OpenSTLinux concept==

To build an OpenSTLinux based software, a combination of machine, image and distro must be selected.<br>

Available machines, images and distros are listed below.

More information on how to compile and use an OpenSTLinux distribution can be found in the '''Distribution Package''' articles available in [[:category:Distribution Package]].

===Layers===
This chapter describes the layers developed by STMicroelectonics.
{{ReviewsComments| JLD (product marketing): Today: I think there is a different hirarchy to take into account between Layers / machine & image & distro... Machine should not be 3.1.1, image 3.1.2 etc..}}

STMicroelectronics' strategy is to organize the layers in order to split BSP descriptions from applications and frameworks.<br>

By doing this, any BSP can be combined with any framework, or no framework at all.

{| class="st-tablewikitable" style="text-align: left; "
|-
!   border-style: solid; border-width: 3px; border-color:#00C0FF"
|-
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center"| Layer
!   style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center"| Description
|-
| meta-st-stm32mp || BSP Layer for stm32mp
|-
| meta-st-openstlinux || OpenSTLinux layer - framework/image settings
|}

For the detailed content of the layers, please check [[STM32MP15_OpenSTLinux_release_note#Detailed delivery content]]

In addition, in OpenSTLinux distribution, a layer (meta-st-stm32mp-addons) has been created to manage STM32CubeMX integration.<br>

If necessary, you can also create your own layer. The procedure to do so is explained in [[How_to_create_a_new_open_embedded_layer]].

{| class="st-tablewikitable" style="text-align: left; "
|-
!  border-style: solid; border-width: 3px; border-color:#00C0FF"
|-
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center"| Layer
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center"| Description
|-
| meta-st-stm32mp-addons || BSP Layer addons for stm32mp (CubeMX Machine)
|-
| meta-my-custo-layer || framework addons/customization
|}

===Machines===
{| class="sttablewikitable" style="text-align: left; "
|-
! border-style: solid; border-width: 3px; border-color:#00C0FF"
|-
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center"| Machine
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center"| Description
|-
| stm32mp1 || Machine configuration for STM32MP1 microprocessor device boards
|-
| stm32mp1-eval || Machine configuration for STM32MP1 evaluation board
|-
| stm32mp1-disco || Machine configuration for STM32MP1 disco board
|}

===Images===
{| class="st-tablewikitable" style="text-align: left; "
|-
! border-style: solid; border-width: 3px; border-color:#00C0FF"
|-
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center "| Image
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center "| Description
|-
!! colspan="2" | '''Official images'''style="background-color: Grey;"| Official images

|-
| st-image-weston || OpenSTLinux weston image with basic Wayland support (if enabled in distro)
|-
!! colspan="2" | '''Supported images'''style="background-color: Grey;"| Supported images

|-
| st-image-core || OpenSTLinux core image
|-
!! colspan="2" | '''Images, proposed as example only'''style="background-color: Grey;"| Proposed images as example only

|-
| st-example-image-qt || ST example of image based on QT framework
|-
| st-example-image-x11 || ST example of image based on X11
|-
| st-example-image-xfce || ST example of image based on XFCE framework
|-
| st-example-image-gtk || ST example of image based on GTK framework
|}

===Distros===

For further details on distributions (distros), read "Creating a distribution"  <ref> http://www.yoctoproject.org/docs/2.4/mega-manual/mega-manual.html#creating-your-own-distribution Creating a distribution </ref>


{| class="st-tablewikitable" style="text-align: left;"
|-
!  border-style: solid; border-width: 3px; border-color:#00C0FF"
|-
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center "| Distro
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center "| Description
|-
| openstlinux-eglfs || OpenSTLinux featuring eglfs - no X11, no Wayland
|-
| openstlinux-weston || OpenSTLinux featuring Weston/Wayland
|-
| openstlinux-x11 || OpenSTLinux featuring X11
|-
| nodistro || *** DEFAULT OPENEMBEDDED SETTING : DISTRO is not defined *** 
|}

===Reference source code===

The TF-A, U-Boot, OP-TEE and kernel components have been configured by default to use '''tarball + patches''' for source code.

If you prefer to use '''github'''<sup>&reg;</sup> as a source code reference, you need to update your local.conf file 

Refer to the section ‘Configure STM32MP default version to github’ in local.conf :

 # =========================================================================
 # Configure STM32MP default version to github
 # =========================================================================
 #STM32MP_SOURCE_SELECTION_pn-linux-stm32mp = "github"
 #STM32MP_SOURCE_SELECTION_pn-optee-os-stm32mp = "github"
 #STM32MP_SOURCE_SELECTION_pn-tf-a-stm32mp = "github"
 #STM32MP_SOURCE_SELECTION_pn-u-boot-stm32mp = "github"

Then just uncomment the line to switch the component to github<sup>&reg;</sup> for source code.

==How to get the software for this distribution==
The OpenSTLinux distribution is available through the three Packages (Starter, Developer, and Distribution) of the [[STM32MPU Embedded Software distribution|STM32MPU Embedded Software distribution]].

==References==<references/>

<noinclude>

[[Category:OpenSTLinux distribution|00]]
{{PublicationRequestId | 8358 | 2018-06-18 | PhilipS}}</noinclude>
Line 1: Line 1:
<noinclude>
 
{{ArticleMainWriter|DenisH}}
 
 
{{ArticleApprovedVersion|DenisH| NathalieS, ChristopheM | RomualdJ - 27Feb'18  | Philip S. - 28Jun'18 - 8358| 28Jun'18 }}
 
 
[[Category:OpenSTLinux distribution|00]]
 
</noinclude>
 
 
 
==What is the OpenSTLinux distribution?==
 
==What is the OpenSTLinux distribution?==
 
The OpenSTLinux distribution, running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A processor(s), is a sub-part of the [[STM32MPU Embedded Software distribution]].
 
The OpenSTLinux distribution, running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A processor(s), is a sub-part of the [[STM32MPU Embedded Software distribution]].
Line 50: Line 42:
 
By doing this, any BSP can be combined with any framework, or no framework at all.
 
By doing this, any BSP can be combined with any framework, or no framework at all.
 
   
 
   
{| class="wikitable" style="text-align: left; border-style: solid; border-width: 3px; border-color:#00C0FF"
+
{| class="st-table" style="text-align: left; "
 
|-
 
|-
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center"| Layer
+
!   align="center" valign="center"| Layer
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center"| Description
+
!   align="center" valign="center"| Description
 
|-
 
|-
 
| meta-st-stm32mp || BSP Layer for stm32mp
 
| meta-st-stm32mp || BSP Layer for stm32mp
Line 65: Line 57:
 
If necessary, you can also create your own layer. The procedure to do so is explained in [[How_to_create_a_new_open_embedded_layer]].
 
If necessary, you can also create your own layer. The procedure to do so is explained in [[How_to_create_a_new_open_embedded_layer]].
   
{| class="wikitable" style="text-align: left; border-style: solid; border-width: 3px; border-color:#00C0FF"
+
{| class="st-table" style="text-align: left; "
 
|-
 
|-
! style="border-style: solid; border-width: 3px; border-color:#00C0FF" align="center" valign="center"| Layer
+
!  align="center" valign="center"| Layer
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center"| Description
+
! align="center" valign="center"| Description
 
|-
 
|-
 
| meta-st-stm32mp-addons || BSP Layer addons for stm32mp (CubeMX Machine)
 
| meta-st-stm32mp-addons || BSP Layer addons for stm32mp (CubeMX Machine)
Line 76: Line 68:
   
 
===Machines===
 
===Machines===
{| class="wikitable" style="text-align: left; border-style: solid; border-width: 3px; border-color:#00C0FF"
+
{| class="sttable" style="text-align: left; "
 
|-
 
|-
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center"| Machine
+
! align="center" valign="center"| Machine
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center"| Description
+
! align="center" valign="center"| Description
 
|-
 
|-
 
| stm32mp1 || Machine configuration for STM32MP1 microprocessor device boards
 
| stm32mp1 || Machine configuration for STM32MP1 microprocessor device boards
Line 89: Line 81:
   
 
===Images===
 
===Images===
{| class="wikitable" style="text-align: left; border-style: solid; border-width: 3px; border-color:#00C0FF"
+
{| class="st-table" style="text-align: left; "
 
|-
 
|-
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center "| Image
+
! align="center" valign="center "| Image
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center "| Description
+
! align="center" valign="center "| Description
 
|-
 
|-
!! colspan="2" style="background-color: Grey;"| Official images
+
!! colspan="2" | '''Official images'''
 
|-
 
|-
 
| st-image-weston || OpenSTLinux weston image with basic Wayland support (if enabled in distro)
 
| st-image-weston || OpenSTLinux weston image with basic Wayland support (if enabled in distro)
 
|-
 
|-
!! colspan="2" style="background-color: Grey;"| Supported images
+
!! colspan="2" | '''Supported images'''
 
|-
 
|-
 
| st-image-core || OpenSTLinux core image
 
| st-image-core || OpenSTLinux core image
 
|-
 
|-
!! colspan="2" style="background-color: Grey;"| Proposed images as example only
+
!! colspan="2" | '''Images, proposed as example only'''
 
|-
 
|-
 
| st-example-image-qt || ST example of image based on QT framework
 
| st-example-image-qt || ST example of image based on QT framework
Line 117: Line 109:
 
For further details on distributions (distros), read "Creating a distribution"  <ref> http://www.yoctoproject.org/docs/2.4/mega-manual/mega-manual.html#creating-your-own-distribution Creating a distribution </ref>
 
For further details on distributions (distros), read "Creating a distribution"  <ref> http://www.yoctoproject.org/docs/2.4/mega-manual/mega-manual.html#creating-your-own-distribution Creating a distribution </ref>
   
{| class="wikitable" style="text-align: left; border-style: solid; border-width: 3px; border-color:#00C0FF"
+
{| class="st-table" style="text-align: left;"
 
|-
 
|-
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center "| Distro
+
! align="center" valign="center "| Distro
! style="border-style: solid; border-width: 3px; border-color:#00C0FF"  align="center" valign="center "| Description
+
! align="center" valign="center "| Description
 
|-
 
|-
 
| openstlinux-eglfs || OpenSTLinux featuring eglfs - no X11, no Wayland
 
| openstlinux-eglfs || OpenSTLinux featuring eglfs - no X11, no Wayland
Line 154: Line 146:
 
==References==
 
==References==
 
<references/>
 
<references/>
  +
  +
  +
<noinclude>
  +
[[Category:OpenSTLinux distribution|00]]
  +
{{PublicationRequestId | 8358 | 2018-06-18 | PhilipS}}
  +
</noinclude>