1. Article purpose[edit source]
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 source]
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 source]
- STM32MP157C-DK2
For more information about the STM32 discovery board and how to start it up, jump to this section Getting_started/STM32MP1_boards/STM32MP157C-DK2.
2.2. Software prerequisites[edit source]
The STM32MP1 Distribution Package must be installed on your host. The process has been verified with the delivery ecosystem release v1.2.0 . 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 source]
1.Get meta-iotedge [3] and the dependencies
cd [your STM32MP1 Distribution path]/layers/ git clone -b thud https://github.com/Azure/meta-iotedge.git git clone git://github.com/meta-rust/meta-rust.git git clone -b thud git://git.yoctoproject.org/meta-virtualization cd meta-rust git checkout c5ff05d1e99c1e80844c1673456e2368499918c7 -b INT_AZURE
2.Setup the build configuration
cd [your STM32MP1 Distribution path] 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.
cd [your STM32MP1 Distribution path] bitbake-layers add-layer [your STM32MP1 Distribution path]/meta-rust/ bitbake-layers add-layer [your STM32MP1 Distribution path]/meta-virtualization/ 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 docker-contrib 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
- Add CONFIG_EXT4_FS_SECURITY=y into [your STM32MP1 Distribution path]/layers/meta-st/meta-st-stm32mp\recipes-kernel/linux/linux-stm32mp/4.19/fragment-03-systemd.config
3.1. Image build and flash[edit source]
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 source]
1.Update of the IoT Edge configuration file on the board
vi /etc/iotedge/config.yam update hostname example with "stm32mp1"
2. Follow the process described on the Microsoft Azure [4] website
5. References[edit source]