C

如何创建 Qt 开机映像

本主题描述了如何构建自定义 Qt 开机映像。在开始构建映像之前,请确保您已经按照《设置 Qt 开机构建环境》中的说明设置了 Yocto 环境。

初始化 Yocto 构建环境

使用 Google repo 工具初始化 Yocto 环境

cd <BuildDir>
repo init -u https://code.qt.io/yocto/boot2qt-manifest -m <manifest>
repo sync

其中 manifestboot2qt-manifest 存储库中可用的 XML 清单文件之一。为每个 Qt 版本都提供了一个单独的清单文件,所有当前的开发分支都有遵循最新 Qt 变化的清单。一些硬件厂商的目标使用他们自己的清单。有关目前支持的设备和它们的清单的更多信息,请参阅下表。

设置 Yocto 环境 后,您需要为目标设备配置构建环境。

要配置 Linux 的构建环境,请在终端中运行以下命令

export MACHINE=imx8qm-mek
source ./setup-environment.sh

以下表格列出了当前支持的设备所使用的 MACHINE 值。其他目标设备可能可在其他元层中可用。

MACHINEmanifest
Amazon AWS EC2 ARM64aws-ec2-arm64aws/v6.7.2.xml
Intel NUCintel-skylake-64v6.7.2.xml
NVIDIA Jetson AGX Xavier 开发者套件jetson-agx-xavier-devkitv6.7.2.xml
NVIDIA Jetson AGX Orin 开发者套件jetson-agx-orin-devkitv6.7.2.xml
NXP i.MX 8M Mini LPDDR4 评估套件imx8mm-lpddr4-evkv6.7.2.xml
NXP i.MX 8M Nano LPDDR4 评估套件imx8mn-lpddr4-evkv6.7.2.xml
NXP i.MX 8M Plus LPDDR4 评估套件imx8mp-lpddr4-evkv6.7.2.xml
NXP i.MX 8MQuad 评估套件imx8mq-evkv6.7.2.xml
NXP i.MX 8MQuadMax 多感官启用套件imx8qm-mekv6.7.2.xml
NXP i.MX 8MQuadXPlus 多感官启用套件imx8qxp-mekv6.7.2.xml
Qualcomm Robotics RB5 开发者套件qcom-armv8aqcom/v6.7.2.xml
NXP i.MX 93 11x11 LPDDR4X 评估套件imx93-11x11-lpddr4x-evkv6.7.2.xml
Raspberry Pi 4 64 位raspberrypi4-64v6.7.2.xml
Renesas R-Car M3 开发者套件专业版m3ulcbrenesas/v6.7.2.xml
Renesas R-Car H3 开发者套件高级版h3ulcbrenesas/v6.7.2.xml
瑞萨R-Car H3 M3 Salvator-X(S)salvator-xrenesas/v6.7.2.xml
ST STM32MP15 评估stm32mp15-evalst/v6.7.2.xml
ST STM32MP15 开发板stm32mp15-discost/v6.7.2.xml
德州仪器SK-AM62am62xx-evmti/v6.7.2.xml
德州仪器SK-AM69j784s4evmti/v6.7.2.xml
托拉德斯Apalis iMX6apalis-imx6toradex/v6.7.2.xml
托拉德斯Apalis iMX8apalis-imx8toradex/v6.7.2.xml
托拉德斯Colibri iMX6ULLcolibri-imx6ulltoradex/v6.7.2.xml

构建引导到Qt

引导到Qt嵌入式Linux的主要构建目标是Qt板级支持包,它由目标镜像和外部工具链组成,可以与Qt Creator一起用于构建Qt应用程序。按照以下方式运行构建:

bitbake meta-b2qt-embedded-qbsp

如果您不需要完整的QBSP构建,您也可以分别构建镜像或工具链,如下所示:

bitbake b2qt-embedded-qt6-image
bitbake meta-toolchain-b2qt-embedded-qt6-sdk

构建结果位于您的Yocto构建目录中的tmp/deploy/qbsp/tmp/deploy/images/tmp/deploy/sdk/下。

注意:您还可以使用Flashing Wizard进行Yocto构建。

~/Qt/Tools/b2qt/b2qt-flashing-wizard tmp/deploy/images/${MACHINE}

开发主机

QBSP和工具链构建可以针对不同的开发主机平台。这可以通过使用环境变量SDKMACHINE来选择。

SDKMACHINE开发主机
x86_64Linux 64位(默认值)
aarch64Linux 64位ARM
x86_64-mingw32Windows 64位

您还可以在macOS主机上使用x86_64aarch64主机目标:如果您使用的是基于Intel的Mac,则使用x86_64;如果使用的是苹果硅Mac,则使用aarch64

安装QBSP

新构建的QBSP位于您的Yocto构建目录的tmp/deploy/qbsp/下。Qt板级支持包安装指南描述了如何通过Qt在线安装程序安装QBSP文件。安装QBSP后,将QBSP中包含的镜像文件刷写到目标设备中。

配置Qt Creator

如果您已构建并安装了QBSP,您已经将工具链配置到了Qt Creator中,无需遵循本节中的说明。但是,如果您已单独构建工具链,您需要安装它并将其设置到Qt Creator中,以便为您的设备开始开发。

Linux

在Linux上,通过运行位于Yocto构建目录下tmp/deploy/sdk/处的生成.sh脚本来安装工具链。安装完成后,用以下脚本配置Qt Creator:

<TOOLCHAIN_DIR>/configure-qtcreator.sh

这将在Qt Creator中设置一个新的kit,使用已安装工具链中的工具链和Qt。新kit在编辑 > 首选项 > 套件下可见。

Windows

在Windows上,您首先需要提取位于Yocto构建目录下tmp/deploy/sdk/处的生成.7z文件。然后您必须手动设置Qt Creator,以便为您的设备开始开发。要添加Qt版本、kit、编译器和调试器,请参阅检查构建和运行设置

Windows工具链使用环境变量SDKPATH,必须指向提取的工具链位置。您必须在Qt Creator的Kit设置中添加此变量。请记住使用正斜杠作为路径分隔符。例如:

SDKPATH=C:/Qt/Boot2Qt/device/toolchain

在不使用 Qt Creator 的情况下使用工具链

您也可以在不使用 Qt Creator 的情况下使用工具链。对于基于 QMake 的项目,使用 sysroots/x86_64-pokysdk-linux/usr/bin/qmake,对于基于 CMake 的项目,使用 sysroots/x86_64-pokysdk-linux/usr/bin/qt-cmake

要使用工具链进行更通用的交叉开发,您需要从工具链中加载环境配置脚本来设置环境。更多信息,请参阅 Yocto 项目 文档

在某些 Qt 许可下可用。
了解更多。