QT系統移植之在開發板上部署QT執行環境
一.開始部署
1.我們在Ubuntu新建立一個資料夾,然後把我們用busybox做好的檔案系統複製到這個檔案下。如下圖所示:
2.然後我們解壓這個根檔案系統到當前所在的路徑下。
3.我們在這個解壓出來的根檔案系統下新建立一個opt的資料夾,如下圖所示:
4.我們把上節課編譯好的觸控和QT複製到我們在這個路徑下新建立的opt目錄下,如下圖所示:
5.我們返回到解壓根檔案系統的目錄下
6.然後我們開啟根檔案系統的etc/profile檔案,並新增一下內容:
新增以下內容:
EVENT=$(cat /proc/bus/input/devices | grep -E 'TSC2007|ft5x0x_ts|goodix-ts' -A4 | tail -n1 | awk '{print $NF}')
export TSLIB_ROOT=/opt/tslib1.4
export TSLIB_TSDEVICE=/dev/input/$EVENT
export TSLIB_CONFFILE=/opt/tslib1.4/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_PLUGINDIR=/opt/tslib1.4/lib/ts
export TSLIB_CONSOLEDEVICE=none
export QT_ROOT=/opt/qt5.7.0
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:$TSLIB_ROOT/lib/
解釋:
自動獲取觸控的裝置節點,變數EVENT的值可能是event0,event2.......等。
EVENT=$(cat /proc/bus/input/devices | grep -E 'TSC2007|ft5x0x_ts|goodix-ts' -A4 | tail -n1 | awk '{print $NF}')
觸控庫所在的位置
export TSLIB_ROOT=/opt/tslib1.4
觸控式螢幕裝置檔案
export TSLIB_TSDEVICE=/dev/input/$EVENT
tslib模組配置檔案
export TSLIB_CONFFILE=/opt/tslib1.4/etc/ts.conf
指定觸控式螢幕校準檔案pintercal的存放位置
export TSLIB_CALIBFILE=/etc/pointercal
設定控制檯裝置為 none ,否則預設為 /dev/tty ,這樣可以避免出現“ open consoledevice: No such file or directory KDSETMODE: Bad file descriptor ” 的錯誤
export TSLIB_CONSOLEDEVICE=none
qt庫所在的路徑
export QT_ROOT=/opt/qt5.7.0
qt字型檔的目錄
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
qt外掛的目錄
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
指定幀緩衝裝置/dev/fb0
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
新增QT和觸控庫的環境變數
export LD_LIBRARY_PATH= /lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:$TSLIB_ROOT/lib/
7.把影片所在目錄下的字型檔檔案複製到根檔案系統的qt庫的/lib/fonts下,沒有這個路徑手動建立一個路徑,如下圖所示:
8.然後我們回到根檔案系統的lib目錄下,將影片目錄下的libstdc.tar.gz複製到lib解壓,並輸入命令:
ln -s libstdc++.so.6.0.19 libstdc++.so.6
如下圖所示:
9.然後我們把影片目錄下的測試歷程複製到根檔案系統的opt目錄下,並改成777許可權,如下圖所示:
10.然後我們打包這個檔案系統,並燒寫到開發板上測試。如下圖所示:
測試:觸控不準
在profile檔案下新增環境變數。
export QT_QPA_FB_TSLIB=1