主机环境:fedora 14
编译器:gcc 4.5.1
交叉编译器:arm-linux-gcc 3.4.3
(注意:makefile中调用的交叉编译器默认为arm-linux-gcc,arm-linux-g++,所以请在编译前重命名海思的两个交叉编译工具,否则会提示找不到交叉编译器)
注意:首先确保交叉编译器已加入路径PATH,如果没有加入,执行
export PATH=$PATH:/opt/hisi-linux/x86-arm/gcc-3.4.3-uClibc-0.9.28/bin
1.首先安装触摸屏库tslib1.4
先安装automake,autoconf,libtool
sudo yum install automake autoconf libtool
解压,cd 到其目录下
配置
./autogen.sh
./configure --prefix=/home/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes ac_cv_func_malloc_0_nonnull=yes --enable-static
然后编译安装:
make
make insall
触摸屏的库就生成好了,在/home/tslib目录下,只要将它放到开发板上,设置下环境变量就可以用了.
2.安装Qt-x11,Qt-Embedded-x86和Qt-Embedded-arm
Qt-x11用于PC机上的开发,主要产生design和qvfb(开发板虚拟工具)
Qt-Embedded-x86是QT基于X86的嵌入式开发工具
Qt-Embedded-arm是QT基于arm的嵌入式开发工具
(1)选择要安装的版本,Qt-x11版本是4.5.3,配合的qt/e版本是4.5.3
(2)安装好各种库:libx11-devel,libxtst-devel,libxext-devel
(3)进入root用户模式.
(4).下载源代码包:
qt-x11-opensource-src-4.5.3.tar.bz2
qt-embedded-linux-opensource-src-4.5.3.tar.bz2
下载地址:ftp://ftp.qt.nokia.com/qt/source/
(5).编译及安装qt-x11-opensource-src-4.5.3
tar zxvf qt-x11-opensource-src-4.5.3.tar.gz
cd qt-x11-opensource-src-4.5.3
./configure -static -release -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg -nomake demos -nomake examples -qt-sql-sqlite -prefix /usr/local/Trolltech/Qt-4.5.3
gmake
gmake install
历经漫长的编译过程,约一个半小时,默认安装在/usr/local/Trolltech/Qt-4.5.3下.
(6)生成qvfb虚拟工具
cd ~/qt-x11-opensource-src-4.5.3/tools/qvfb
make
会在qt-x11-opensource-src-4.5.3/bin下生成qvfb
(7)编译及安装qt-embedded-linux-opensource-src-4.5.3 的x86和arm版本
解压后复制一份,分别改名为Qt-Embedded-4.5.3-x86 和Qt-Embedded-4.5.3-arm用来编译产生x86版本和arm版本(编译大概1个半小时)
===========================================================================================================================
x86版本:(安装目录/usr/local/Trolltech/Qt-Embedded-4.5.3-x86)
./configure -prefix /usr/local/Trolltech/Qt-Embedded-4.5.3-x86 -embedded x86 -qvfb -fast -release -static -qt3support -no-pch
gmake
gmake install
===========================================================================================================================
arm版本: (安装目录/usr/local/Trolltech/Qt-Embedded-4.5.3-arm)
./configure -prefix /usr/local/Trolltech/Qt-Embedded-4.5.3-arm -release -static -fast -qt3support -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -qt-kbd-usb -confirm-license -qt-mouse-tslib -I/home/tslib/include -L/home/tslib/lib
gmake
gmake install
===========================================================================================================================
注:
所有选项的意思请查看 ./configure -help
-prefix 后面是安装目录
-I/home/tslib/include -L/home/tslib/lib 是触摸屏库,如果不想要触摸屏就不要了,可以根据上面的选项自行修改
(8).设置环境变量
通过设置PATH和LD_LIBRARY_PATH实现 ,在/etc/profile文件的最后加上如下设置内容:
PATH=$PATH:/opt/hisi-linux/x86-arm/gcc-3.4.3-uClibc-0.9.28/bin:/usr/local/Trolltech/Qt-Embedded-4.5.3-x86/bin:/usr/local/Trolltech/Qt-Embedded-4.5.3-arm/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Trolltech/Qt-Embedded-4.5.3-x86/lib:/usr/local/Trolltech/Qt-Embedded-4.5.3-arm1/lib
export PATH
export LD_LIBRARY_PATH
接着执行 source /etc/profile使环境变量生效
三个版本所用的工具有些名字是一样的,但工作显然不一样,可以通过建立别名来区分
在~/.bashrc文件中添加如下三行别名
alias designer='/usr/local/Trolltech/Qt-4.5.3/bin/designer'
alias qmake='/usr/local/Trolltech/Qt-Embedded-4.5.3-x86/bin/qmake'
alias arm-linux-qmake='/usr/local/Trolltech/Qt-Embedded-4.5.3-arm//bin/qmake'
重启之后就可以使用designer和qmake以及arm-linux-qmake了.
将qvfb复制到/usr/local/Trolltech/Qt-Embedded-4.5.3-x86/bin目录下,方便虚拟,比如虚拟xx程序:
qvfb -width 240 -height 320&
./xx -qws
3.下面设置开发板上的QT/E环境.
(1)给板子加入QT/E库文件,即Qt-Embedded-4.5.1-arm/lib目录下的库文件
(2)给板子增加触摸屏库,将tslib整个拷到开板上.
(3)配置环境变量
配置脚本为:
export TSLDIR=tslib
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0 #触摸屏设备文件
export TSLIB_PLUGINDIR=$TSLDIR/lib/ts
export TSLIB_CONFFILE=$TSLDIR/etc/ts.conf #触摸屏库配置文件
export TSLIB_CALIBFILE=/etc/pointercal #触摸屏定位文件
export QWS_MOUSE_PROTO=tslib:/dev/input/event0
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$TSLDIR/lib:$QTDIR/lib #将库加入动态共享库路径
################################不用触摸屏#######################################
export set QTDIR=/opt/Qt
export set QPEDIR=/opt/Qt
export set TSLIB_CONSLOLEDEVICE=none
export set LD_LIBRARY_PATH=$QTDIR/lib:/usr/local/libLD_LIBRARY_PATH:/usr/lib
export set QT_QWS_FONTDIR=$QTDIR/lib/fonts/
export set QWS_SIZE=800x480
#export set QWS_DISPLAY="LinuxFb:mmWidth80:mmHeight120:0"
export set QWS_DISPLAY="LinuxFB:/dev/fb0"
#export set QT_PLUGIN_PATH=$QTDIR/plugins/
########################################
注:该配置脚本应在系统启动时运行.
(4)修改触摸屏库的配置文件etc/ts.conf,去掉module_raw input前的#号,开启该项功能
初始化触摸屏,主要是生成定位文件,运行tslib/bin/ts_calibrate
然后在屏上点五下,实现定位.
这样就设置好了.