工控網(wǎng)首頁
>

應(yīng)用設(shè)計(jì)

>

NXP iMX8M Plus Qt5 雙屏顯示

NXP iMX8M Plus Qt5 雙屏顯示

簡介

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

硬件介紹

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 適配器,可以方便地使用各類接口顯示器。本次演示將使用兩個(gè) HDMI 顯示器。

NXP iMX8M Plus Qt5 雙屏顯示614.png 

軟件配置

Verdin iMX8M Plus 模塊使用 Toradex Multimedia Reference Image V6.4.0 版本,其包含 Qt5.15 相關(guān)運(yùn)行環(huán)境。默認(rè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 目錄下可以看到兩個(gè) HDMI 接口,分別是 HDMI-A-1 和 HDMI-A-2,但是它們都屬于同一個(gè) DRM 接口 card1。所以系統(tǒng)只能運(yùn)行一個(gè) weston 實(shí)例。

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

在單個(gè) DRM 接口下連接兩個(gè)屏幕需要使用 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 應(yīng)用在 weston 環(huán)境中運(yùn)行時(shí)會(huì)對應(yīng)一個(gè) app_id,例如 BSP 中默認(rèn)的應(yīng)用 /usr/share/cinematicexperience-1.0。在命令行中啟動(dòng)該應(yīng)用前添加 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")

另外一個(gè) Qt 應(yīng)用位于 `/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")

 

從上面的命令中可以看到兩個(gè)應(yīng)用的 app_id 分別是 Qt5_CinematicExperience 和 smarthome。相應(yīng)地在 /etc/xdg/weston/weston.ini 創(chuàng)建兩個(gè) [output]。指定在 HDMI-A-1 上顯示 Qt5_CinematicExperience 應(yīng)用,而 HDMI-A-2 上則顯示 smarthome 應(yīng)用。配置完成后保存并重啟。

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

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

分別啟動(dòng)上面兩個(gè) Qt 應(yīng)用后可以在兩個(gè) HDMI 顯示器上看到相應(yīng)的內(nèi)容。

NXP iMX8M Plus Qt5 雙屏顯示2380.png 

總結(jié)

上面介紹了雙屏顯示的配置,在 Linux BSP 上可以十分便捷得實(shí)現(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 計(jì)算機(jī)模塊

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

NXP iMX8MM Cortex-M4 核心 GPT Capture 測試