0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在MPSoC上运行基于eglfs_kms的QT应用程序

YCqV_FPGA_EETre 来源:赛灵思中文社区论坛 作者:赛灵思中文社区论 2021-01-14 10:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1 Xilinx backend

Xilinx为MPSoC支持4种libMali的backend: X11, Wayland/GBM, Fbdev, Headless-EGL。

2 QT

QT支持4种plugin(插件)或者backend,FB,X11,Wayland,eglfs。对不同的plugin(插件)或者backend,QT应用层是一样的。

其中的FB,不能利用GPU做渲染。

EGLFS可以让QT应用直接运行在EGL和OpenGL ES 2.0上。也就是,可以在没有窗口管理器(windowing system like X11 or Wayland)的情况下,运行QT软件。对于有GPU的嵌入式Linux系统,建议使用eglfs。

当使用KMS/DRM时,EGLFS的Backend是eglfs_kms。更多信息,可以参考QT文档,https://doc.qt.io/qt-5/embedded-linux.html

3 Xilinx支持情况

Xilinx支持eglfs_kms。


本文的命令可以在Xilinx的ZCU102和ZCU106单板上运行。所有测试基于ZCU102和ZCU106的PetaLinux BSP的工程。

3.1 rootfs

在Linux的rootfs里,增加qt相关的软件。使用命令petalinux-config -c rootfs配置Linux的rootfs,使能packagegroup-petalinux-qt。

3.2 libMali

使用eglfs_kms时,libMali.so.9.0使用对应的wayland版本,指向到/usr/lib/wayland/libMali.so.9.0。

MALI_BACKEND_DEFAULT = "wayland"

在文件project-spec/meta-user/conf/petalinuxbsp.conf里,增加下列行,可以使libMali.so.9.0指向到/usr/lib/wayland/libMali.so.9.0。

update-alternatives --install /usr/lib/libMali.so.9.0 libmali /usr/lib/wayland/libMali.so.9.0 90

也可以在Linux运行的时侯,执行下列命令,使libMali.so.9.0指向到/usr/lib/wayland/libMali.so.9.0。

3.3 QT环境设置

为了让QT使用eglfs_kms,需要设置下列两个环境变量。

export QT_QPA_PLATFORM=eglfs export QT_QPA_EGLFS_INTEGRATION=eglfs_kms

QT还可以通过JSON文件设置有更多参数可以设置。通过导出 系统变量QT_QPA_EGLFS_KMS_CONFIG,可以指定JSON文件名,比如

export QT_QPA_EGLFS_KMS_CONFIG="/home/root/kms.conf"

kms.conf的内容如下:

{ "device": "/dev/dri/card0", "hwcursor": false, "pbuffers": true, "outputs": [ { "name": "DP", "mode": "3840x2160" } ] }

3.4 检测显示器

通过下列命令检查显示器,并设置它的分辨率。

ls /dev/dri/by-path/ modetest -D fd4a0000.zynqmp-display modetest -D fd4a0000.zynqmp-display -s 43:1920x1080-60@BG24 modetest -D fd4a0000.zynqmp-display -s 43:3840x2160-29.98@BG24

3.5 QT测试程序

3.5.1. 默认测试程序

PetaLinux编译出的文件系统,在目录/usr/share/examples/opengl下,有很多opengl的测试程序,比如cube和textures。

/usr/share/examples/opengl/cube/cube /usr/share/examples/opengl/textures/textures

3.5.2. qt5everywheredemo

更复杂的opengl的测试程序,QtDemo可以通过qt5everywheredemo编译。

下面的命令,直接编译qt5everywheredemo。

petalinux-build -c qt5everywheredemo -x compile

在文件petalinuxbsp.conf里添加下列行后,PetaLinux编译时会包含qt5everywheredemo。

MALI_BACKEND_DEFAULT = "wayland" IMAGE_INSTALL_append = " qt5everywheredemo"

之后在目录/usr/share/qt5everywheredemo-1.0/里能找到

root@xilinx-zcu106-2020_2# find -name "QtDemo" ./usr/share/qt5everywheredemo-1.0/qml/QtDemo ./usr/share/qt5everywheredemo-1.0/QtDemo

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5271

    浏览量

    136069
  • Xilinx
    +关注

    关注

    73

    文章

    2206

    浏览量

    131902
  • 应用程序
    +关注

    关注

    38

    文章

    3346

    浏览量

    60420

原文标题:【工程师分享】在MPSoC上运行基于eglfs_kms的QT应用程序

文章出处:【微信号:FPGA-EETrend,微信公众号:FPGA开发圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    TMS320F28xxx DSP:从内部闪存运行应用程序的全面指南

    TMS320F28xxx DSP:从内部闪存运行应用程序的全面指南 嵌入式系统设计中,让应用程序TMS320F28xxx DSP的内部闪
    的头像 发表于 04-23 13:40 100次阅读

    S32K系列引导加载程序应用程序跨不同定制电路板设计的跳转问题求解

    的微控制器和核心功能 **问题:** 相同的引导加载程序代码 Board 1 完美运行,但无法跳转到 Board 2 的用户
    发表于 04-22 07:02

    S32K3跳转到应用程序后,PTD5没有活动,为什么?

    我正在编写一个微S32K324加载的引导加载程序。 为了解决这个问题,我编写了一个非常简单的引导加载程序应用程序。 引导加载
    发表于 04-16 08:59

    创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—Qt工程编译、GPU核心使用说明

    及 Kits 配置;还介绍评估板运行 Qt 程序程序自启动设置,以及通过 textures 案例演示 Qt+OpenGL 调用 GPU
    的头像 发表于 09-29 14:16 960次阅读
    创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—<b class='flag-5'>Qt</b>工程编译、GPU核心使用说明

    【飞凌T527N开发板试用】QT应用开发

    点击左下角 锤子?图标 就可以交叉编译项目。 编译出的arm架构可执行文件如下: 将目标文件发送到开发板。 开发板运行,自定义的qt应用
    发表于 08-19 15:04

    嵌入式工程师为什么要学QT?

    Qt对嵌入式工程师来说,真的很重要吗? Qt是一个跨平台的C++应用程序开发框架,非常适合嵌入式系统的开发,Qt嵌入式开发中具有很重要的作
    发表于 08-14 15:15

    【米尔RK3506国产开发板评测试用】1、硬件介绍、SDK开发环境和QT开发环境搭建

    进行QT应用程序的开发和部署。 3、QT示例程序编译和下载 Buildroot中添加QT的示例
    发表于 08-02 15:02

    国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—Qt工程编译说明

    本文档主要说明如何将已有Qt工程进行编译,生成可在评估板正常运行的ARM端Qt程序镜像。
    的头像 发表于 07-28 10:10 835次阅读
    国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—<b class='flag-5'>Qt</b>工程编译说明

    【米尔RK3576开发板免费体验】1、开发环境、镜像烧录、QT开发环境搭建以及应用部署

    的设置如下。 完成上述配置后,即可进行QT应用程序的开发和部署。 3、QT示例程序编译和下载 Buildroot中添加
    发表于 07-14 11:26

    CYBT-413061的RFCOMM_Serial_Port SPP演示,AIROC客户端控制应用程序不起作用,什么原因引起的?

    正常,但当启动客户端控制应用程序并打开串行端口时,却什么也没发生--所有控件都是灰色的。 然后,我还按照说明中的建议从 Windows 10 PC 运行 BTSpy 并进行连接 - 客户端控制
    发表于 07-02 06:05

    运行在嵌入式系统的emApps

    在当今快节奏的嵌入式系统世界中,灵活性和适应性是嵌入式系统实现的关键。SEGGER推出了其最新创新:Embedded apps(emApps)应用,类似于手机上的应用程序,可以运行在嵌入式系统
    的头像 发表于 06-18 09:53 1063次阅读
    <b class='flag-5'>运行</b>在嵌入式系统<b class='flag-5'>上</b>的emApps

    全志T536 4核A55 ARM+RISC-V+NPU 17路UART 工业开发板—Qt工程编译说明

    本文主要说明如何将已有Qt工程进行编译,生成可在评估板正常运行的ARM端Qt程序镜像。
    的头像 发表于 06-09 16:56 1724次阅读
    全志T536 4核A55 ARM+RISC-V+NPU 17路UART 工业开发板—<b class='flag-5'>Qt</b>工程编译说明

    如何在2K0300开发板搭建Qt环境

    近期迅为售后团队反馈,许多用户咨询:2K0300处理器采用了LA264处理器核,若要在该处理器运行Qt程序,由于架构发生了变化,其使用方法是否仍与ARM平台保持一致?
    的头像 发表于 05-16 14:27 839次阅读
    如何在2K0300开发板<b class='flag-5'>上</b>搭建<b class='flag-5'>Qt</b>环境

    基于RK3576开发板的QT GUI例程

    EASYEAI Orin-Nano开发板搭载了带有xfce桌面环境的Debian系统,支持Qt应用程序的开发和运行。开发板采用RK3576 CPU,性能强大,可直接在板编译
    的头像 发表于 05-14 10:26 1647次阅读
    基于RK3576开发板的<b class='flag-5'>QT</b> GUI例程

    同样的代码官方开发板运行正常,自己板子就跑不起来,怎么办?

    同样的代码Nordic官方开发板可以运行正常,但在自己板子就跑不起来,如果你碰到了上述情况,建议按照如下步骤进行自检: 首先确认用户板元器件焊接良好,功能正常。如果你的板子有LE
    的头像 发表于 05-12 15:26 907次阅读
    同样的代码<b class='flag-5'>在</b>官方开发板<b class='flag-5'>上</b><b class='flag-5'>运行</b>正常,<b class='flag-5'>在</b>自己板子<b class='flag-5'>上</b>就跑不起来,怎么办?