当前位置: 首页 > article >正文

NXP iMX8M Plus Qt5 双屏显示

By Toradex胡珊逢

简介

双屏显示在显示设备中有着广泛的应用,可以面向不同群体展示特定内容。文章接下来将使用 Verdin iMX8M Plus 的 Arm 计算机模块演示如何方便地在 Toradex 的 Linux BSP 上实现在两个屏幕上显示独立的 Qt 应用。

硬件介绍

Verdin iMX8M Plus 模块基于 NXP 的 iMX8M Plus 处理器,在显示接口方面支持 HDMI,双通道 LVDS 和 4-lane MIPI DSI 输出。在 Dahlia 底板上可以直接使用其中的 HDMI 和 4-lane MIPI DSI 接口。Toradex 提供了DSI 转 LVDS,DSI 转 HDMI 适配器,可以方便地使用各类接口显示器。本次演示将使用两个 HDMI 显示器。

NXP iMX8M Plus Qt5 双屏显示614.png

软件配置

Verdin iMX8M Plus 模块使用 Toradex Multimedia Reference Image V6.4.0 版本,其包含 Qt5.15 相关运行环境。默认系统中已经使能了 Verdin iMX8M Plus 原生的 HDMI 和 DSI 转 HDMI 适配板。 

root@verdin-imx8mp-07320826:~# cat /boot/overlays.txt 
fdt_overlays=verdin-imx8mp_hdmi_overlay.dtbo verdin-imx8mp_dsi-to-hdmi_overlay.dtbo

在 /sys/class/drm 目录下可以看到两个 HDMI 接口,分别是 HDMI-A-1 和 HDMI-A-2,但是它们都属于同一个 DRM 接口 card1。所以系统只能运行一个 weston 实例。

root@verdin-imx8mp:/sys/class/drm# ls
card0  card1  card1-HDMI-A-1  card1-HDMI-A-2  renderD128  version

在单个 DRM 接口下连接两个屏幕需要使用 weston 的 kiosk-shell 和  app-ids 。首先在 /etc/xdg/weston/weston.ini 文件的  [core]  中添加  shell=kiosk-shell.so。

[core]
#gbm-format=argb8888
idle-time=0 
use-g2d=1
xwayland=true
repaint-window=16
#enable-overlay-view=1
modules=screen-share.so
shell=kiosk-shell.so

Qt 应用在 weston 环境中运行时会对应一个 app_id,例如 BSP 中默认的应用 /usr/share/cinematicexperience-1.0。在命令行中启动该应用前添加 WAYLAND_DEBUG=1。

root@verdin-imx8mp:~# cd /usr/share/cinematicexperience-1.0
root@verdin-imx8mp:# WAYLAND_DEBUG=1 ./Qt5_CinematicExperience 2>&1|grep app
[2013234.641]  -> xdg_toplevel@21.set_app_id("Qt5_CinematicExperience")

另外一个 Qt 应用位于 `/usr/share/qtsmarthome-1.0/`中。

root@verdin-imx8mp:~# cd /usr/share/cinematicexperience-1.0
root@verdin-imx8mp:# WAYLAND_DEBUG=1 ./smarthome 2>&1|grep app
[2173895.185]  -> xdg_toplevel@21.set_app_id("smarthome")

从上面的命令中可以看到两个应用的 app_id 分别是 Qt5_CinematicExperience 和 smarthome。相应地在 /etc/xdg/weston/weston.ini 创建两个 [output]。指定在 HDMI-A-1 上显示 Qt5_CinematicExperience 应用,而 HDMI-A-2 上则显示 smarthome 应用。配置完成后保存并重启。

[output]
name=HDMI-A-1
app-ids=Qt5_CinematicExperience
mode=1920x1080

[output]
name=HDMI-A-2
app-ids=smarthome
mode=1920x1080

分别启动上面两个 Qt 应用后可以在两个 HDMI 显示器上看到相应的内容。

NXP iMX8M Plus Qt5 双屏显示2380.png


总结

上面介绍了双屏显示的配置,在 Linux BSP 上可以十分便捷得实现,除了提到的 HDMI 接口,对于 LVDS 也是同样的配置方法。

参考:
https://developer.toradex.com/torizon/provided-containers/working-with-weston-on-torizoncore/#multi-display


http://www.kler.cn/a/153907.html

相关文章:

  • NavVis VLX3的精度怎么去进行验证?【上海沪敖3D】
  • 如何通过统计来反映工业新产业发展情况
  • ArkTS组件结构和状态管理
  • Qt的一个基本用户登录界面编写|| 从0搭建QT的信号与槽的应用案例 ||Qt样式表的应用
  • Springboot3.3.5 启动流程之 tomcat启动流程介绍
  • 3D Streaming 在线互动展示系统:NVIDIA RTX 4090 加速实时渲染行业数字化转型
  • 【开源】基于JAVA语言的校园电商物流云平台
  • 匿名结构体类型、结构体的自引用、结构体的内存对齐以及结构体传参
  • Git多库多账号本地SSH连接配置方法
  • LINUX 嵌入式C编程--信号编程
  • IDEA在左下角显示当前代码所属的类名/方法名
  • vue---消息订阅与发布(pubsub)
  • 网络通信原理,进制转化总结
  • SQL Server数据库部署
  • 九、FreeRTOS之FreeRTOS列表和列表项
  • 基于ASP.NET MVC技术的图书管理系统的设计与实现
  • Discuz论坛自动采集发布软件
  • JS中 require 与 import 的区别
  • Android File Transfer for Mac:畅享强大的安卓文件传输工具
  • Sock0s1.1
  • ssh连接docker容器处理备忘
  • python处理日期和时间
  • C++模版
  • android开发:获取手机IP和UDP广播
  • 支持Upsert、Kafka Connector、集成Airbyte,Milvus助力高效数据流处理
  • 3D建模基础教程:常用修改器讲解:FFD、壳、法线、uvw展开等