原创 在 NXP iMX8 上进行 Qt5移植和开发

2019-10-15 16:55 3782 20 2 分类: MCU/ 嵌入式

By Toradex 胡珊逢

简介

高清多媒体,甚至是 4K 视频不仅在消费领域有着旺盛的需求,在行业领域同样也获得广泛的关注。NXP 最新的IMX8 处理器不仅配有强劲的 CPU和GPU,还对多媒体应用提供了完善的解决方案,如硬件解码支持H.265 HEVC Main Profile 2160p60 Level 5.1。下面我们将介绍如何从Yocto开始构建包含Gstreamer 的BSP、使用Toradex Easy Installer 安装系统、配置LVDS显示和播放多媒体文件。


本文演示所使用的ARM平台来自Toradex基于NXP iMX8QM SoC平台的Apalis iMX8QM ARM核心板。



NXP 的iMX8 处理器有其出色的CPU和GPU性能吸引了从汽车、工业自动化到医疗、IoT、消费类电子等诸多领域的注意。该处理器为创建优秀的人机交互方案提供了一个新的平台。本文接下来将介绍如何在 Colibri iMX8 平台上进行广受欢迎的GUI方案Qt的移植和开发。


Qt编译

交叉编译Qt是一项较为繁重的任务,特别是从Qt源码直接编译,我们曾经撰写过一篇文章来阐述如何完成这一操作。但是本文会采用Yocto/OpenEmbedded框架来完成。Yocto/OpenEmbedded能够让用户免受交叉编译过程中各类软件包的依赖关系,并利用现有的OpenEmbedded layer和recipes,方便集成第三方软件,例如Qt等。


Toradex为其模块提供完善的Yocto/OpenEmbedded配置文件,用户下载后能够直接使用。自Toradex的 V3.0 BSP 开始,BSP基于Poky,这是一个相对精简版本,因此用户需要根据项目需求添加所需组件,如常见的Qt、Gstreamer等。


首先根据该文章的介绍,下载适用于Colibri iMX8 的Yocto环境,BSP 3.0,thud分支。


在Yocto中的layers/meta-toradex-demos/recipes-images/images目录添加新的bb文件如qt5-eglfs-wayland.bb ,包含Qt的BSP从该文件生成。这里console-tdx-image.bb作为基础,向里面添加Qt、Gstreamer组件,以及中文字体。当然还可以添加你所需要的软件,例如时区信息tzdata等。


在layers/meta-toradex-demos/recipes-qt/qt5/packagegroup-qt5.bb中移除qtwebkit。移除SDK中的qtwebkit qt3d,创建layers/meta-qt5/recipes-qt/packagegroups中添加packagegroup-qt5-toolchain-target.bbappend文件:

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

#remove qtwebkit qt3d

RDEPENDS_${PN}_remove = "qtwebkit qtwebkit-dev qtwebkit-mkspecs qtwebkit-qmlplugins qt3d qt3d-dev qt3d-mkspecs qt3d-qmlplugins"

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


由于目前thud版本Yocto在编译Qt5.11时会遇到上述组件编译错误,如果用户不使用这些组件,对其则不产生影响。后续我们将会完善编译过程。


接下来在build/conf/local.conf 的结尾添加以下内容:

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

IMAGE_INSTALL_append = " qtwayland rsync"

PACKAGECONFIG_append_pn-qtbase = " libinput gles2 freetype"

PACKAGECONFIG_append_pn-qtwayland = " wayland-egl"

DISTRO_FEATURES_remove = " x11"

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


最后执行编译,运行下面命令

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

MACHINE=colibri-imx8x bitbake qt5-eglfs-wayland

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


整个编译过程会持续数个小时,最后在build/deploy目录的images/colibri-imx8x和sdk文件夹中会生成BSP安装包和SDK工具。也可以从我们的FTP服务器上下载相应的文件。


BSP安装

Toradex的iMX8 模块均支持Toradex Easy Installer 安装BSP,用户可以参考该网页说明进行操作。


Qt SDK配置

Qt5.11 的SDK配置请参考我们开发者中心的说明。


Qt 应用开发

我们将使用Qt官方演示touch-interaction为例进行说明。按照上面说明正确完成SDK配置后,可以直接编译并通过部署该demo。QtCreator的应用部署需要使用rsync,因此我们在之前的local.conf配置将其添加进来。


Cobliri iMX8 V3.0 BSP采用了Wayland作为图形化后端,Qt的运行也将基于wayland。对于电阻触摸屏用户,在运行的时需要先校准触摸屏。运行 weston-touch-calibrator,获取触摸设备路径。

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

root@colibri-imx8x:~/touchinteraction# weston-touch-calibrator 

could not load cursor 'dnd-move'

could not load cursor 'dnd-copy'

could not load cursor 'dnd-none'

device "/sys/devices/platform/5a800000.i2c/i2c-16/16-002c/input/input1/event1" - head "DPI-1"

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


校准触摸屏

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

root@colibri-imx8x:~# weston-touch-calibrator /sys/devices/platform/5a800000.i2c/i2c-16/16-002c/input/input1/event1

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

依次点击屏幕上的校准坐标。

对于电容触摸屏用户,则无需校准,可以直接使用。当然前提是触摸屏的驱动能够正常工作。


运行Qt应用

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

root@colibri-imx8x:~/touchinteraction# export QT_QPA_PLATFORM=wayland

root@colibri-imx8x:~/touchinteraction# ./touchinteraction

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

 

image001.gif


总结

Qt和iMX8的组合为优秀的用户交互体验提供了一个良好的实现平台。Toradex致力于为用户提供易于使用的iMX8平台,无论是稳定、可靠的硬件模块,还是丰富的软件工具,帮助用于快速快发Qt应用。上面简要地介绍了在iMX8上Qt的移植和开发,该方法同样也适用于Toradex其他的iMX8产品,如最高端的i.MX8QuadMax。


作者: hai.qin_651820742, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-1864768.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论1条评论)

登录后参与讨论

curton 2019-10-16 21:09

学习了
相关推荐阅读
hai.qin_651820742 2024-11-29 15:29
基于 NXP iMX8QM 运行 QNX
By Toradex胡珊逢简介嵌入式领域的部分应用对安全、可靠、实时性有切实的需求,在诸多实现该需求的方案中,QNX 是经行业验证的选择。在 QNX SDP 8.0 上 BlackBerry 推出了 ...
hai.qin_651820742 2024-11-12 10:33
Yocto Linux BSP7 新版本介绍
By Toradex胡珊逢简介Toradex 已经发布了适用于 Verdin/Apalis/Colibri 模块系列的 Linux BSP 7 版本,Yocto Project 升级到 scarthg...
hai.qin_651820742 2024-10-30 10:56
基于 NXP iMX8MP 平台简单测试 PySide6 应用
By Toradex秦海1). 简介Python binding 的 Qt GUI 库一直以来有两种,最初是由 Riverbank Computing 公司在 2000 年初发布,基于 Qt4 版本推...
hai.qin_651820742 2024-10-11 15:15
Verdin AM62使用CODESYS
By Toradex胡珊逢简介CODESYS 是基于 IEC 61131-3 的 PLC 开发工具,在工业控制、交通等领域中有着广泛的应用。文章将介绍如何在 Toradex 采用 TI AM62 So...
hai.qin_651820742 2024-09-18 18:07
Verdin AM62 引脚复用配置
By Toradex胡珊逢简介Verdin AM62 是 Toradex 基于 TI AM623/AM625 SoC 的 Arm 计算机模块。它最多提供 4 个 A53 和 1 个 M4F 处理器。这...
hai.qin_651820742 2024-09-18 17:48
TI AM62X Secure Boot 流程简述
By Toradex秦海1). 简介嵌入式设备对于网络安全的要求越来越高,而 Secure boot就是其中重要的一部分。 TI AM62X 处理器基于行业标准 X.509&nbs...
我要评论
1
20
关闭 站长推荐上一条 /2 下一条