工控網(wǎng)首頁
>

應用設計

>

NXP iMX8M Plus Qt5 雙屏顯示

NXP iMX8M Plus Qt5 雙屏顯示

簡介

雙屏顯示在顯示設備中有著廣泛的應用,可以面向不同群體展示特定內(nèi)容。文章接下來將使用 Verdin iMX8M Plus 的 Arm 計算機模塊演示如何方便地在 Toradex 的 Linux BSP 上實現(xiàn)在兩個屏幕上顯示獨立的 Qt 應用。

硬件介紹

Verdin iMX8M Plus 模塊基于 NXP 的 iMX8M Plus 處理器,在顯示接口方面支持 HDMI,雙通道 LVDS 和 4-lane MIPI DSI 輸出。在 Dahlia 底板上可以直接使用其中的 HDMI 和 4-lane MIPI DSI 接口。Toradex 提供了DSI 轉(zhuǎn) LVDS,DSI 轉(zhuǎn) HDMI 適配器,可以方便地使用各類接口顯示器。本次演示將使用兩個 HDMI 顯示器。

NXP iMX8M Plus Qt5 雙屏顯示614.png 

軟件配置

Verdin iMX8M Plus 模塊使用 Toradex Multimedia Reference Image V6.4.0 版本,其包含 Qt5.15 相關運行環(huán)境。默認系統(tǒng)中已經(jīng)使能了 Verdin iMX8M Plus 原生的 HDMI 和 DSI 轉(zhuǎn) 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。所以系統(tǒng)只能運行一個 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 環(huán)境中運行時會對應一個 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 創(chuàng)建兩個 [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 顯示器上看到相應的內(nèi)容。

NXP iMX8M Plus Qt5 雙屏顯示2380.png 

總結(jié)

上面介紹了雙屏顯示的配置,在 Linux BSP 上可以十分便捷得實現(xiàn),除了提到的 HDMI 接口,對于 LVDS 也是同樣的配置方法。

 

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

審核編輯(
王靜
)
投訴建議

提交

查看更多評論
其他資訊

查看更多

Verdin AM62 LVGL 移植

基于 NXP iMX8MM 測試 Secure Boot 功能

隆重推出 Aquila - 新一代 Toradex 計算機模塊

Verdin iMX8MP 調(diào)試串口更改

NXP iMX8MM Cortex-M4 核心 GPT Capture 測試