Apalis IMX8 Toradex BSP version - Yocto Linux & QT6

Hi All,

We are using apalis imx8qm with b2qt 6.3.1
I want get an information about which version to use for apalis imx8 ixora board according to support and Toradex BSP.

A bit history here for how we used b2qt.
We were using 6.3.1.
And we wanted to use LTS version and planned on switching 6.2 version.
Which goes interesting here it is not listed in the Toradex list in the following link.
And 6.2 is upgraded to 6.2.6 to 6.2.7 and it dropped support for apalis imx8.

With the point of wiev from Toradex side accounting BSP revision for apalis imx8.
6.4.3 and 6.3.2 are listed as compatible with Apalis imx8.
Main differences for 6.4.3 and 6.3.2 are yocto version
“kirkstone vs honister”,
and
"6.1.0 Toradex BSP vs
meta-toradex-nxp commit
meta-toradex-bsp-common commit "

In the following link some B2QT versions are listed as tested, partially or not.
Qt for Device Creation (Boot to Qt) | Toradex Developer Center

Thanks
Ahmet

HW model: Toradex Apalis iMX8QM V1.1 on Apalis Evaluation Board
Toradex version: 0037 V1.1C

Hi @ahmetg ,

for Boot2Qt support you would have to reach out to Qt.

Best Regards
Kevin

Hi Kevin,

Thanks for the quick reply.

I want to know what is Toradex’s point of view.

I have listed differences with respect to apalis imx8 and Toradex BSP

6.2 is not listed on Toradex b2qt list.
6.3.2 is listed and has an apalis imx8 support. We were using 6.3.1 and happy with it.
6.4.3 is new 6.4 version and added apalis imx8 support. Has a few differences with 6.3.2 that I listed in the above post.

Do you have any suggestions on the point.

Thanks a lot.
Ahmet.

Hi @ahmetg ,
Qt 6.4.3 can be integrated into our Linux BSP 6 in Yocto Project. Here are the steps.
Clone meta-qt6 in layers folder.

git clone -b 6.4.3 git://code.qt.io/yocto/meta-qt6.git

Add populate_sdk_qt6.bbclass in meta-qt6/classes

SUMMARY = "Meta package for building an installable Qt6 toolchain and SDK"

inherit populate_sdk populate_sdk_qt6_base

TOOLCHAIN_HOST_TASK:append = " nativesdk-packagegroup-qt6-toolchain-host"
TOOLCHAIN_TARGET_TASK:append = " packagegroup-qt6-modules"

FEATURE_PACKAGES_qtcreator-debug = "packagegroup-qt6-qtcreator-debug"

Create packagegroup-qt6-qtcreator-debug.bb in meta-qt6/recipes-qt/packagegroups.

SUMMARY = "Remote debugging tools for QtCreator integration"
LICENSE = "MIT"

inherit packagegroup

# Override by distro if needed
VIRTUAL-RUNTIME_qtcreator-debug-ssh-daemon ?= "openssh-sshd"

RDEPENDS:${PN} = " \
  gdbserver \
  ${VIRTUAL-RUNTIME_qtcreator-debug-ssh-daemon} \
  openssh-sftp-server \
  qtdeclarative \
"

Create packagegroup-tdx-qt6.bb in meta-toradex-demos/recipes-images/images/.

SUMMARY = "Packagegroup which provides most QT6 libraries and a QT6 demo"

PACKAGE_ARCH = "${MACHINE_ARCH}"

inherit packagegroup

PROVIDES = "${PACKAGES}"
PACKAGES += " \
  ${PN}-fonts \
  ${PN}-libs \
"

RRECOMMENDS:${PN} = " \
  ${PN}-fonts \
  ${PN}-libs \
"

SUMMARY:${PN}-fonts = "Some fonts useful for QT5"
RRECOMMENDS:${PN}-fonts = " \
  ttf-dejavu-common \
  ttf-dejavu-sans \
  ttf-dejavu-sans-mono \
  ttf-dejavu-serif \
"

SUMMARY:${PN}-libs = "QT5 libraries"
RRECOMMENDS:${PN}-libs = " \
  qt3d \
  qtbase \
  qtcharts \
  qtcoap \
  qtconnectivity \
  qtdatavis3d \
  qtdeclarative \
  qtimageformats \
  qtlottie \
  qtmqtt \
  qtmultimedia \
  qtnetworkauth \
  qtopcua \
  qtquick3d \
  qtquicktimeline \
  qtremoteobjects \
  qtscxml \
  qtsensors \
  qtserialbus \
  qtserialport \
  qtsvg \
  qttools \
  qttranslations \
  qtvirtualkeyboard \
  ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'qtwayland', '', d)} \
  qtwebchannel \
  qtwebsockets \
"

Create tdx-reference-multimedia-qt6-image.bb in meta-toradex-demos/recipes-images/images/. Delete our default tdx-reference-multimedia-image.bb as well.

require tdx-reference-minimal-image.bb

SUMMARY = "Toradex Embedded Linux Reference Multimedia Image"
DESCRIPTION = "Image for BSP verification with QT and multimedia features"

inherit populate_sdk_qt6

#Prefix to the resulting deployable tarball name
export IMAGE_BASENAME = "Reference-Multimedia-Image"

IMAGE_FEATURES += " \
  ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'weston', \
     bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11-base', '', d), d)} \
"

IMAGE_INSTALL += " \
  packagegroup-tdx-cli \
  packagegroup-tdx-graphical \
  packagegroup-tdx-qt6 \
  packagegroup-fsl-isp \
  \
  bash \
  coreutils \
  less \
  makedevs \
  mime-support \
  net-tools \
  util-linux \
  v4l-utils \
  \
  gpicview \
  media-files \
"

Replace meta-qt5 with meta-qt6 in build/conf/bblayers.conf. And remove unused distro feature and package from build/conf/local.conf.

DISTRO_FEATURES:remove = " directfb x11"
IMAGE_INSTALL:remove = " gpicview"

Then you can build the image by bitbake tdx-reference-multimedia-qt6-image.

Hi @ahmetg,

Do you have any news regarding this topic?

Hi @benjamin.tx
Thanks for your help!
I did based of your guide , but faced bellow error:

bitbake tdx-reference-multimedia-qt6-image
Loading cache: 100% |############################################| Time: 0:00:00
Loaded 3936 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION           = "1.46.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "aarch64-tdx-linux"
MACHINE              = "apalis-imx8"
DISTRO               = "tdx-xwayland"
DISTRO_VERSION       = "5.7.0-devel-20230806060238+build.0"
TUNE_FEATURES        = "aarch64"
TARGET_FPU           = ""
meta-toradex-nxp     = "HEAD:ee63c90fde9fde0229bff9ac1c5cffe356fc4f41"
meta-freescale       = "HEAD:3cb29cff92568ea835ef070490f185349d712837"
meta-freescale-3rdparty = "HEAD:c52f64973cd4043a5e8be1c7e29bb9690eb4c3e5"
meta-toradex-tegra   = "HEAD:f5753af4a5b9d33f0f474b320a74c2e29a66ec39"
meta-toradex-bsp-common = "HEAD:029a663150449a5e71b84dd4000476754d525c8c"
meta-oe              
meta-filesystems     
meta-gnome           
meta-xfce            
meta-initramfs       
meta-networking      
meta-multimedia      
meta-python          = "HEAD:8ff12bfffcf0840d5518788a53d88d708ad3aae0"
meta-freescale-distro = "HEAD:5d882cdf079b3bde0bd9869ce3ca3db411acbf3b"
meta-toradex-demos   = "HEAD:ce3c1925df34b4d299b2dd1003ced41b9485ce41"
meta-qt6             = "dev:8f2909934881506c01e96cd12daa9cc7c30489cb"
meta-toradex-distro  = "HEAD:cbde0286cb85bc445e70210b8df38f29b4784c08"
meta-poky            = "HEAD:7e0063a8546250c4c5b9454cfa89fff451a280ee"
meta                 = "HEAD:add860e1a69f848097bbc511137a62d5746e5019"

WARNING: /home/user/oe-core/build/../layers/meta-toradex-nxp/recipes-kernel/linux/linux-toradex_5.4-2.3.x.bb:do_compile is tainted from a forced run
WARNING: /home/user/oe-core/build/../layers/meta-toradex-nxp/recipes-kernel/linux/linux-toradex_5.4-2.3.x.bb:do_deploy is tainted from a forced run
Initialising tasks: 100% |#######################################| Time: 0:00:11
Sstate summary: Wanted 1797 Found 891 Missed 906 Current 2286 (49% match, 77% complete)
NOTE: Executing Tasks
ERROR: zstd-native-1.4.5-r0 do_fetch: Bitbake Fetcher Error: NetworkAccess('https://artifacts.toradex.com/artifactory/tdxref-torizoncore-sources-frankfurt/5/git2_github.com.facebook.zstd.git.tar.gz', "/usr/bin/env wget -t 2 -T 30 --passive-ftp --no-check-certificate -c -P /home/user/oe-core/build/../downloads 'https://artifacts.toradex.com/artifactory/tdxref-torizoncore-sources-frankfurt/5/git2_github.com.facebook.zstd.git.tar.gz'")
ERROR: Logfile of failure stored in: /home/user/oe-core/build/tmp/work/x86_64-linux/zstd-native/1.4.5-r0/temp/log.do_fetch.5728
ERROR: Task (virtual:native:/home/user/oe-core/build/../layers/meta-openembedded/meta-oe/recipes-extended/zstd/zstd_1.4.5.bb:do_fetch) failed with exit code '1'
ERROR: qtbase-native-6.7.0-r0 do_fetch: Bitbake Fetcher Error: NetworkAccess('git://code.qt.io/qt/qtbase.git;name=qtbase;branch=dev;nobranch=1;protocol=git', 'LANG=C git -c core.fsyncobjectfiles=0 fetch -f --progress "git://code.qt.io/qt/qtbase.git" refs/*:refs/*')
ERROR: Logfile of failure stored in: /home/user/oe-core/build/tmp/work/x86_64-linux/qtbase-native/6.7.0-r0/temp/log.do_fetch.5727
ERROR: Task (virtual:native:/home/user/oe-core/build/../layers/meta-qt6/recipes-qt/qt6/qtbase_git.bb:do_fetch) failed with exit code '1'
NOTE: Tasks Summary: Attempted 2072 tasks of which 2070 didn't need to be rerun and 2 failed.
NOTE: Writing buildhistory
NOTE: Writing buildhistory took: 4 seconds

Summary: 2 tasks failed:
  virtual:native:/home/user/oe-core/build/../layers/meta-openembedded/meta-oe/recipes-extended/zstd/zstd_1.4.5.bb:do_fetch
  virtual:native:/home/user/oe-core/build/../layers/meta-qt6/recipes-qt/qt6/qtbase_git.bb:do_fetch
Summary: There were 2 WARNING messages shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

Do you have any suggestion ?
Thanks a lot.

Hi @hhami , is it fine for you to upgrade Apalis iMX8 BSP to Linux BSP v6? That is based on kirkstone branch. I never build meta-qt6 with Linux BSP v5 which uses dunfell branch.

meta-qt6 = “dev:8f2909934881506c01e96cd12daa9cc7c30489cb”

Which Qt version do you fetch? It seems to be Qt 6.7.0.

Your current build log are all NetworkAccess related error. That means something wrong happened when downloading packages e.g. zstd-native and qtbase-native. You can just rebuild it.