天天看點

Qt5.9+tslib1.4移植

先移植TSLIB

1、安裝前的準備工作:

再root模式下安裝下面軟體。

# apt-get install autoconf# apt-get install automake# apt-get install libtool

2、下載下傳tslib源碼

3、配置

# ./autogen-clean.sh# ./autogen.sh# echo "ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache# ./configure --host=arm-none-linux-gnueabi  --cache-file=arm-none-linux-gnueabi.cache --enable-inputapi=no  --prefix=/opt/qt/juan/tslib

其中prefix下面配置的是你的安裝路徑

./autogen.sh 時,所出現一下提示:

解決方法:

添加紅框内的語句。

4、編譯

在終端裡以root使用者的身份進入tslib目錄裡面

執行make

執行make install

5.修改con内容

vi /opt/qt/juan/tslib/etc/ts.conf

将配置檔案改為

module_raw inputmodule pthres pmin=1module variance delta=30module dejitter delta=100module linear

6.移動到開發闆

将安裝路徑下的整個tslib檔案夾,下載下傳至開發闆的上.

8、 設定開發闆環境變量

通過超級終端, 打開環境變量檔案/etc/profile

vi /etc/profile

添加如下内容:

export TSLIB_ROOT=/opt/sendinfo/tslib export TSLIB_TSDEVICE=/dev/input/event0 export QWS_MOUSE_PROTO=tslib:/dev/input/event0 export TSLIB_CALIBFILE=/etc/pointercal export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_CONSOLEDEVICE=none export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib      

其中,TSLIB_ROOT更換為自己實際存放的路徑;

另外,TSLIB_TSDEVICE 和QWS_MOUSE_PROTO這兩項需要檢視自己的闆子的觸摸屏裝置對應/dev/input/下哪個檔案

9.測試

小問題彙總:

1.測試時發現輸出的x,y軸的值相等

原因:發現是linux核心驅動不支援觸摸屏硬體。

解決方法:在核心驅動的USB裝置裡添加觸摸屏裝置

再在核心目錄下運作make menuconfig選擇要配置的裝置。

運作make uImage

2.ts_open: No such file or directory

原因:裝置路徑配置錯誤

解決方法:

1.檢視裝置是event幾

cd /dev/ls

2.打開配置  vi /etc/profile

export TSLIB_TSDEVICE=/dev/input/event0 

3.Couldnt open tslib config file: No such file or directory ts_config: Illegal seek

解決辦法:#export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf

再移植QT5.9

1.官網下載下傳源碼包 qt-everywhere-opensource-src-5.9.5.tar.xz

2.解壓

3.進入root模式,配置交叉編譯器的路徑,輸入(arm + Tab鍵)看是否有交叉編譯器顯示

4.修改qmake.conf配置

cd qt-everywhere-opensource-src-5.9.5

vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

5.根據需求添加配置

./configure \    -v \    -prefix /opt/sendinfo \    -sysroot /opt/chain/arm-2014.05/arm-none-linux-gnueabi \    -release \    -static \ -make libs \    -xplatform arm-linux-gnueabi-g++ \    -optimized-qmake \    -pch \    -qt-zlib \    -no-opengl \    -no-sse2 \    -no-openssl \    -no-cups \    -no-separate-debug-info \    -nomake examples -nomake tools \-tslib \-I/opt/wlj/tslib-transplant/juan/tslib/include \-L/opt/wlj/tslib-transplant/juan/tslib/lib      

static為靜态庫,若要使用電容觸摸屏需要添加最後三行。

configure指令執行完畢後會出現如下界面,檢視自己選擇的需要編譯的功能。

6.make&&make install  此過程需要大約兩個小時

7.将編譯安裝得到的lib、plugins拷貝到開發闆中,lib中存放的是QT程式運作所需的動态庫檔案,plugins中存放的應該是所需的插件。

8.配置開發環境并運作程式。vi /etc/profile

#export LD_LIBRARY_PATH=/lib                                                                                     export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0                                              export QT_QPA_FONTDIR=/lib/fonts                                                        export LD_PRELOAD=/system/lib/preloadable_libiconv.so                                   export PATH=/opt/wlj/Qt5.9/bin:$PATH export TSLIB_ROOT=/opt/wlj/tslibexport TSLIB_TSDEVICE=/dev/event10export QWS_MOUSE_PROTO=tslib:/dev/event10export TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.confexport TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport TSLIB_FBDEVICE=/dev/fb0export TSLIB_CONSOLEDEVICE=noneexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/libexport QT_QPA_GENERIC_PLUGINS=tslib:/dev/event10export LD_LIBRARY_PATH=/opt/wlj/Qt5.9/libexport QT_QPA_PLATFORM_PLUGIN_PATH=/opt/wlj/Qt5.9/plugins#export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0#export QT_QPA_FONTDIR=opt/wlj/lib/fontsexport QT_PLUGIN_PATH=$QT_ROOT/plugins/export QT_ROOT=/opt/wlj/Qt5.9export LD_PRELOAD=$TSLIB_ROOT/lib/libts.so export QT_QPA_GENERIC_PLUGINS=evdevmouse:/dev/event1      

注意:export  LD_PRELOAD=$TSLIB_ROOT/lib/libts.so 特别重要

          export QT_QPA_GENERIC_PLUGINS=evdevmouse:/dev/event1  滑鼠

繼續閱讀