QT Touch Screen on Beagleboard (using tslib)

環境: PC Ubuntu9.04   Cross compiler: codesourcery 2008q3 or 2009q1

下載 tslib1.0,解開到目錄底下


$./configure -prefix=$PWD/../tslib CC=$(your cross-compiler path)/bin/arm-none-linux-gnueabi-gcc CXX=$(your cross-compiler path)/bin/arm-none-linux-gnueabi-g++ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes
$make && make install


下載qt embedded 4.6.3版本,解壓縮開,檔案會再qt-everywhere-opensource-src-4.6.3下。 
(我這邊用4.6.3,qt 4.6對tslib其實有個編譯的bug,4.7會解掉,這邊我手動調整,然後現在qt embedded和X11版本其實是同個檔案,沒有分了)


要改這個檔案
mkspecs/qws/linux-arm-g++/qmake.conf 


也可以把linux-arm-g++複製到linux-beagleboard,改裡面的,也可以,自己清楚就好,我是直接改。


注意底下有些路徑要自己設..
改成底下這樣

#
# qmake configuration for building with arm-linux-g++
#

include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)

# modifications to g++.conf
QMAKE_CFLAGS_RELEASE     = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
QMAKE_CXXFLAGS_RELEASE     = $$QMAKE_CFLAGS_RELEASE
FULLY_QUALIFIED_COMPILER_PREFIX = $(your cross-compiler path)/bin/arm-none-linux-gnueabi
QMAKE_CC         = $$FULLY_QUALIFIED_COMPILER_PREFIX-gcc
QMAKE_CXX         = $(your cross-compiler path)/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK         =$(cross-compiler path) /bin/arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB     = $(cross-compiler)/bin/arm-none-linux-gnueabi-g++
# modifications to linux.conf
TARGET_STAGING_PATH = $(your target path)
QMAKE_INCDIR         += $$TARGET_STAGING_PATH/usr/include
QMAKE_LIBDIR         += $$TARGET_STAGING_PATH/usr/lib 
QMAKE_LFLAGS       += -Wl,-rpath-link=../tslib/lib
QMAKE_AR         = $$FULLY_QUALIFIED_COMPILER_PREFIX-ar cqs
QMAKE_OBJCOPY         = $$FULLY_QUALIFIED_COMPILER_PREFIX-objcopy
QMAKE_STRIP         = $$FULLY_QUALIFIED_COMPILER_PREFIX-strip
#These defines are documented in the powervr README, please read it
DEFINES += QT_QWS_CLIENTBLIT QT_NO_QWS_CURSOR

load(qt_config)


然後回到qt-everywhere-opensource-src-4.6.3下
$
 ./configure -prefix $PWD/../Trolltech -embedded arm -depths 16,24,32 -qt-zlib -qt-libpng -qt-gif -qt-libtiff -qt-libmng -qt-libjpeg -qt-freetype -no-openssl -no-largefile -no-accessibility -no-phonon-backend -qt-mouse-pc -qt-mouse-linuxtp -qt-mouse-linuxinput -plugin-mouse-linuxtp -plugin-mouse-pc -qt-mouse-tslib -L 
$PWD/..
/tslib/lib -I 
$PWD/..
/tslib/include

$make && make install

把tslib和QT (Trolltech)編出來的lib, etc資料夾等丟到版子的/usr下,就是lib放在/usr/lib裡,然後版子開機進去後

#export TSLIB_CONFFILE=/usr/etc/ts.conf
#export TSLIB_PLUGINDIR=/usr/lib/ts
#export QT_QWS_FONTDIR=/usr/lib/fonts
#export LD_LIBRARY_PATH=/usr/lib
#export QWS_MOUSE_PROTO="tslib:/dev/input/event0"

然後你就可以先直行tslib生成目錄bin下的ts_calibrate測看看tslib是否正確,正確再執行qt任一個程式,記得qt執行必須是 ./xxx -qws

之後有空在照張相把成果貼上來。


btemplates

0 意見:

張貼留言