新闻  |   论坛  |   博客  |   在线研讨会
在 NXP iMX8 上进行 Qt5移植和开发
toradex | 2019-10-15 16:57:02    阅读:848   发布文章

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。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客