技術文章

當前頁面︰ 首頁 >技術文章 >Xorg下Qt應用自啟動方法

平安彩票网 - 平安彩票官方开奖网_平安彩票网app下载

供稿︰韜睿(上海)計算機科技有限公司 2018/6/25 14:40:28

0 人氣︰5

  • 關鍵詞︰ QT Xorg autorun
  • 摘要︰Qt 作為嵌入式系統廣泛選擇的 GUI 框架,支持多種顯示平台插件,如常見的 xcb、linuxfb、Wayland、eglfs 等。Xcb 是基于 X 的插件,允許 Qt 應用在 X 中運行,這被目前大部分桌面電腦上 Qt 應用所使用。除了顯示輸出功能外,X 還可以處理諸如觸摸屏、鍵盤等輸入事件,無需單獨采用第三方庫 tslib、libinput,X 為 Qt 應用提供標準的輸入、輸出環境。由于采用了 X,所以在 Qt 應用運行前,需要先啟動 X

1). 簡介

Qt 作為嵌入式系統廣泛選擇的 GUI 框架,支持多種顯示平台插件,如常見的 xcb、linuxfb、Wayland、eglfs 等。Xcb 是基于 X 的插件,允許 Qt 應用在 X 中運行,這被目前大部分桌面電腦上 Qt 應用所使用。除了顯示輸出功能外,X 還可以處理諸如觸摸屏、鍵盤等輸入事件,無需單獨采用第三方庫 tslib、libinput,X 為 Qt 應用提供標準的輸入、輸出環境。由于采用了 X,所以在 Qt 應用運行前,需要先啟動 X。接下來的內容,我們將針對 Toradex ARM嵌入式模塊系統不同版本 BSP 介紹如何配置基于 X 的 Qt 自啟動方法。

2). 具體配置方法

a). Linux BSP v2.8b2 之前的 BSP

Toradex 已經為Yocto/OpenEmbedded 提供現成的 recipe 用于編譯基于 X 的 Qt BSP angstrom-qt5-x11-image.bb。在 v2.8b2 之前的 BSP 中,qt5-x11-demo.service 用于啟動 qt5-x11-demo-init 腳本,從而初始化 X 環境並直接加載 Qt 應用。用戶可以修改 qt5-x11-demo-init 中的 QTAPP 和 QTAPPSTART,將其指向其他 Qt 應用所在的目錄以及應用本身。qt5-x11-demo-init 同時也嘗試了觸摸屏的校準,通過執行 tslib.sh 、ts_calibrate、xinput_calibrator_once.sh。但是 xinput_calibrator_once.sh 同樣也需使用 X,但此時 X 並未啟動,所以默認的腳本是無法使用 xinput_calibrator_once.sh 直接進行校準。

運行下面命令,手動校準電阻觸摸屏。

---------------------------------

root@colibri-imx6:~# set -e

root@colibri-imx6:~# Xorg &

root@colibri-imx6:~# xinput_calibrator

---------------------------------

校準完畢後,將 xinput_calibrator 校準信息復制到 /etc/X11/xorg.conf.d/99-calibration.conf 文件中。X 在啟動時會自動加載這些校準數據。

---------------------------------

Section "InputClass"

 Identifier "calibration"

 MatchProduct "stmpe-ts"

 Option "Calibration" "108 3958 608 3929"

 Option "SwapAxes" "0"

EndSection

---------------------------------

完成以上步驟後,qt5-x11-demo.service 才能啟動 Qt 應用,並正常使用觸摸屏設備。

b). Linux BSP v2.8b2 之後的 BSP

直接使用腳本啟動 X 和 Qt 應用存在一些限制,如上面的無法自動調用 xinput_calibrator  進行觸摸屏校準,或者在Qt 應用啟動前執行其他的 X 應用。為解決上述問題,自 v2.8b2 起,Toradex 采用了 nodm 顯示管理工具來啟動 X。在 X 啟動後,逐一完成 /etc/X11/Xsession.d 目錄中的配置,包括觸摸校準,最後為 90XWindowManager.sh。該腳本將加載 /usr/bin/x-window-manager,在這里用戶可以修改為您自己 Qt 應用所在的路徑以並啟動。

在 Yocto/OpenEmbedded recipe 中,你需要修改 x-window-simple-app_1.0.bb 文件中的 INITIAL_PATH 和 X_APPLICATION,指向你自己的 Qt 應用。

---------------------------------

INITIAL_PATH ?= "/usr/share/qtsmarthome-1.0"

X_APPLICATION ?="${INITIAL_PATH}/smarthome"

---------------------------------

采用這種方法,用戶無需手動執行 xinput_calibrator 完成校準。xinit 將會自動啟動 X,並按序執行位于  /etc/X11/Xsession.d 中的 X 客戶端程序。在這里用戶可以添加自己的其他 X 應用。

5). 總結

v2.8b2 起,X 的啟動由 xinit 完成,用戶在是使用該新版本 BSP 需要修改原來自啟動方式,xinit 方便用戶啟動不同的 X 客戶端程序。

審核編輯(何為)
更多內容請訪問 韜睿(上海)計算機科技有限公司(#)

手機掃描二維碼分享本頁

工控寶APP下載安裝

工控速派APP下載安裝

 

我來評價

評價︰
一般