X-LINUX-QT expansion package

Applicable for STM32MP25x lines

X-LINUX-QT-Expansion Package-logo.png


1. Article purpose[edit source]

Purpose of this article is to:

  • Introduce the X-LINUX-QT expansion package
  • Define the hardware & software deliverables to use the X-LINUX-QT package,
  • Describe all steps to integrate the X-LINUX-QT package and associated expected results
  • Describe all steps to use Qt Creator with the X-LINUX-QT package and associated expected results


QT Expansion Package In STM32MPU Embedded Software.png


2. X-LINUX-QT expansion package description[edit source]

2.1. Overview[edit source]

X-LINUX-QT is an STM32 MPU OpenSTLinux Expansion Package that targets Qt based application and graphical user interface (GUI) development for STM32MP25xx series microprocessors. It contains Linux® Qt™ Frameworks, as well as an ST Application Launcher based on Qt™ Framework and application examples to get started with Qt application development.

The Qt framework contains a comprehensive set of highly intuitive and modularized C++ library classes and is loaded with APIs to simplify your application development. Qt produces highly readable, easily maintainable and reusable code with high runtime performance and small footprint – and it's cross-platform.

This expansion package is a complete ecosystem that allow developers working with OpenSTLinux to create Qt based application very easily.

  • All-in-one Qt solutions for the entire STM32MPU series supporting Wayland and Weston.
  • Pre-integrated into Linux distribution based on ST environment
  • Include Qt frameworks to build UIs and Applications
  • Include ST Application Launcher based on Qt framework for MPU devices (see supported platforms list)

2.2. Versioning[edit source]

Latest version of X-LINUX-QT is 1.0.0.

The generic versioning X-LINUX-QT vx.y.z is built as follows:

x: major version depending on Qt major versions. Each new major version is incompatible with previous Qt versions.
Initial major version 1.0.0 will be for Qt 5.x and version 2.0.0 will be for Qt 6.x

y: minor version depending on the OpenSTLinux Distribution major versions. Each new major version is incompatible with previous OpenSTLinux distribution versions. Initial minor version will be for OpenSTLinux Distribution v5.x

z: patch version is changed when new functionalities, bug fixes and/or modules are added to the X-LINUX-QT OpenSTLinux Expansion Package in a backward compatible manner.

3. Prerequisites[edit source]

3.1. Hardware prerequisites[edit source]

  • STM32MP257F-EV1 Evaluation board More info green.png
STM32MP257F-EV1.jpg


  • STM32MP257F-DK Discovery kit Warning.png

3.2. Software prerequisites[edit source]

The X-LINUX-QT expansion package runs with OpenSTLinux ecosystem release v5.1.0 More info.png .

In this article we will be using the Qt Creator[1] tool to build, debug and run applications demos on target.

  • You will need to create a Qt account then download and install the Qt Creator
  • The Qt online installer is available from here


Info white.png Information

Installing the X-LINUX-QT Developer Package will also configure and add the STM32 MPU Kit for the Qt Creator (Separately installed by the user).


4. Hardware setup[edit source]

4.1. STM32MP257x-EV1 Evaluation board[edit source]

STM32MP257x-EV1 assembled.jpg

5. Software setup[edit source]

5.1. How to get software[edit source]

There are two possibilities to install the additional X-LINUX-QT expansion package software to port on top of OpenSTLinux. Select the one corresponding to your needs amongst :

  • X-LINUX-QT Distribution package: an OpenEmbedded meta-layer must be added on top of the STM32MPU Distribution Package to bring "Qt framework" as graphics solution.
STM32MPU Distribution PackageX-LINUX-QT-Distribution Package-BlockDiagram.png


STM32MPU Developer PackageX-LINUX-QT-Developer Package-BlockDiagram.png


5.1.1. How to install distribution package[edit source]

  • Download and Install the STM32MPU Distribution Package
 cd <Distribution Package installation directory>
 git clone -b v1.0.0 https://github.com/STMicroelectronics/meta-st-x-linux-qt.git layers/meta-st/meta-st-x-linux-qt
  • Clone the meta-qt5 git repository
 git clone -b scarthgap https://github.com/meta-qt5/meta-qt5.git layers/meta-qt5
  • Source the build environment with the correct board and layer
For STM32MP25x lines More info.png:
 DISTRO=openstlinux-weston MACHINE=stm32mp2 BSP_DEPENDENCY="layers/meta-qt5 layers/meta-st/meta-st-x-linux-qt" source layers/meta-st/scripts/envsetup.sh


  • Building the X-LINUX-QT Starter Package
STM32MPU Distribution PackageSTM32MPU Starter PackageX-LINUX-QT-Starter Package-Overview.png


To rebuild the X-LINUX-QT Starter Package, user must install the X-LINUX-QT Distribution Package, setup the environment and run the adequate bitbake command as below:

 bitbake st-image-qt package-index

The output will be the Full Image files for the st-image-qt


  • Building the X-LINUX-QT Developer Package
STM32MPU Distribution PackageSTM32MPU Developer PackageX-LINUX-QT-Developer Package-Overview.png


To rebuild the X-LINUX-QT Developer Package, user must install the X-LINUX-QT Distribution Package, setup the environment and run the adequate bitbake command as below:

 bitbake st-image-qt -c do_populate_sdk

The output will be the Full SDK installer for the st-image-qt


5.1.2. How to install developer package[edit source]


STM32MPU Developer PackageX-LINUX-QT-Developer Package-BlockDiagram.png


  1. Download and Install the OpenSTLinux Developer Package
  2. Install the X-LINUX-QT SDK-Addon
For STM32MP25x lines More info.png:

The X-LINUX-QT SDK-Addon is delivered through two tarball files named :

  • en.sdk-x86_64-stm32mp2-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26-x-linux-qt-v1.0.0.tar.gz for x86_64 host architecture
  • en.sdk-aarch64-stm32mp2-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26-x-linux-qt-v1.0.0.tar.gz for arm64 host architecture

Download and install the X-LINUX-QT SDK-Addon. 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.

X-LINUX-QT Developer Package SDK-Addon v1.0.0 release
Download
  • Go on st.com to download
    • en.sdk-x86_64-stm32mp2-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26-x-linux-qt-v1.0.0.tar.gz file for x86_64 host architecture
    • en.sdk-aarch64-stm32mp2-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26-x-linux-qt-v1.0.0.tar.gz file for arm64 host architecture
Installation

For x86_64 host architecture

  • Uncompress the tarball file to get the SDK installation script.
 mkdir -p ~/MySDK
 tar xvf en.sdk-x86_64-stm32mp2-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26-x-linux-qt-v1.0.0.tar.gz -C ~/MySDK
  • If needed, change the permissions on the SDK installation script so that it is executable.
 chmod +x ~/MySDK/stm32mp2-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26-x-linux-qt-v1.0.0/sdk/st-image-qt-openstlinux-weston-stm32mp2-x86_64-toolchain-4.2.4-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26-addon-x-linux-qt-v1.0.0.sh
 cd <working directory absolute path>/Developer-Package/SDK
 ~/MySDK/stm32mp2-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26-x-linux-qt-v1.0.0/sdk/st-image-qt-openstlinux-weston-stm32mp2-x86_64-toolchain-4.2.4-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26-addon-x-linux-qt-v1.0.0.sh
  • A successful installation outputs the following log:
===============================================================================================================================================
ST OpenSTLinux - Weston - (A Yocto Project Based Distro) SDK installer version unknown component - X-LINUX-QT version 1.0.0 SDK-Addon installer
===============================================================================================================================================
Extracting X-LINUX-QT-Addon SDK................................................................................................Done.
Setting it up... Done.


Using /home/bbkarim/Qt/Tools/sdktool/libexec/qtcreator/sdktool
Adding "Qt 5.15.13 for STM32MP25 ( 4.2.4-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26, X-LINUX-QT v1.0.0)" kit for Qt Creator... Done.
X-LINUX-QT-Addon SDK has been successfully set up and is ready to be used.

For arm64 host architecture

  • Uncompress the tarball file to get the SDK installation script.
 mkdir -p ~/MySDK
 tar xvf en.sdk-aarch64-stm32mp2-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26-x-linux-qt-v1.0.0.tar.gz -C ~/MySDK


  • If needed, change the permissions on the SDK installation script so that it is executable.
 chmod +x ~/MySDK/stm32mp2-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26-x-linux-qt-v1.0.0/sdk/st-image-qt-openstlinux-weston-stm32mp2-aarch64-toolchain-4.2.4-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26-addon-x-linux-qt-v1.0.0.sh
 cd <working directory absolute path>/Developer-Package/SDK
 ~/MySDK/stm32mp2-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26-x-linux-qt-v1.0.0/sdk/{{X-
  • A successful installation outputs the following log:
==================================================================================================================================================
ST OpenSTLinux - Weston - (A Yocto Project Based Distro) SDK installer version 4.2.4-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26 - X-LINUX-QT version 1.0.0 SDK-Addon installer
===================================================================================================================================================
Extracting X-LINUX-QT-Addon SDK......................................................................................................... Done.
Setting it up... Done.
Using /home/bbkarim/Qt/Tools/sdktool/libexec/qtcreator/sdktool
Adding "Qt 5.15.13 for STM32MP25 ( 4.2.4-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26, X-LINUX-QT v1.0.0)" kit for Qt Creator... Done.
X-LINUX-QT-Addon SDK has been successfully set up and is ready to be used.


5.2. How to run the X-LINUX-QT package software[edit source]

  • X-LINUX-QT Starter Package: the packagegroup-x-linux-qt package must be installed on top of the STM32MPU Starter Package to bring the "Qt framework" as graphics solution.


STM32MPU Distribution PackageSTM32MPU Starter PackageX-LINUX-QT-Starter Package-Overview.png


5.2.1. How to install the starter package[edit source]


STM32MPU Starter PackageX-LINUX-QT-Starter Package-BlockDiagram.png


  1. Download and Install the OpenSTLinux Starter Package
  2. Install the X-LINUX-QT Starter Package


Once the board is booted, make sure it is connected to the internet then execute the following command in the console to install the X-LINUX-QT packages:


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.


Warning white.png Warning
You may need to update date and time on your connected board before running the below commands


  • Refresh the apt database to access the Qt package repository :
 apt-get update
  • Install the package with the apt configuration to access the Qt packages :
 apt-get install apt-openstlinux-x-linux-qt
  • Update the apt database to read the Qt package repository :
 apt-get update
  • Install the package group for the X-LINUX-QT
 apt-get install -y packagegroup-x-linux-qt
Info white.png Information
Instead of restarting the weston graphical service which could take few seconds, user could just close the current GTK demo-launcher and start the new ST-Launcher from the weston bottom toolbar (last icon in the list)


  • Restart the Weston graphical services with the new ST-Launcher
 systemctl restart weston-graphical-session.service



5.2.2. How to run the starter package[edit source]

Once the X-LINUX-QT Starter Package is installed and the weston graphical service is restarted, the new STLauncher will be displayed

  • The STLauncher Splash Screen will be displayed for few seconds
STLauncher Splash screen


  • The Main Window will be displaying all compatible installed applications
  • To display more information about the running HW and SW:
    • Click on the Settings button on the top right of the screen
STLauncher Main window


    • The SETTINGS screen will be displayed
    • Click on the INFORMATIONS button
STLauncher Settings window


    • The INFORMATIONS screen will be displayed
STLauncher Information window



5.2.3. How to run examples from the starter package[edit source]

5.2.3.1. Old GTK Demos[edit source]

Old GTK demos are still supported by the new STLauncher. For example, you could run the 3D Cube Demo

  • Select the demo's icon (Selected icon will be in Yellow)
3D Cube Demo - Selected Icon
  • Click on the demo's icon again to run the demo
3D Cube Demo - Running Demo


5.2.3.2. New Qt Examples[edit source]

Qt OpenGL Cube example is now displayed in the new STLauncher In order to run the example, please select its icon first then click on it again to start it

  • Select the Qt OpenGL Cube example icon
Qt OpenGL Cube Demo - Selected Icon
  • Click on the demo's icon again to run the demo
Qt OpenGL Cube Demo - Running Demo


5.2.3.3. New Qt Demos[edit source]

The new Medical and RobotArm3D demos are displayed in the new STLauncher In order to run the demo, please select its icon first then click on it again to start it.

  • The ST Medical Demo
The ST Medical Demo - Startup Screen
The ST Medical Demo - Running Demo


  • The ST RobotArm3D Demo
The ST RobotArm3D Demo - Loading Screen
The ST RobotArm3D Demo - Running Demo


6. Using Qt Creator with the X-LINUX-QT Developer Package[edit source]

6.1. Run the Qt Creator[edit source]

Info white.png Information

Please refer to the section Software prerequisites before you start this section

  • The Qt Creator must be installed from here before installing the X-LINUX-QT Developer Package.
  • Installing the X-LINUX-QT Developer Package will also configure the Qt Creator for the new STM32MPU Kit.

6.2. Select the new Kit installed by the X-LINUX-QT Developer Package[edit source]

  • Once the Qt Creator is launcher and the Welcome to Qt Creator is displayed, please go to the Examples from the list on the left and then select the new Kit added by the X-LINUX-QT Developer Package from the dropdown list.
  • The Supported examples will be then displayed.
Qt Creator Welcome Screen - Select the new Kit added by the X-LINUX-QT Developer Package

6.3. Select the project example[edit source]

  • You may search for a specific example in the Search bar in front of the selected Kit
  • Select the example you're looking for (just a simple click on it)
Qt Creator Welcome Screen - Select the example


  • Close the Help window if not needed
Qt Creator Welcome Screen - The example's Help window


6.4. Configure the project example[edit source]

  • Make sure the new added Kit by X-LINUX-QT Developer Package is selected
  • Press the Configure Project button
Qt Creator - Configure Project


  • Make sure all configuration steps are successfully done (Green Bars)
Qt Creator - Project Configuration Status


6.5. Configure the Kit[edit source]

  • Select the Configure Project button from the vertical bar on the left
  • Select the new Kit added by the X-LINUX-QT Developer Package
  • Select Run Settings
  • On the right panel, scroll down till the Environment section
  • Add the below environment variables
XDG_RUNTIME_DIR=/run/user/1000
QT_QPA_PLATFORM=wayland
QT_VULKAN_LIB=/usr/lib/libvulkan.so.1
Qt Creator - Configure Run Settings


6.6. Build and run the project[edit source]

  • Make sure your board is connected to your host machine
  • Once in the Run Setting panel, you shouldn't have the below notice at the bottom of the screen.
Qt Creator - Run Project


  • Press the Run button from the vertical bar on the left
  • That will build, deploy and run the selected example on the connected board.
Qt Creator - Run Project


7. References[edit source]