交叉編譯:arm-linux-g++ 4.3.2
Qt版本 qt-embedded-linux-opensource-src-4.5.3.tar.gz
觸摸屏 tslib1.4
1. 首先安裝交叉編譯器。我使用的友善提供的4.2.3無(wú)需編譯直接解壓就可以了
#tar xvzf arm-linux-gcc-4.3.2.tgz –C /
注意:C 后面有個(gè)空格,并且C 是大寫(xiě)的,在此是改變目錄的意思。
執行該命令,將把arm-linux-gcc 安裝到/usr/loca/arm/4.3.2 目錄。
設置環(huán)境變量
#gedit /root/.bashrc
編輯/root/.bashrc 文件,在最后一行 export PATH=$PATH:/usr/local/arm/4.3.2/bin
保存退出
2. tslib1.4的安裝
正確解壓,我安裝在/tslib-1.4
#./autogen.sh
#echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
//配置目標機、緩沖、安裝路徑
#./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=/tslib-1.4 --enable-inputapi=no
#make
#make install
注:如果你的觸摸屏驅動(dòng)支持ioctl操作,在./configure時(shí)不用“--enable-inputapi=no”,不支持就要添上,如果不添加無(wú)法運行程序,會(huì )有“ts_open:Inappropriate ioctol for device“、“ts_open: No such file or directory”這樣的錯誤。
3 QtE的配置和安裝
#cd /home/QT
#tar zxvf qt-embedded-linux-opensource-src-4.5.3.tar.gz
#cd qt-embedded-linux-opensource-src-4.5.3
#./configure -prefix /home/QT/qt-embedded -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libjpeg -make libs -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16 -qt-gfx-linuxfb -qt-gfx-transformed -qt-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-usb -no-glib -qt-mouse-tslib -I/tslib-1.4/inclued -L/tslib-1.4/lib
#make
#make install
其中的具體配置網(wǎng)上都有詳細的說(shuō)明
安裝在/home/QT/qt-embedded目錄下
設置環(huán)境變量
#vi /etc/profile
添加語(yǔ)句
PATH=/home/QT/qt-embedded/bin:$PATH
export PATH
#source /etc/profile
加環(huán)境變量:
#export QTDIR=/home/QT/qt-embedded
#export QTEDIR=$QTDIR
#export PATH=$QTDIR/bin:$QPEDIR/bin:$PATH
#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
4 移植
我用的是nfs方式調試,這樣比較方便,而且沒(méi)有大小的限制
我的nfs根目錄是/home/QT
設置共享目錄(注:先關(guān)閉虛擬機防火墻)
#gedit /etc/exports
添加語(yǔ)句
/home/QT *(rw,sync,no_root_squash)
#/etc/init.d/nfs start
按照友善的micro2440-um-20090728.pdf版設置的
路徑為
/opt/FriendlyARM/mini2440/root_qtopia
我將整個(gè)安裝的/QtE-4.5.1-arm 文件都拷貝到了roo_qtopia/ 目錄下,剛剛開(kāi)始還不知道哪些需要裁減,等以后再來(lái)忙忙學(xué)習吧
將/tslib-1.4 也copy到roo_qtopia/ 目錄下
移植最重要的就是設置環(huán)境變量
我的環(huán)境變量設置shell文件如下
export TSLIB_ROOT=/tslib-1.4
export TSLIB_TSDEVICE=/dev/input/event0
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$LD_LIBRARY_PATH
export QWS_SIZE=320x240
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR$TSLIB_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE$TSLIB_ROOT/etc/ts.conf
export POINTERCAL_FILE=/etc/pointercal
export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
cd /tslib/bin/
./ts_calibrate# 觸摸屏校準 出現5各點(diǎn)依次點(diǎn)擊
問(wèn)題1:
./ts_calibrate: error while loading shared libraries: libts-0.0.so.0: cannot open shared object file: Error 40
./ts_calibrate: error while loading shared libraries: libts-0.0.so.0: cannot ope
n shared object file: No such file or directory
解決辦法:
#echo $LD_LIBRARY_PATH //查看lib路徑,
#export LD_LIBRARY_PATH=$T_ROOT/lib
問(wèn)題2:
ts_open: No such file or directory
解決辦法:
#export TSLIB_TSDEVICE=/dev/input/event0 //觸摸屏設備路徑
問(wèn)題3:
Couldnt open tslib config file: No such file or directory ts_config: Illegal seek
解決辦法:
#export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
問(wèn)題4:
Couldnt load module pthres
No raw modules loaded.
ts_config: Success
解決辦法:
#export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
問(wèn)題5:
No raw modules loaded.
Ts_config: No such file or directory
解決辦法:
修改$T_ROOT/etc/ts.conf, 至少放開(kāi)一個(gè)module_raw, 并去掉前面空格
在超級終點(diǎn)中運行就,qt4可以正常顯示,ok
全部移植成功