"); //-->
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 显示器。
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 显示器上看到相应的内容。
上面介绍了双屏显示的配置,在 Linux BSP 上可以十分便捷得实现,除了提到的 HDMI 接口,对于 LVDS 也是同样的配置方法。
参考:
https://developer.toradex.com/torizon/provided-containers/working-with-weston-on-torizoncore/#multi-display
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
WinCE+ARM开发及关键技术 上
uClinux系统分析
最新ARM技术和嵌入式技术发展动态 中
ARM 展示小型低功耗上网本样品
Arm CEO:AI智能体将推动CPU核心数升至 512
ARM开发详解
[转帖]NeuLinux嵌入式Linux开发平台
arm学习资料
MF RC522读写器电路图
Arm遭遇监管危机:FTC针对其技术授权启动反垄断调查
ARM Axion 处理器加持谷歌第八代 TPU,云端全面转向智能体 AI 架构
边缘 AI 加速的 Arm Cortex‑M0+ MCU 如何为电子产品注入更强智能
嵌入式LINUX开发套件常见问题解答
Arm财报过山车:营收创纪录,股价跌7%
WinCE+ARM开发及关键技术 下
Linux系统下USB摄像头驱动开发
基于ARM-Linux的MiniGUI的仿真与移植
最新ARM技术和嵌入式技术发展动态 下
面向ARM系统集成的FPGA片上系统解决方案
汽车暖通空调(HVAC)控制参考设计
Arm 宣布推出 Performix,为开发者带来 AI 时代必备的可扩展性能
基于Linux平台的温度传感器DS18B20驱动程序设计
走进智能工厂 为何智能诊断是持续运行的关键
Linux系统的DS18B20驱动程序源代码
ARM嵌入式系统开发:软件设计与优化
ARM嵌入式系统开发
Linux内核源代码的阅读和工具介绍(aqian转)
ARM嵌入式软件编程经验谈
uClinux系统分析
Arm宣布推出Performix,为开发者带来 AI 时代必备的可扩展性能