How to integrate Azure IoT Edge on OpenSTLinux

1 Article purpose[edit]

The purpose of this article is to explain how to integrate the Microsoft Azure IoT Edge device [1] on OpenSTLinux.

This article explains step by step how to add the Yocto meta-data components needed on OpenSTLinux distribution, and how to configure and build the image.


2 Prerequisites[edit]

You need to have an active Azure subscription, a "Free Trail" subscription is possible for 12 months. The way to do that is described in the Linux Quickstart document[2].

2.1 Hardware prerequisites[edit]


  • STM32MP157C-DK2
STM32MP157C-DK2

For more information about the STM32 discovery board and how to start it up, jump to this section Getting_started/STM32MP1_boards/STM32MP157x-DK2.

2.2 Software prerequisites[edit]

The STM32MP1 Distribution Package must be installed on your host. The process has been verified with the delivery ecosystem release v3.0.0 More info.png . For more information about the OpenSTLinux distribution package go to STM32MP1_Distribution_Package article.

Note that the software customizations have been applied on a (DISTRO: openstlinux-weston, MACHINE: stm32mp1) OpenSTLinux distribution environment, and for a st-image-weston image.

3 Software update with Yoto meta-iotedge and the dependencies[edit]

Info.png The configuration tested is based on :
meta-iotedge : branch dunfell  : commit 6840cf2afb51b4f2c535a05d5635736652f664f7
meta-virtualization : branch dunfell  : commit 502b81ae3ae11bf4d889b7eff6239fb9e6c55994
meta-rust : branch master : commit e4d25b98083bcecb94df6ee189a165d63ede7f3d


1.Get meta-iotedge [3] and the dependencies

PC $>cd  [your STM32MP1 Distribution path]/layers/
PC $>git clone -b dunfell https://github.com/Azure/meta-iotedge.git
PC $>git clone git://github.com/meta-rust/meta-rust.git
PC $>git clone -b dunfell git://git.yoctoproject.org/meta-virtualization
PC $>cd meta-rust
PC $>git checkout e4d25b98083bcecb94df6ee189a165d63ede7f3d -b INT_AZURE

2.Setup the build configuration

PC $>cd [your STM32MP1 Distribution path]
PC $>DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh

3.Add the meta-iotedge layer and other dependencies yocto layers to the distribution configuration.

PC $>cd [your STM32MP1 Distribution path]
PC $>bitbake-layers add-layer [your STM32MP1 Distribution path]/meta-rust/
PC $>bitbake-layers add-layer [your STM32MP1 Distribution path]/meta-virtualization/
PC $>bitbake-layers add-layer [your STM32MP1 Distribution path]/meta-iotedge/

4.Update the configuration to add the new components in your image.

  • Add DISTRO_FEATURES_append = "virtualization" into [your STM32MP1 Distribution path]/layers/meta-st/meta-st-openstlinux/conf/distro/openstlinux-weston.conf
  • Add IMAGE_INSTALL_append += "iotedge-daemon iotedge-cli libiothsm-std docker connman connman-client" into [your STM32MP1 Distribution path]/build-openstlinuxweston-stm32mp1/conf/local.conf
  • Change ROOTFS_PARTITION_SIZE = "763904" to ROOTFS_PARTITION_SIZE = "2097152" in[your STM32MP1 Distribution path]//layers/meta-st/meta-st-stm32mp/conf/machine/include/st-machine-common-stm32mp.inc file
  • delete "inherit python3targetconfig" in layers/meta-virtualization/recipes-extended/libvirt/libvirt-python.inc

3.1 Image build and flash[edit]

Go the article STM32MP1_Distribution_Package for the details about the process to build and flash your image.

To build the image:

In the folder [your STM32MP1 Distribution path]/build-openstlinuxweston-stm32mp1 Execute the command:

PC $>bitbake st-image-weston

4 Execution of the Azure IoT Edge demonstration[edit]

1.Update of the IoT Edge configuration file on the board

Board $>vi /etc/iotedge/config.yam
update hostname example with "stm32mp1"

2. Follow the process described on the Microsoft Azure [2] website

5 References[edit]