Last edited one year ago

How to install and use the X-LINUX-AI SDK add-on

Applicable for STM32MP13x lines, STM32MP15x lines

1. Article purpose[edit source]

This article describes how to install and use the X-LINUX-AI SDK add-on. The X-LINUX-AI SDK add-on extends the OpenSTLinux SDK with AI functionality to develop and build an AI application easily. It is available from the X-LINUX-AI product web page.

2. Prerequisites[edit source]

2.1. Install the OpenSTLinux SDK[edit source]

First of all, you must download and install the OpenSTLinux SDK, which contains all the basis needed for the X-LINUX-AI add-on. To do this, follow instructions given in STM32MP1_Developer_Package#Installing_the_SDK chapter. Once this has been done, you have a directory containing the OpenSTLinux SDK.

Info white.png Information
Once this is done, the path to the OpenSTLinux SDK is the following:
$HOME/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/SDK


3. X-LINUX-AI SDK add-on installation[edit source]

3.1. Download the X-LINUX-AI SDK add-on[edit source]

To add the Artificial Intelligence part into the OpenSTLinux SDK, you must download and install the X-LINUX-AI SDK add-on. The add-on is delivered through a tarball file that can be downloaded here: X-LINUX-AI SDK add-on.

Warning white.png Warning
The X-LINUX-AI SDK add-on version must be the same as the OpenSTLinux SDK. If the version are not aligned, it might not work correctly.

3.2. Install the X-LINUX-AI SDK add-on[edit source]

Once the X-LINUX-AI SDK add-on is downloaded, uncompress the add-on:

Info white.png Information
The name of the tarball depends on the chosen version. In the example below the last uploaded version is used.
  cd  ~/Downloads/
  tar xzf en.SDK-x86_64-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23-addon-x-linux-ai-v3.0.0.tar.gz

Then, copy the .sh script to your OpenSTLinux SDK directory:

  cp stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23-addon-x-linux-ai-v3.0.0/st-image-ai-openstlinux-weston-stm32mp1-x86_64-toolchain-4.0.4-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23-addon-x-linux-ai-v3.0.0.sh $HOME/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/SDK
Warning white.png Warning
It is mandatory run the script inside the OpenSTLinux SDK directory.

Finally, run the script contained in the tarball:

  cd $HOME/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/SDK
  ./st-image-ai-openstlinux-weston-stm32mp1-x86_64-toolchain-4.0.4-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23-addon-x-linux-ai-v3.0.0.sh 

Optionally, once the script is executed, you can delete it.

  rm *.sh

3.3. Start the SDK[edit source]

Info white.png Information
The SDK environment setup script must be run once on each new working terminal on which you cross-compile.

The add-on is now installed into the OpenSTLinux SDK. You can start the SDK. Go to your OpenSTLinux SDK directory and source the environment:

  cd $HOME/STM32MPU_workspace/STM32MP1-Ecosystem-v4.1.0/Developer-Package/SDK
  source environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

Check that the SDK is properly installed:

  x-linux-ai -v
 X-LINUX-AI version: v3.0.0
Info white.png Information
With the x-linux-ai binary it is possible to check the X-LINUX-AI version and the supported frameworks/applications. Use x-linux-ai --help for more information.

4. Use the SDK[edit source]

4.1. Build an application with the SDK[edit source]

Info white.png Information
In this section, the image classification application is used as an example, but all the applications can be built with this method.

Once the SDK is correctly set up, the applications can be built easily. In this example, it is the image classification application that is built.

Download the github repository:

  git clone https://github.com/STMicroelectronics/meta-st-stm32mpu-ai.git
Warning white.png Warning
The version of the downloaded meta-st-stm32mpu-ai is be the same as the one of the X-LINUX-AI SDK add-on.

Go to the image classification directory:

  cd meta-st-stm32mpu-ai/recipes-samples/tflite-cv-apps/files/image-classification/src

Then, use the make command to build the application:

  make

A new file is displayed, named label_tfl_gst_gtk. This is a binary file, which has been generated using the make command. It is compiled for the STM32MP1x architecture. It must now be transferred to the board.

4.2. Use the application[edit source]

Warning white.png Warning
To use the application, it is mandatory to have an STM32MP1x board with OpenSTLinux and X-LINUX-AI packages installed. If it is not the case, refer to the X-LINUX-AI installation guide sections 2 and 3.

Once the STM32MP1x board is correctly set up and the X-LINUX-AI packages are installed with the right version, it is possible to send the application to the board.

Info white.png Information
The X-LINUX-AI packages versions must be the same as the ones in the X-LINUX-AI SDK add-on.

To do it, use the following command using your own IP address:

  scp -r -p label_tfl_gst_gtk root@<ip_address>:/usr/local/demo-ai/computer-vision/tflite-image-classification/bin/

Then, use the ssh protocol to connect to the board:

  ssh root@<ip_address>

On the board, go to the right directory and use the image classification script to launch the application:

  cd /usr/local/demo-ai/computer-vision/tflite-image-classification/bin/
  ./launch_bin_label_tfl_mobilenet.sh

This script is using the label_tfl_gst_gtk application that has been compiled before.