首页| 行业标准| 论文文档| 电子资料| 图纸模型
购买积分 购买会员 激活码充值

您现在的位置是:团子下载站 > 可编程逻辑 > 【工程师分享】在MPSoC上运行基于eglfs_kms的QT应用程序

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

  • 资源大小:69.52KB
  • 上传时间:2021-12-25
  • 下载次数:0次
  • 浏览次数:84次
  • 资源积分:1积分
  • 标      签:

资 源 简 介

作者:付汉杰,hankf@xilinx.com,文章转载自:赛灵思中文社区论坛 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。 在文件project-spec/meta-user/conf/petalinuxbsp.conf里,增加下列行,可以使libMali.so.9.0指向到/usr/lib/wayland/libMali.so.9.0。 MALI_BACKEND_DEFAULT = "wayland" 也可以在Linux运行的时侯,执行下列命令,使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 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_CONFI 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 4. 参考文章Xilinx Arm Mali-400 Driver
VIP VIP