Notes
ViliusCh

Usefull notes i take while working on my projects. Might also be interesting for you

Ethernet bridge setup (for stm32mp1)

Enabling network bridge with single run script

Refferences:
ArchWiki


Network bridge setup script tested on stm32mp1 board with additional ethernet ports.

Will work on any systemd linux systems.

Create a bash file in directory of choice

root@stm32mp1:~# touch AUTO_BRIDGE.sh

Paste in the following script:

#!/bin/bash

# Check if script is run as root
if [ "$EUID" -ne 0 ]; then
    echo "Please run as root"
    exit 1
fi

# Variables

INTERFACE_FILE = "/etc/systemd/network/25-br0.netdev"
BIND_FILE = "/etc/systemd/network/25-br0-en.network"
BRIDGE_FILE = "/etc/systemd/network/25-br0.network"

#touch "$INTERFACE_FILE"
#touch "$BIND_FILE"
#touch "$BRIDGE_FILE"

cat > "$INTERFACE_FILE" << EOL
[NetDev]
Name=br0
Kind=bridge
EOL


cat > "$BIND_FILE" << EOL
[Match]
Name=lan*

[Network]
Bridge=br0
EOL

cat > "$BRIDGE_FILE" << EOL
[Match]
Name=br0

[Link]
RequiredForOnline=routable

[Network]
DHCP=yes
EOL

echo "Bridge creation successful"

Lastly the permissions need to be changed for the script file so it would be executable, run the following command to do sudo

root@stm32mp1:~# chmod +x AUTO_BRIDGE.sh

Script is ready to be executed by running ./AUTO_BRIDGE.sh

more details

Pre compiled FFMPEG instalation

Installing precompiled FFMPEG with all plugins enabled

For those that are too busy (or too lazy) to compile it themselves because the version that comes from package managers has plugins disabled

Refferences:
johnvansickle
back to home


In this example i am working with STM32MP157x

FFMPEG lazy mode

Before instalation check your machenes architecture dpkg --print-architecture

root@stm32mp2:~# dpkg —print-architecture
     arm64

Now sellect youre spice accordingly to your architecture

amd64: ffmpeg-git-amd64-static.tar.xz
i686:  ffmpeg-git-i686-static.tar.xz
arm64: ffmpeg-git-arm64-static.tar.xz
armhf: ffmpeg-git-armhf-static.tar.xz
armel: ffmpeg-git-armel-static.tar.xz

Download the compressed file wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-arm64-static.tar.xz

root@stm32mp2:~# wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-arm64-static.tar.xz
—2025-01-14 17:51:57— https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-arm64-static.tar.xz Resolving johnvansickle.com… 107.180.57.212 Connecting to johnvansickle.com|107.180.57.212|:443… connected. HTTP request sent, awaiting response… 200 OK ALength: 19400492 (19M) [application/x-xz] Saving to: ‘ffmpeg-git-arm64-static.tar.xz’ s ffmpeg-git-arm64-static.tar.x 100%[=================================================>] 18.50M 111KB/s in 5m 59s s 2025-01-14 17:57:57 (52.7 KB/s) - ‘ffmpeg-git-arm64-static.tar.xz’ saved [19400492/19400492]

Extract the tarball tar xvf ffmpeg-git-arm64-static.tar.xz When the process finishes FFMPEG is ready for use, just open the directory cd ffmpeg-git-20240629-arm64-static and run ./ffmpeg -v

Making FFMPEG run globally

One advantage of this is its going to be accesible from anywhere like any other program. Right now to run FFMPEG you need to run it in the original directory

To enable FFMPEG globally run sudo mv ffmpeg-git-20240629-arm64-static/ffmpeg ffmpeg-git-20240629-arm64-static/ffprobe /usr/bin/ outside of the directory

root@stm32mp2:~# sudo mv ffmpeg-git-20240629-arm64-static/ffmpeg ffmpeg-git-20240629-arm64-static/ffprobe /usr/bin/

And that it you can freely use ffmpeg yippee

more details

GSM Modem setup (for stm32mp1)

Enabling GSM modem with single run scripts

For those that are too busy (or too lazy) to compile it themselves because the version that comes from package managers has plugins disabled

Refferences:


GSM modem setup script tested on stm32mp1 board with external GSM modem module.

Needs testing on other boards/systems.

It requires 2 different scripts. Create two bash files in directory of choice

root@stm32mp1:#  touch install.sh
root@stm32mp1:~# touch install-service.sh

First open install.sh bash file and paste the following script:

#!/bin/bash

# Check if running as root
if [ "$EUID" -ne 0 ]; then
  echo "Please run as root"
  exit 1
fi

# Create directories if they don't exist
mkdir -p /usr/local/bin
#mkdir -p /etc/udev/rules.d
apt-get update & apt-get install ppp

# Copy files to their respective locations

cp connman /usr/local/bin/
cp qmi-network-raw /usr/local/bin/
cp modemstat /usr/local/bin/
cp softresetmodem.sh /usr/local/bin
cp sim.conf /etc/
cp qmi-network.conf /etc/
cp 20-modem-7xxx.rules /etc/udev/rules.d/
cp 22-modem-7xxx.rules /etc/udev/rules.d/

# Set correct permissions
chmod 755 /usr/local/bin/connman
chmod 755 /usr/local/bin/qmi-network-raw
chmod 755 /usr/local/bin/modemstat
chmod 755 /usr/local/bin/softresetmodem.sh
chmod 644 /etc/sim.conf
chmod 644 /etc/qmi-network.conf
chmod 644 /etc/udev/rules.d/20-modem-7xxx.rules
chmod 644 /etc/udev/rules.d/22-modem-7xxx.rules

# Reload udev rules
udevadm control --reload-rules

echo "Installation completed successfully."

Lastly the permissions need to be changed for the script file so it would be executable, run the following command to do sudo

root@stm32mp1:~# chmod +x AUTO_BRIDGE.sh

Script is ready to be executed by running ./AUTO_BRIDGE.sh

more details

Custom yocto layer guide

Yocto layer creation

Guide on creating your own custom yocto layer

Refferences:
yoctoproject
back to home


Simple yocto layers follow this file structure:

⊢meta-layer     
 ͏  ͏ ⊢conf   
 ͏  ͏  ͏ ⊢layer.conf   
 ͏  ͏ ⊢recipes-layer  
 ͏  ͏  ͏ ͏  ⊢application    
 ͏  ͏  ͏  ͏  ͏ ͏   ͏⊢files    
 ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏  ͏⊢applicationbinary  
 ͏  ͏  ͏  ͏  ͏ ͏   ͏⊢application_0.1.bb 

Lets go folder by folder.

Main folder meta-layer can be called whatever and it will contain folders for recipes, layer config, and other misc files.

conf contains configs that define recipes of the layer and much more.

recipes-layer contains main recipe file folder and a .bb file which has all the instructions for bitbake to perform during recipe baking process.

recipes-layer/files is a folder that contains certain recipe files (application, scripts, configs, etc) that will be included during build process, keep in mind source code could also be included with compilation process during baking, but i wont go into detail here.


Config example

BBPATH .= ":${LAYERDIR}"
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
            ${LAYERDIR}/recipes-*/*/*.bbappend"

BBFILE_COLLECTIONS += "meta-apps"
BBFILE_PATTERN_meta-apps = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-apps = "6"

LAYERSERIES_COMPAT_meta-apps = "scarthgap"

This is an example of a simple configuration file which defines main folder and recipe folders, collection name, priority, and version compatibility.
The recipe file from the layer with a higher priority number takes precedence. Priority values also affect the order in which multiple .bbappend files for the same recipe are applied.


Recipe example

SUMMARY = "NWT4 Qt Application"
LICENSE = "CLOSED"
SRC_URI = "file://NWT4 \
           file://nwt4.desktop \
           file://nwt4.sh"

S = "${WORKDIR}"

# Install files
do_install() {
    install -d ${D}${bindir}
    install -m 0755 ${WORKDIR}/NWT4 ${D}${bindir}/NWT4

    install -d ${D}${datadir}/applications
    install -m 0644 ${WORKDIR}/nwt4.desktop ${D}${datadir}/applications/nwt4.desktop

    install -d ${D}${datadir}/${PN}
    install -m 0755 ${WORKDIR}/nwt4.sh ${D}${datadir}/${PN}
}

# Ensure weston user can execute it
#FILES:${PN} += "${bindir}/NWT4 ${datadir}/applications/nwt4.desktop"

Simple recipe example that takes already compiled application and includes it in the final linux image.
do_install() function contains main instructions for bitbake to perform, in this example bitbake is taking the files from main “files” folder and relocating them in certain location in the image

For better understanding of directory and instalation variables check out koan wiki page

more details

STM32MPx board embedded linux quick start refference

STM distribution environment instalation

Quick step by step guide for setting up bitbake and including OpenEmbedded layers or your custom layer

Refferences:
wiki.st
koansoftware
back to home


Guide for setting up SMT sdk with qt for compilations.

Follow it step by step:

  1. Prerequisites
  2. REPO
  3. BitBake preparation
  4. Initializing the OpenEmbedded build environment
  5. Configuring bitbake to include WebBrowser

0. Prerequisites:

Host:~/$ sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev python3-subunit mesa-common-dev zstd liblz4-tool file locales


Host:~/$ sudo apt install curl ssh tree meld geany make xsltproc docbook-utils fop dblatex xmlto


Host:~/$ sudo apt install bsdmainutils build-essential chrpath cpio debianutils diffstat gawk gcc-multilib git iputils-ping libegl1-mesa libgmp-dev libmpc-dev libsdl1.2-dev libssl-dev lz4 pylint python3 python3-git python3-jinja2 python3-pexpect python3-pip socat texinfo unzip wget xterm xz-utils zstd

1. REPO:

Host:~/$ mkdir -p ~/.bin

Host:~/$ PATH="${HOME}/.bin:${PATH}"

Host:~/$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo

Host:~/$ chmod a+rx ~/.bin/repo

2. BitBake preparation:

Initialize repo in the current directory: LATEST VERSION (for a specific version check: https://wiki.st.com/stm32mpu/wiki/Category:Release_notes_archives)

Host:~/$ mkdir stm

Host:~/$ cd stm

Host:~/stm$ repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11

Will promt to enter name, email, just press enter on all promts.

Host:~/stm$ repo sync

3. Initializing the OpenEmbedded build environment:

Host:~/stm$ DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh

MACHINE= Name will change depending on the board youre building for, more information on: https://wiki.st.com/stm32mpu/wiki/OpenSTLinux_distribution

You will be asked to read and to accept this EULA. Press left arrow and enter to accept.

Youre ready to bitbake simple image or include more tools (STEP 4).


Building the OpenSTLinux distribution:

Host:~/stm/build-openstlinuxweston-stm32mp1$ bitbake st-image-weston

4. Configuring bitbake to include cog ( WPE launcher and webapp container ):

Host:~/stm/build-openstlinuxweston-stm32mp1$ cd ../layers

Including external layers:

Host:~/stm/layers$ git clone https://github.com/Igalia/meta-webkit.git

Host:~/stm/layers$ git clone https://github.com/meta-qt5/meta-qt5

Host:~/stm/layers$ cd meta-qt-5

Host:~/stm/layers$ git checkout scarthgap


Host:~/stm/layers$ cd ../../build-openstlinuxweston-stm32mp1/

Host:~/stm/build-openstlinuxweston-stm32mp1$ bitbake-layers add-layer ../layers/meta-webkit/

Host:~/stm/build-openstlinuxweston-stm32mp1$ bitbake-layers add-layer ../layers/meta-qt5

Local config editing:

cat >> conf/local.conf <<EOF

IMAGE_ROOTFS_MAXSIZE = "3048576"

IMAGE_INSTALL:append = " mesa libegl wpewebkit cog weston weston-init"

PREFERRED_PROVIDER_virtual/wpebackend = "wpebackend-fdo"

DISTRO_FEATURES:append = " opengl wayland pam"

EOF


Building and flashing the OpenSTLinux distribution:

Host:~/stm/build-openstlinuxweston-stm32mp1$ bitbake st-image-weston

After successfully building the image it is ready to be flashed.

All files required for flashing are located : ~/stm/build-openstlinuxweston-stm32mp1/tmp-glibc/deploy/images/stm32mp1

Flash and enjoy your own built build


Including your own layer

In my instance i will be using my personal layer with precompiled applications meta-apps

More information on how to make your own layer: Layers

Host:~/$ cd ~/stm/layers

Host:~/stm/layers$ git clone https://github.com/JewelDesu/meta-apps

Host:~/stm/layers$ cd ../../build-openstlinuxweston-stm32mp1/

Host:~/stm/build-openstlinuxweston-stm32mp1$ bitbake-layers add-layer ../layers/meta-apps/

To include my custom applications local config must be edited, contents of it might change depending on your configuration.

custom application recipe names need to be included in IMAGE_INSTALL:append

IMAGE_INSTALL:append = " mesa libegl wpewebkit cog weston weston-init nwt4 qt-wpe-browser"

With the local config changed the new image can be baked and new applications will be installed

Host:~/stm/build-openstlinuxweston-stm32mp1$ bitbake st-image-weston
more details

STM32MPx board developer package set up and qt integration

STM developer environment instalation

Quick step by step guide for setting up developer package specifically for STM32MPx board application compiling

Refferences:
wiki.st
back to home


Guide for setting up SMT sdk with qt for compilations.

Follow it step by step.

  1. SDK instalation
  2. QT SDK instalation
  3. COMPILING QT5/6 APPLICATIONS
  4. Running applications inside the board

1. SDK instalation:

In this guide im installing latest version 6.1.0 stm32mp1 SDK.

For more specific board and SDK version visit: https://www.st.com/en/embedded-software/stm32mp1dev.html#get-software

Host:~/$ mkdir stmcomp

Host:~/$ cd Downloads

Host:~/Downloads$ tar xvf en.SDK-x86_64-stm32mp1-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11.tar.gz -C ~/stmcomp

Host:~/Downloads$ cd ~/stmcomp

Host:~/stmcomp$ chmod +x stm32mp1-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11/sdk/st-image-weston-openstlinux-weston-stm32mp1.rootfs-x86_64-toolchain-5.0.8-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11.sh

Run the instalation script

Host:~/stmcomp$ ./stm32mp1-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11/sdk/st-image-weston-openstlinux-weston-stm32mp1.rootfs-x86_64-toolchain-5.0.8-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11.sh -d /Developer-Package/SDK

A successful installation outputs the following log:

ST OpenSTLinux - Weston - (A Yocto Project Based Distro) SDK installer version 5.0.8-openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11
===================================================================================================================================
You are about to install the SDK to "<working directory absolute path>/Developer-Package/SDK". Proceed [Y/n]? 
Extracting
SDK..........................................................................................................done
Setting it up...done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
$ . <working directory absolute path>/Developer-Package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

SOURCE SDK:

Host:~/stmcomp$ source /Developer-Package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

If all done correctly:

Host:~/stmcomp$ echo $ARCH

has to return

arm


Simple gcc compilations can be performed now


2. QT SDK instalation:

Download QT sdk at: https://www.st.com/en/embedded-software/x-linux-qt.html#get-software

Host:~/$ mkdir ~/stmcomp/QT

Host:~/$ cd Downloads

Host:~/Downloads$ tar xvf en.en.SDK-x86_64-stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06-x-linux-qt-v2.1.0.tar.gz -C ~/stmcomp/QT

Host:~/Downloads$ cd ~/stmcomp

Host:~/stmcomp$ chmod +x /QT/stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06-x-linux-qt-v2.1.0/sdk/st-image-qt-openstlinux-weston-stm32mp2.rootfs-x86_64-toolchain-5.0.3-openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06-addon-x-linux-qt-v2.1.0.sh

TO INSTALL QT SDK TOOLS FIRST THE PRIMARY SDK HAS TO BE SOURCED

Host:~/stmcomp$ source /Developer-Package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

If all done correctly:

Host:~/stmcomp$ echo $ARCH

has to return

arm

Go to the absolute path to the directory in which is installed the developer package:

Host:~/stmcomp$ cd /Developer-Package/SDK

RUN QT SDK INSTALATION SCRIPT:

Host:~/stmcomp$ ~/stmcomp/QT/stm32mp2-openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06-x-linux-qt-v2.1.0/sdk/st-image-qt-openstlinux-weston-stm32mp2.rootfs-x86_64-toolchain-5.0.3-openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06-addon-x-linux-qt-v2.1.0.sh

A successful installation outputs the following log:

===============================================================================================================================================
ST OpenSTLinux - Weston - (A Yocto Project Based Distro) SDK installer version 5.0.3-openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06 - X-LINUX-QT version 2.1.0 SDK-Addon installer
===============================================================================================================================================
Extracting X-LINUX-QT-Addon SDK................................................................................................Done.
Setting it up... Done.
Do you want to configure the Qt Creator for this SDK [y/n]? n
Qt Creator configuration will be ignored.
X-LINUX-QT-Addon SDK has been successfully set up and is ready to be used.

To make sure qt is correctly installed:

Host:~/stm$ which qmake
/home/Host/stm/Developer-Package/SDK/sysroots/x86_64-ostl_sdk-linux/usr/bin/qmake

which qmake - has to return the absolute path of qmake that is in the SDK,

NOT /usr/bin/qmake


3. COMPILING QT5/6 APPLICATIONS

SOURCE THE SDK

Host:~/stmcomp$ source /Developer-Package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi

Export the OE_CMAKE_TOOLCHAIN_FILE variable

Host:~/stmcomp$ export OE_CMAKE_TOOLCHAIN_FILE="$OECORE_NATIVE_SYSROOT/usr/lib/cmake/Qt6/qt.toolchain.cmake"

Host:~/stmcomp$ mkdir projects

Host:~/stmcomp$ cd projects

EXAMPLE APPLICATION COMPILATION:


Host:~/stmcomp/projects$ git clone https://github.com/KDABLabs/KDBoatDemo.git -b qt6

Host:~/stmcomp/projects$ cd KDBoatDemo

Host:~/stmcomp/projects/KDBoatDemo$ cmake -S . -B config_default

returned output:

-- Toolchain file defaulted to '/opt/st/stm32mp2/4.2.4-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26_x-linux-qt_v2.0.0/sysroots/x86_64-ostl_sdk-linux/usr/lib/cmake/Qt6/qt.toolchain.cmake'
-- The C compiler identification is GNU 12.3.0
-- The CXX compiler identification is GNU 12.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/st/stm32mp2/4.2.4-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26_x-linux-qt_v2.0.0/sysroots/x86_64-ostl_sdk-linux/usr/bin/aarch64-ostl-linux/aarch64-ostl-linux-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /opt/st/stm32mp2/4.2.4-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26_x-linux-qt_v2.0.0/sysroots/x86_64-ostl_sdk-linux/usr/bin/aarch64-ostl-linux/aarch64-ostl-linux-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Performing Test HAVE_STDATOMIC
-- Performing Test HAVE_STDATOMIC - Success
-- Found WrapAtomic: TRUE  
-- Performing Test HAVE_EGL
-- Performing Test HAVE_EGL - Success
-- Found EGL: /opt/st/stm32mp2/4.2.4-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26_x-linux-qt_v2.0.0/sysroots/cortexa35-ostl-linux/usr/include (found version "1.5") 
-- Performing Test HAVE_GLESv2
-- Performing Test HAVE_GLESv2 - Success
-- Found GLESv2: /opt/st/stm32mp2/4.2.4-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26_x-linux-qt_v2.0.0/sysroots/cortexa35-ostl-linux/usr/include  
-- Found XKB: /opt/st/stm32mp2/4.2.4-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26_x-linux-qt_v2.0.0/sysroots/cortexa35-ostl-linux/usr/lib/libxkbcommon.so (found suitable version "1.5.0", minimum required is "0.5.0") 
-- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR) 
-- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR) 
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/st/demos/Qt/KDBoatDemo/config_default
Host:~/stm/projects/KDBoatDemo$ cmake --build config_default --target all

returned output:

[  7%] Running qmlimportscanner for KDABBoatDemo
[  7%] Built target KDABBoatDemo_qmlimportscan
[ 15%] Automatic MOC for target KDABBoatDemo
[ 15%] Built target KDABBoatDemo_autogen
[ 23%] Automatic RCC for imagesMaps2.qrc
[ 30%] Automatic RCC for data.qrc
[ 38%] Automatic RCC for images.qrc
[ 46%] Automatic RCC for imagesMaps.qrc
[ 53%] Building CXX object CMakeFiles/KDABBoatDemo.dir/KDABBoatDemo_autogen/mocs_compilation.cpp.o
[ 61%] Building CXX object CMakeFiles/KDABBoatDemo.dir/main.cpp.o
[ 69%] Building CXX object CMakeFiles/KDABBoatDemo.dir/KDABBoatDemo_autogen/EWIEGA46WW/qrc_imagesMaps.cpp.o
[ 76%] Building CXX object CMakeFiles/KDABBoatDemo.dir/KDABBoatDemo_autogen/EWIEGA46WW/qrc_imagesMaps2.cpp.o
[ 84%] Building CXX object CMakeFiles/KDABBoatDemo.dir/KDABBoatDemo_autogen/EWIEGA46WW/qrc_images.cpp.o
[ 92%] Building CXX object CMakeFiles/KDABBoatDemo.dir/KDABBoatDemo_autogen/EWIEGA46WW/qrc_data.cpp.o
[100%] Linking CXX executable KDABBoatDemo
[100%] Built target KDABBoatDemo

Compilation is done, copy the binary to STM32MP board :

Host:~/stmcomp/projects/KDBoatDemo$ scp config_default/KDABBoatDemo root@192.168.0.1xx:/home/root/.

Running QT applications inside the board:

CURRENTLY X-LINUX-QT IN ONLY AVAILABLE ON ecosystem release v6.0.0, if guide below does not work that means the ecosystem is not correct.

Board configuration guide:

BOARD:~/$ date +%y%m%d -s "20250701"

BOARD:~/$ date +%T -s "00:00:00"

For STM32MP1 series’ boards:

with GPU support (STM32MP157F-DK2 Discovery kit More info green.png), add this Qt™ package Debian path:

BOARD:~/$ echo "deb http://extra.packages.openstlinux.st.com/QTMP1GPU/6.0 scarthgap main" > /etc/apt/sources.list.d/extra.qt.packages.openstlinux.st.com.list

without GPU support (STM32MP135F-DK Discovery kit More info green.png), add this Qt package Debian path:

BOARD:~/$ echo "deb http://extra.packages.openstlinux.st.com/QTMP1CPU/6.0 scarthgap main" > /etc/apt/sources.list.d/extra.qt.packages.openstlinux.st.com.list

Refresh the apt database and install qt package:

BOARD:~/$ apt-get update

BOARD:~/$ apt install -y packagegroup-x-linux-qt 

BOARD:~/$ apt-get install -y demo-launcher

BOARD:~/$ systemctl restart weston-graphical-session.service

After the board reboots run the compiled example application

BOARD:~/$ chmod +x KDABBoatDemo

BOARD:~/$ ./KDABBoatDemo

END OF GUIDE

more details