工控网首页
>

应用设计

>

使用 YoctoProject集成Qt6

使用 YoctoProject集成Qt6

By Toradex胡珊逢

在嵌入式领域中 Qt 作为普遍选择的 UI 方案目前已经发布 Qt6 版本。本文将介绍如何为 Toradex 的计算机模块使用  Yocto Project 将 Qt6 集成到镜像里。

 

首先根据这里的说明,准备好 Yocto Project 的编译环境。这里我们选择 Toradex 最新的 Linux BSP V6 为例,其基于 kirkstone 分支,这也是一个 LTS 版本。

 

进入 layers 目录,使用下面命令下载 Qt6.4.3 版本的 meta-qt6 文件。

-------------------------------

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

-------------------------------

 

 

在 meta-qt6/classes/ 目录下创建 populate_sdk_qt6.bbclass 文件。

-------------------------------

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"

-------------------------------

 

 

在 meta-qt6/recipes-qt/packagegroups/ 目录下创建  packagegroup-qt6-qtcreator-debug.bb 文件。

-------------------------------

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 \ "

-------------------------------

 

在 meta-toradex-demos/recipes-images/images/ 目录下创建  packagegroup-tdx-qt6.bb 文件。

-------------------------------

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 \ "

-------------------------------

 

在 meta-toradex-demos/recipes-images/images/ 目录下创建  tdx-reference-multimedia-qt6-image.bb 文件。

-------------------------------

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 \ "

-------------------------------

 

在 build/conf/bblayers.conf 将 meta-qt6 添加进来,并移除原来的 meta-qt5

-------------------------------

# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf # changes incompatibly LCONF_VERSION = "7" BBPATH = "${TOPDIR}" BBFILES ?= "" BBLAYERS ?= " \   ${TOPDIR}/../layers/meta-toradex-nxp \   ${TOPDIR}/../layers/meta-freescale \   ${TOPDIR}/../layers/meta-freescale-3rdparty \   \   ${TOPDIR}/../layers/meta-toradex-bsp-common \   \   ${TOPDIR}/../layers/meta-openembedded/meta-oe \   ${TOPDIR}/../layers/meta-openembedded/meta-filesystems \   ${TOPDIR}/../layers/meta-openembedded/meta-gnome \   ${TOPDIR}/../layers/meta-openembedded/meta-xfce \   ${TOPDIR}/../layers/meta-openembedded/meta-networking \   ${TOPDIR}/../layers/meta-openembedded/meta-multimedia \   ${TOPDIR}/../layers/meta-openembedded/meta-python \   ${TOPDIR}/../layers/meta-freescale-distro \   ${TOPDIR}/../layers/meta-toradex-demos \   ${TOPDIR}/../layers/meta-qt5 \   \   \   ${TOPDIR}/../layers/meta-toradex-distro \   ${TOPDIR}/../layers/meta-yocto/meta-poky \   ${TOPDIR}/../layers/openembedded-core/meta \ " #${TOPDIR}/../layers/meta-qt5

-------------------------------

 

build/conf/local.conf 添加下面两个配比,移除 X11 和 directfb 相关配置。

-------------------------------

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

-------------------------------

 

 

最后使用 bitbake 命令即可编译包含 Qt6 的镜像和 SDK

审核编辑(
王静
)
投诉建议

提交

查看更多评论
其他资讯

查看更多

Toradex 发布基于TI AM62处理器的新的 Verdin 计算机模块产品

NXP iMX8系列处理器Pin Multiplexing定义说明

在设计载板时添加USB-C - 第1部分

NXP iMX8平台上使用imx-gpu-sdk开发

在 Linux 系统上 Docker 容器的性能影响