在MPSoC上運行基於eglfs_kms的QT應用程式

2021-01-15 電子發燒友
在MPSoC上運行基於eglfs_kms的QT應用程式

賽靈思中文社區論 發表於 2021-01-14 10:29:12

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

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 嵌入式linux新手入門手記-準備qt5.4.1開發平臺
    這個手記寫到這裡,am335x的軟體平臺已經能夠正常工作了, tslib也已經能夠進行正確的觸控螢幕校正,自己編寫一個hello world的程序,並交叉編譯後,能夠在am335x上運行,並在超級終端上列印出「hello world」。
  • QT 技術應用常用問題解答
    /qt_zh_CN.ts然 後,我們就用Linguist打開這個qt_zh_CN.ts,進行翻譯了,翻譯完成後,保存後,再用lrelease命令生成qt_zh_CN.qm, 這樣,我們把它加入到我們的qt project中,那些系統的對話框,菜單等等其它的默認是英文的東西就能顯示成中文了。9、在Windows下Qt裡為什麼沒有終端輸出?
  • CrossOver演示讓x86 Windows應用程式在蘋果M1 Mac上運行
    Codeweavers今晚發布了一篇博文和視頻,展示了蘋果M1 MacBook Air上運行的CrossOver。
  • Windows 10可能會在明年直接安裝和運行Android應用程式上
    微軟並沒有完全承認失敗,而是擁抱了一些競爭對手的平臺,有傳言稱微軟將與Android進行更深入的整合,最早將於2021年讓其移動應用直接運行在Windows 10上。  當然,在Windows上運行Android應用程式已經成為可能。
  • 「CrossOver」讓你在M1 Mac計算機運行Windows應用程式
    Mac計算機一向要運行Windows應用程式,都需要安裝Parallels Desktop、Wine等虛擬計算機或程序轉換工具,但Apple推出了自家制M1晶片的Mac計算機後,這些工具都未能成功過渡。
  • 基於Qt環境下物理實驗數據處理系統的設計與實現
    Qt提供的C++應用程式開發框架,可以輕鬆實現「一次編寫,隨處編譯」的跨平臺解決方案,編寫的應用程式能完美運行於從windows 98到windows 7,從Mac OSX到Linux,從Solaris,HP—UX到其他基於X11的眾多Unix平臺上。這讓編寫的應用程式可以運行在不同的系統,方便移植,甚至能夠在經過簡單的修改後輕鬆移植至應用廣泛的android平臺。
  • Qt 5.12 LTS 正式發布,修復超過 2000 個 bug
    對比上一個 LTS 版本 5.9.7 ,Qt 5.12 修復了超過 2000 個 bug 。若再往前,和 5.6.3 LTS 版本相比,Qt 5.12 修復了超過 5000 個 bug。開發團隊表示,這只是一個開始,後續將努力在即將到來的補丁中不斷提高 Qt 5.12 的質量。
  • 樹莓派4B如何自動運行Python程序
    但是,我們可能希望我們的程序在啟動時自動運行,在本方法文檔中我們將學習如何在Raspbian上執行此操作!      為什麼在啟動時運行腳本?   大多數計算機用戶將熟悉基於用戶界面的程序,這些程序需要用戶輸入才能執行操作。例如,遊戲採用用戶操作虛擬角色的鍵盤和滑鼠數據來運行,跳躍,遊泳和爬行。其他應用程式(例如辦公程序)包含執行諸如保存文檔,創建新文件,執行外部腳本以及通過Internet發送數據包等功能的交互式元素。但是,這些類型的程序與其用戶進行廣泛的交互,並且通常依賴於用戶啟動程序。
  • 如何在Android應用程式上製作基本計算器
    打開APP 如何在Android應用程式上製作基本計算器 網絡整理 發表於 2019-11-22 16:46:52 步驟1:步驟
  • Chome OS不再拉跨:將能直接運行Windows應用程式
    這些年,谷歌對Chrome OS的投入也不少,並在純web系統之外,為其帶來了本地化運行Android和Linux程序的能力。現在,三方虛擬化技術解決方案廠商Parallels宣布,和谷歌合作,已完成了在Chrome OS模擬運行Windows程序的開發。
  • Android應用程式設計原理及天氣實況預報系統的具體實現
    但是,並不是每一個Android 應用程式都需要這四種功能組件,而是使用上述四種功能組件的某些組合。Activities是最基本的Android 應用程式組件。在應用程式中,一個Activities通常就是一個單獨的屏幕,大多數應用由多個屏幕顯示組成。
  • 搭上python號小火箭,程序運行越來越快!
    但Python運行的慢是歷來被詬病的,一些人黑Python的一點是Python的程序運行速度奇慢。這一方面和語言有關,另一方面可能就是你代碼的問題。其實,無論使用哪種程式語言,特定程序的運行速度很大程度上都取決於該程序的開發人員及其編寫快而優的程序的技巧和能力。語言方面的問題我們解決不了,所以只能在編程技巧上來提高程序的運行效率。
  • [視頻]Android端CrossOver:讓Chromebook運行Windows應用
    Google近期宣布為至少3款Chromebook添加官方且低延遲的Android應用程式,在部分開發者看來這是未來新的篇章。CrossWeaver就是這股浪潮下的開拓者,已經成功在運行Chrome OS的Chromebook上通過Android版CrossOver軟體成功運行Windows版本Steam應用並能夠成功運行遊戲。
  • NVIDIA Tegra 3加速眾多應用程式-NVIDIA,Tegra 3,加速,應用程式...
    在NVIDIA官方博客當中,NVIDIA重申了Tegra 3加速手機應用程式的能力。這些被加速的應用程式,包括照片編輯,遠程桌面客戶端,甚至是移動視頻編輯的應用程式。根據NVIDIA給出的一段視頻顯示,多家手機應用程式的開發人員均讚揚Tegra 3的性能,使他們的應用程式運行如此順利。
  • 基於OSGi和Spring開發Web應用
    將 OSGi 和 Spring 結合能充分發揮二者各自的特長,更好地滿足企業級應用開發的需求。Spring 開發組織在 2008 年發布了將 OSGi 和 Spring 結合的***個版本:Spring-DM。本文通過一個簡單實例,介紹如何利用 Spring-DM 開發基於 OSGi 和 Spring 架構的 Web 應用,同時探討其中用到的關鍵技術及其基本思想。
  • 2020年最受歡迎的雲生態開源應用程式監控工具
    儘管容器部署主要涉及在每個容器內運行單個應用程式或服務,但是隨著部署規模的擴大,對環境狀態和運行狀況的可見性變得越來越重要,而不僅僅是在作業系統或應用程式級別,而且在容器級別也是如此。雲生態監控和日誌處理領域分為實時資料庫,度量標準收集器,可視化工具,輪詢器,記錄器等。過去幾年中,開源產品和商業監控應用程式不斷湧現,本文我介紹幾個最受歡迎的開源雲應用監控工具。
  • 中國海洋預報手機應用程式(App)和「中國海洋預報」微信小程序正式...
    )和「中國海洋預報」微信小程序正式上線運行。隨著通信網絡技術的快速發展和移動智能終端的普及,以手機應用為載體的媒體平臺迅速崛起,是公眾獲取信息的最重要來源。2020年,預報中心加強海洋預報服務的供給側改革,轉變海洋預報信息服務模式,以公眾需求為牽引,開發了中國海洋預報手機應用程式(App),解決海洋預報信息「看不懂、用不上、不好查」的「需求痛點」。
  • 基於Cyclone II FPGA開發平臺實現語音識別算法程序的設計
    基於Cyclone II FPGA開發平臺實現語音識別算法程序的設計 瀋陽;馮良;洪誠 發表於 2021-01-12 10:21:38 SOPC可編程片上系統是一種獨特的嵌入式微處理系統。
  • Windows10下Qt程序打包發布 (與配置環境變量)
    當初對程序還很懵懂的時候(現在是蒙圈),就很想知道程序是怎麼被打包發布的。雖然現在還不會製作安裝包,但是在Qt官方提供的工具下,可以製作Windows下Qt的「綠色免安裝版」了。程序運行平臺: Windows10 Qt: Based on Qt 5.5.1 (MSVC 2013, 32 bit)Qt Creator 3.5.1 (opensource)製作流程:1.