Last edited 5 days ago

X-LINUX-AZURE Distribution Package

Applicable for STM32MP25x lines

Warning DB.png Important
This version of X-LINUX-AZURE expansion package is validated against the ecosystem release v5.1.0 . It has not been ported yet on ecosystem release v6.0.0 More info.png .

X-LINUX-AZURE Distribution Package is based on OpenSTLinux Distribution Package ecosystem release v6.0.0 More info.png .

1. Generate X-LINUX-AZURE OpenSTLinux distribution[edit | edit source]

With the following procedure, you can generate the complete distribution enabling the X-LINUX-AZURE expansion package.
This procedure is mandatory to use TPM or OP-TEE on the X-LINUX-AZURE expansion package.

1.1. Download the Distribution Package[edit | edit source]

  • Install the OpenSTLinux Distribution Package by following the dedicated article (STM32MPU Distribution Package) but do not initialize the OpenEmbedded environment (do not source the envsetup.sh).

1.2. Install X-LINUX-AZURE environment[edit | edit source]

Warning white.png Warning
The software package is provided AS IS, and by downloading it, you agree to be bound to the terms of the software license agreement (SLA0048). The detailed content licenses can be found here.

1.2.1. Clone the meta-st-x-linux-azure Git repository[edit | edit source]

cd <Distribution Package installation directory>/layers/meta-st
git clone https://github.com/STMicroelectronics/meta-st-x-linux-azure.git -b unknown revision

1.2.2. Clone the meta-st-x-linux-tpm Git repository[edit | edit source]

cd <Distribution Package installation directory>/layers/meta-st
git clone https://github.com/STMicroelectronics/meta-st-x-linux-tpm.git -b 6.0.0

1.2.3. Clone the meta-iotedge Git repository and change layer compatibility[edit | edit source]

cd <Distribution Package installation directory>/layers
git clone https://github.com/Azure/meta-iotedge.git -b scarthgap
Info white.png Information
Validated on commit da7406a65f13e9f66453e9eccf6ab3df83bc48ec

1.2.4. Clone the meta-virtualization Git repository[edit | edit source]

cd <Distribution Package installation directory>/layers 
git clone https://git.yoctoproject.org/meta-virtualization -b scarthgap
Info white.png Information
Validated on commit 7c78f4ef96020b702c027d179895c9f97179b4fc

1.2.5. Clone the meta-security Git repository[edit | edit source]

cd <Distribution Package installation directory>/layers 
git clone https://git.yoctoproject.org/meta-security -b scarthgap
Info white.png Information
Validated on commit bc865c5276c2ab4031229916e8d7c20148dfbac3

1.2.6. Clone the meta-clang Git repository[edit | edit source]

cd <Distribution Package installation directory>/layers 
git clone https://github.com/kraj/meta-clang.git -b scarthgap
Info white.png Information
Validated on commit 9fbfa9db33131abdf3870a94f00199eb53e276e5

1.2.7. Configure Yocto Project®[edit | edit source]

  • For a new environment

Source the build environment with the correct board and layers:

cd <Distribution Package installation directory>
MACHINE=stm32mp2 DISTRO=openstlinux-weston BSP_DEPENDENCY='layers/meta-openembedded/meta-filesystems layers/meta-security layers/meta-security/meta-tpm layers/meta-st/meta-st-x-linux-tpm layers/meta-st/meta-st-x-linux-azure layers/meta-iotedge layers/meta-virtualization layers/meta-clang' source layers/meta-st/scripts/envsetup.sh
  • For an already installed environment

Add the layers to the Yocto environment:

cd <Distribution Package installation directory>
source layers/meta-st/scripts/envsetup.sh
bitbake-layers add-layer ../layers/meta-st/meta-st-x-linux-azure/ layers/meta-openembedded/meta-filesystems layers/meta-security/meta-tpm ../layers/meta-st/meta-st-x-linux-tpm ../layers/meta-iotedge ../layers/meta-security ../layers/meta-virtualization ../layers/meta-clang

1.3. Build the image[edit | edit source]

bitbake st-image-azure
Info white.png Information
Note that building the image might take a long time depending on the host computer performance.

1.4. Program the built image[edit | edit source]

Follow this link to see how to program the built image.

cd <Distribution Package installation directory>/build-openstlinuxweston-stm32mp2/tmp-glibc/deploy/images/stm32mp2
STM32_Programmer_CLI -c port=usb1 -w flashlayout_st-image-azure/optee/FlashLayout_sdcard_stm32mp257f-dk-optee.tsv
cd <Distribution Package installation directory>/build-openstlinuxweston-stm32mp2/tmp-glibc/deploy/images/stm32mp2
STM32_Programmer_CLI -c port=usb1 -w flashlayout_st-image-azure/optee/FlashLayout_sdcard_stm32mp257f-ev1-optee.tsv

2. How to use the X-LINUX-AZURE expansion package[edit | edit source]

Go to X-LINUX-AZURE_package_software_setup.

3. Main software modifications[edit | edit source]

Through the X-LINUX-AZURE Distribution Package, the OpenSTLinux distribution is mainly changed at two levels:

  • The Linux® kernel configuration and Device tree level with the X-LINUX-TPM expansion package integration.
  • User space bringing necessary libraries and tools to use Azure IoT Edge, OP-TEE, and the TPM expansion board features.