Boot2Qt Embedded Qt6 Image and Toolchain Hardknott Release

Published on September 15, 2021

We are pleased to announce a new Boot2Qt Embedded Qt6 image and toolchain using Yocto 3.3, Hardknott. Below you will find the download links for the images as well as detailed instructions for the build. You can view a demo of the image running on our Nitrogen8M Plus SOM here. [embed]https://www.youtube.com/watch?v=g3qLwIMrwZA[/embed]

For the Impatient

You can download the Boot2Qt Yocto images from here:

You can download the Boot2Qt Linux toolchains from here (refer below for instructions on building the Windows toolchain):

Instructions on how to use the QBSP toolchain in your Qt application development can be found here. As usual, you'll need to register on our site and agree to the EULA because it contains NXP content.

How to Burn

You can program the SW to eMMC using the instructions below: programming-emmc-on-i-mx-platforms You can also program the SW to SD Card or USB Stick via zcat and dd under Linux:

~$ zcat *boundary-image*.wic.gz | sudo dd of=/dev/sdX bs=1M

In addition, you can use the balenaEtcher utility to flash the eMMC, SD Card or USB stick via Windows or Linux: balenaEtcher

Build procedure

This image uses the 6.2 branch of the meta-boot2qt repo, which uses Qt version 6.2.0. This image uses the hardknott branch of our boundary-bsp-platform repository. To build the image, we recommend using a Docker Container so that you can build with a reproducible and stable build environment. Otherwise, you’ll need these packages installed as well as this repo tool that can be installed like this:

~$ sudo apt-get install repo

Then create your build directory and initialize everything.

~$ mkdir ~/b2qt6_hardknott && cd b2qt6_hardknott
~/b2qt6_hardknott$ repo init -u https://github.com/boundarydevices/boundary-bsp-platform -b hardknott -m b2qt.xml
~/b2qt6_hardknott$ repo sync

Next, setup the environment for building. For this image we will be building the b2qt distro for the target machine

~/hardknott$ MACHINE= DISTRO=b2qt . setup-environment build

Finally, build the Boundary Boot2Qt Embedded Qt6 Image and Linux Toolchain (boundary-b2qt-embedded-qt6-image and meta-toolchain-b2qt-embedded-qt6-sdk), which is equivalent to meta-b2qt-embedded-qbsp with Boundary-specific packages added such as BD-SDMAC support.

~/b2qt$ bitbake boundary-meta-b2qt-embedded-qbsp

Note: You can just build the Qt6 image by running "bitbake boundary-b2qt-embedded-qt6-image"   To build a toolchain for Windows platforms add the following line to local.conf:

SDKMACHINE = "x86_64-mingw32"

After some time this should build the same image as above, with the layers being at commits as per the time when repo sync was executed. If you are interested in each project revision at the time of the build, you can find a frozen manifest for those images here. The image file will deploy to tmp/deploy/images/{MACHINE}/b2qt-embedded-qt6-image-{MACHINE}.wic.gz. The Linux toolchain will deploy to tmp/deploy/qbsp/meta-b2qt-embedded-qbsp-x86_64-{MACHINE}-6.2.0.qbsp. The Windows toolchain will deploy to tmp/deploy/sdk/b2qt-i686-mingw32-meta-toolchain-b2qt-embedded-qt6-sdk-{MACHINE}.7z.

Display support

Please make sure your platform includes the latest U-Boot:

This version of U-Boot supports the display configuration, allowing to use any of the following displays:

Note that we've noticed that the NXP HDMI driver is picky when it comes to custom display timings (sometimes refuses to set the clock). So if you are experiencing any issue with HDMI, please try entering the following commands in U-Boot in order to force the use of standard timings:

=> setenv cmd_custom 'setenv bootargs $bootargs drm_kms_helper.edid_firmware=HDMI-A-1:edid/1280x720.bin'
=> saveenv

If you have any issues, please email support@boundarydevices.com