作者:HankFu,本文转载自:博客园
有客户问到如何在ZCU106单板/其它MPSOC上,同时支持多个显示器,以便在多个显示器上运行QT应用程序。
Xorg的xorg.conf里可以增加card和screen,同时支持多个显示器。Xorg可以在多个显示器上显示多个QT应用程序。
在嵌入式系统里,更常用的是eglfs_kms,它也可以同时支持多个显示器。接下来以PS-DP和PL-HDMI-Tx为例、说明对应配置和步骤。
首先,在系统里为eglfs_kms设置如下系统变量。
export QT_QPA_PLATFORM="eglfs" export QT_QPA_EGLFS_KMS_ATOMIC=1 export QT_QPA_EGLFS_INTEGRATION="eglfs_kms" export QT_QPA_EGLFS_DEBUG="1" export QT_QPA_EGLFS_FORCE888=1
再分别为DP和HDMI创建eglfs_kms的配置文件。
下面是PS DP的eglfs_kms配置文件,文件名是kms-ps-dp.conf。
{ "device": "/dev/dri/card0", "hwcursor": false, "pbuffers": true, "outputs": [ { "name": "psdp", "mode": "1920x1080" } ] }
下面是PL HDMI-Tx的eglfs_kms配置文件,文件名是kms-pl-hdmi-tx.conf。
{ "device": "/dev/dri/card1", "hwcursor": false, "pbuffers": true, "outputs": [ { "name": "plhdmi", "mode": "1920x1080" } ] }
有了以上文件,在两个不同的ssh窗口里,分别执行以下命令,就能分别为PS-DP、PL-HDMI-Tx启动QT应用程序。
QT_QPA_EGLFS_KMS_CONFIG="/run/kms-ps-dp.conf" /usr/share/examples/opengl/textures/textures QT_QPA_EGLFS_KMS_CONFIG="/run/kms-pl-hdmi-tx.conf" /usr/share/examples/opengl/textures/textures