toradex的个人空间 https://blog.eetop.cn/?1539194 [收藏] [复制] [分享] [RSS]

日志

2025-09-19

已有 29 次阅读| 2025-9-19 14:53 |系统分类:嵌入式| ARM, Linux, Codesys, NXP, iMX8MP

By Toradex 胡珊逢

简介

之前的文章中我们介绍了如何在 Verdin AM62 上运行 CODESYS,demo 的界面通过浏览器呈现。CODESYS 还提供 TargetVisu 组件,借助 Qt 可以在本地设备上直接显示应用,而无需启动浏览器。本文将以 Verdin iMX8MP 为例,说明如何在 Yocto 镜像中添加相关组件,并安装 TargetVisu。

 

硬件介绍

Verdin iMX8MP采用 NXP iMX8M Plus SoC,具有 4x Cortex-A53 和 Cortex-M7 核心,神经网络处理单元(NPU)可以加速 AI 应用。模块提供多种 DDR RAM,eMMC 容量等配置,满足用户多样的需求。

 

 

Yocto 镜像配置

首先参考 Build a Reference Image with Yocto Project/OpenEmbedded搭建 Yocto 编译环境。在 BSP7 对应的 scathgap 分支版本中,默认使用 Qt5,CODESYS TargetVisu 则需要使用 Qt6,所以我们需要添加 meta-qt6 layer。这里我们使用 v6.8.3 版本的 Qt6 作为演示。

 

$ cd layers
$ git clone https://code.qt.io/yocto/meta-qt6.git
$ cd meta-qt6
$ git checkout v6.8.3

 

在 build/conf/bblayers.conf 中把原来的使用的 ${TOPDIR}/../layers/meta-qt5 改为 ${TOPDIR}/../layers/meta-qt6。然后把 packagegroup-tdx-qt6.bb 和 tdx-reference-multimedia-qt6-image.bb 放到 layers/meta-toradex-demos/recipes-images/images 目录下。同时把该目录下原有的 tdx-reference-multimedia-image.bb 移到到其他位置,例如用户根目录,如果后续要重新编译基于 Qt5 的镜像,可以将其移回来,并恢复之前的 bblayers.conf 文件。

 

· packagegroup-tdx-qt6.bb

DESCRIPTION = "Package group for i.MX"
LICENSE = "MIT"

PACKAGE_ARCH = "${MACHINE_ARCH}"

inherit packagegroup

RDEPENDS:${PN} = " \
  ${QT6_IMAGE_INSTALL_APPS} \
  ${QT6_IMAGE_INSTALL_FONTS} \
  ${QT6_IMAGE_INSTALL_QUICK3D} \
  ${@bb.utils.contains('DISTRO_FEATURES', 'wayland',     'qtwayland qtwayland-plugins', '', d)}"

QT6_IMAGE_INSTALL_APPS = ""
#QT6_IMAGE_INSTALL_APPS:imxgpu3d = "${@bb.utils.contains("MACHINE_GSTREAMER_1_0_PLUGIN", "imx-gst1.0-plugin", "imx-qtapplications", "", d)}"

#QT6_IMAGE_INSTALL_CINEMATICEXPERIENCE        = ""
#QT6_IMAGE_INSTALL_CINEMATICEXPERIENCE:imxgpu = "cinematicexperience-rhi"

QT6_IMAGE_INSTALL_FONTS = "ttf-dejavu-common ttf-dejavu-sans ttf-dejavu-sans-mono ttf-dejavu-serif "

QT6_IMAGE_INSTALL_QUICK3D = "qtquick3d qtquick3d-dev"

 

· 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-fsl-isp \
  packagegroup-tdx-qt6 \
  bash \
  coreutils \
  less \
  makedevs \
  mime-support \
  net-tools \
  util-linux \
  v4l-utils \
  \
  gpicview \
  media-files \
"

 

在 build/conf/local.conf 添加 TargetVisu 运行所需的其他组件。

IMAGE_INSTALL:append = " rt-tests qtsvg qtwebengine ncurses procps nano"
PACKAGECONFIG:append:pn-qtbase = " widgets"

 

因为 CODESYS 的运行依赖于 RT-Linux,在编译的时候指定 DISTRO=tdx-xwayland-rt 就可以给内核打上实时补丁。

$ MACHINE=verdin-imx8mp DISTRO=tdx-xwayland-rt \
IMAGE=tdx-reference-multimedia-qt6-image

 

编译完成后使用 Toradex Easy Installer 安装到 Verdin iMX8MP 模块上即可。

 

CODESYS IDE 配置

参考这篇文章在电脑上完成 CODESYS IDE 安装。并且同样需要把 CODESYS Control 安装到 Verdin iMX8MP。设备的名字和登录密码设置也先完成,后面 codesysvisualization 需要使用该信息。

opkg install codesyscontrol_linuxarm64.ipk

 

在 CODESYS IDE 中继续安装 CODESYS TargetVisu for Linux SL。在 C:\Program Files\CODESYS 3.5.21.10\CODESYS\CODESYS TargetVisu for Linux SL\Delivery\visualizationarm64路径中可以看到 deb 格式的 codesysvisualization_visualizationarm64 安装文件。由于默认编译的镜像不支持 deb 安装包,需要在 Debian 系统如 Ubuntu 中提取相关文件,直接复制到 Verdin iMX8MP 上。

 

CODESYS TargetVisu 安装

在电脑上运行下面命令提取安装文件到 codesysvisualization_file 文件夹。

$ dpkg-deb -x codesysvisualization_visualizationarm64_4.16.0.0_arm64.deb \
codesysvisualization_file

提取后可以看到以下文件。除了 usr 目录外,其他的都可以复制到对应的位置。

├── etc
│   └── codesysvisualization
│       ├── CODESYSVisualization.cfg
│       ├── CODESYSVisualizationTV.cfg
│       └── CODESYSVisualization_User.cfg
├── opt
│   └── codesysvisualization
│       ├── bin
│       └── codesysvisualization.service
├── usr
│   └── share
│       └── doc
└── var
  └── opt
      └── codesysvisualization

 

例如在 Verdin iMX8MP 上执行下面命令复制文件。

# cp -r etc/* /etc/
# cp -r opt/* /opt/
# cp -r var/* /var/

 

运行 TargetVisu Demo

在 Verdin iMX8MP 上运行下面命令启动 codesyscontrol 和 codesysvisualization。

# /etc/init.d/codesyscontrol start
# /opt/codesysvisualization/bin/codesysvisualization.bin \
/etc/codesysvisualization/CODESYSVisualization.cfg

Verdin iMX8MP 屏幕上会显示寻找设备,点击 Scan network,选择当前的 verdin-imx8mp。

codesys_targetvisu_on_device_scan_network.png 

接下来的界面中输入之前在 IDE 上配置的用户名和密码。

codesys_targetvisu_on_device_login.png 

在 IDE 里面创建并运行一个工程后,在设备端的屏幕同样可以显示该应用。

总结

文章介绍了如何在 Verdin iMX8MP 上使用 CODESYS TargetVisu 组件直接在本地显示 CODESYS 应用,而无需启动浏览器。




点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 3

    粉丝
  • 0

    好友
  • 1

    获赞
  • 2

    评论
  • 13926

    访问数
关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-9-19 19:43 , Processed in 0.032027 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部