0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在MPSoC上運(yùn)行QT應(yīng)用程序

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2022-02-08 14:34 ? 次閱讀

作者:付漢杰,文章轉(zhuǎn)載自:賽靈思中文社區(qū)論壇

1. Xilinx backend

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

2. QT

QT支持4種plugin(插件)或者backend,F(xiàn)B,X11,Wayland,eglfs。對不同的plugin(插件)或者backend,QT應(yīng)用層是一樣的。

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

EGLFS可以讓QT應(yīng)用直接運(yùn)行在EGL和OpenGL ES 2.0上。也就是,可以在沒有窗口管理器(windowing system like X11 or Wayland)的情況下,運(yùn)行QT軟件。對于有GPU的嵌入式Linux系統(tǒng),建議使用eglfs。

當(dāng)使用KMS/DRM時,EGLFS的Backend是eglfs_kms。

更多信息,可以參考QT文檔,https://doc.qt.io/qt-5/embedded-linux.html

3. Xilinx支持情況

Xilinx支持eglfs_kms。
本文的命令可以在Xilinx的ZCU102和ZCU106單板上運(yùn)行。所有測試基于ZCU102和ZCU106的PetaLinux BSP的工程。

3.1. rootfs

在Linux的rootfs里,增加qt相關(guān)的軟件。使用命令petalinux-config -c rootfs配置Linux的rootfs,使能packagegroup-petalinux-qt。

3.2. libMali

使用eglfs_kms時,libMali.so.9.0使用對應(yīng)的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運(yùn)行的時侯,執(zhí)行下列命令,使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環(huán)境設(shè)置

為了讓QT使用eglfs_kms,需要設(shè)置下列兩個環(huán)境變量。

export QT_QPA_PLATFORM=eglfs export QT_QPA_EGLFS_INTEGRATION=eglfs_kms

QT還可以通過JSON文件設(shè)置有更多參數(shù)可以設(shè)置。通過導(dǎo)出 系統(tǒng)變量QT_QPA_EGLFS_KMS_CONFIG,可以指定JSON文件名,比如

export QT_QPA_EGLFS_KMS_CONFI

kms.conf的內(nèi)容如下:

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

3.4. 檢測顯示器

通過下列命令檢查顯示器,并設(shè)置它的分辨率。

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. 默認(rèn)測試程序

PetaLinux編譯出的文件系統(tǒng),在目錄/usr/share/examples/opengl下,有很多opengl的測試程序,比如cube和textures。

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

3.5.2. qt5everywheredemo

更復(fù)雜的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

審核編輯:何安

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • MPSoC
    +關(guān)注

    關(guān)注

    0

    文章

    196

    瀏覽量

    24232
收藏 人收藏

    評論

    相關(guān)推薦

    TM4C MCU用FreeRTOS開發(fā)通用應(yīng)用程序應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《TM4C MCU用FreeRTOS開發(fā)通用應(yīng)用程序應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 14:15 ?0次下載
    <b class='flag-5'>在</b>TM4C MCU<b class='flag-5'>上</b>用FreeRTOS開發(fā)通用<b class='flag-5'>應(yīng)用程序</b>應(yīng)用說明

    嵌入式系統(tǒng)中集成Rust和Qt的實(shí)踐

    Rust 擁有豐富的庫生態(tài)系統(tǒng),用于序列化和反序列化、異步操作、解析不安全輸入、線程、靜態(tài)分析等,而 Qt 是一個 C++ 工具包,支持跨各種平臺的豐富的、基于 GUI 的應(yīng)用程序,從 iOS 到嵌入式Linux。Qt
    發(fā)表于 05-03 10:26 ?1631次閱讀
    <b class='flag-5'>在</b>嵌入式系統(tǒng)中集成Rust和<b class='flag-5'>Qt</b>的實(shí)踐

    FPGA板子可以跑Qt應(yīng)用程序

    Qt作為一款跨平臺GUI圖形界面設(shè)計軟件,她可以windows、Linux運(yùn)行,沒聽說過FPGA的板子
    發(fā)表于 03-28 23:27

    Qt上位機(jī)開發(fā)實(shí)戰(zhàn)案例

    Qt框架的開發(fā)人員能迅速上手和操作。 即使不開發(fā)Qt應(yīng)用程序,Qt Creator也是一個簡單易用且功能強(qiáng)大的IDE。
    的頭像 發(fā)表于 03-13 12:31 ?2148次閱讀
    <b class='flag-5'>Qt</b>上位機(jī)開發(fā)實(shí)戰(zhàn)案例

    應(yīng)用程序中的服務(wù)器錯誤怎么解決?

    使用應(yīng)用程序時,可能會遇到服務(wù)器錯誤的問題。這種錯誤通常會導(dǎo)致應(yīng)用程序無法正常運(yùn)行 ,給用戶帶來不便。下面將介紹應(yīng)用程序中的服務(wù)器錯誤及其
    的頭像 發(fā)表于 03-12 15:13 ?5546次閱讀

    STM32MP135使用SD卡啟動應(yīng)用程序,應(yīng)用程序是需要在DDR運(yùn)行,DDR初始化,已經(jīng)FSBL鏡像里面嗎?

    使用SD卡啟動應(yīng)用程序,應(yīng)用程序是需要在DDR運(yùn)行,DDR初始化,已經(jīng)FSBL鏡像里面嘛 求大佬指點(diǎn)
    發(fā)表于 03-11 08:31

    3562-Qt工程編譯說明

    本文檔主要說明如何將已有 Qt 工程進(jìn)行編譯,生成可在評估板正常運(yùn)行的 ARM 端 Qt 程序鏡像。
    的頭像 發(fā)表于 03-05 09:19 ?406次閱讀
    3562-<b class='flag-5'>Qt</b>工程編譯說明

    FPGA為FPGA設(shè)計PCB的步驟詳解

    FPGA(Zynq? UltraScale+? MPSoC) 的 Ubuntu 22.04 桌面映像安裝了各種 EE 設(shè)計應(yīng)用程序
    的頭像 發(fā)表于 02-26 09:04 ?1897次閱讀
    <b class='flag-5'>在</b>FPGA<b class='flag-5'>上</b>為FPGA設(shè)計PCB的步驟詳解

    適用于Linux的QRadioLink SDR客戶應(yīng)用程序

    QRadioLink 是一個 GNU/Linux 多模(模擬和數(shù)字)SDR(軟件定義無線電)收發(fā)器應(yīng)用程序,利用網(wǎng)絡(luò)實(shí)現(xiàn)電臺與 VOIP 橋接(IP 的電臺),它建立 GNU 電臺之上,允許使用不同的數(shù)字和模擬無線電信號以及
    的頭像 發(fā)表于 01-11 11:04 ?1071次閱讀
    適用于Linux的QRadioLink SDR客戶<b class='flag-5'>應(yīng)用程序</b>

    如何用RK3588編寫應(yīng)用程序

    由于筆者平時的嵌入式開發(fā)工作,主要是集中嵌入式Linux和Qt應(yīng)用開發(fā)方向,因此,本篇文章我們嘗試參考飛凌官方提供的嵌入式Linux+Qt相關(guān)的資料,編寫一個Qt
    發(fā)表于 12-19 13:24

    【從0開始創(chuàng)建AWTK應(yīng)用程序】編譯應(yīng)用到嵌入式Linux平臺運(yùn)行

    AWTK是基于C語言開發(fā)的跨平臺GUI框架。本系列文章介紹如何從0開始創(chuàng)建AWTK應(yīng)用程序,包括搭建開發(fā)調(diào)試環(huán)境、使用AWTK創(chuàng)建Hello工程并在模擬器運(yùn)行、將AWTK應(yīng)用程序移植
    的頭像 發(fā)表于 12-07 12:08 ?650次閱讀
    【從0開始創(chuàng)建AWTK<b class='flag-5'>應(yīng)用程序</b>】編譯應(yīng)用到嵌入式Linux平臺<b class='flag-5'>運(yùn)行</b>

    【從0開始創(chuàng)建AWTK應(yīng)用程序】創(chuàng)建應(yīng)用程序并在模擬器運(yùn)行

    AWTK是基于C語言開發(fā)的跨平臺GUI框架。本系列文章介紹如何從0開始創(chuàng)建AWTK應(yīng)用程序,包括搭建開發(fā)調(diào)試環(huán)境、使用AWTK創(chuàng)建Hello工程并在模擬器運(yùn)行、將AWTK應(yīng)用程序移植
    的頭像 發(fā)表于 12-01 08:24 ?455次閱讀
    【從0開始創(chuàng)建AWTK<b class='flag-5'>應(yīng)用程序</b>】創(chuàng)建<b class='flag-5'>應(yīng)用程序</b>并在模擬器<b class='flag-5'>運(yùn)行</b>

    開發(fā)java應(yīng)用程序的基本步驟是

    ava是一種面向?qū)ο蟮木幊陶Z言,廣泛用于開發(fā)各種類型的應(yīng)用程序。開發(fā)Java應(yīng)用程序時,有一些基本步驟需要遵循,以確保應(yīng)用程序的正確性和可靠性。 1.確定需求:這是開發(fā)任何
    的頭像 發(fā)表于 11-28 16:52 ?1495次閱讀

    嵌入式學(xué)習(xí)——ElfBoard ELF1板卡 編譯并運(yùn)行qt應(yīng)用的方法

    :~# chmod 777 audio (3)設(shè)置QT環(huán)境變量 root@ELF1:~# export DISPLAY=:0.0 (4)運(yùn)行audio應(yīng)用程序 root@ELF1:~# ./audio
    發(fā)表于 11-15 11:04

    i.MX6ULL——ElfBoard ELF1板卡 編譯并運(yùn)行qt應(yīng)用的方法

    :~# chmod 777 audio (3)設(shè)置QT環(huán)境變量 root@ELF1:~# export DISPLAY=:0.0 (4)運(yùn)行audio應(yīng)用程序 root@ELF1:~# ./audio
    發(fā)表于 11-15 10:59