参考贴

http://www.cnblogs.com/rockstone/archive/2010/01/15/1648836.html

http://www.eefocus.com/wenes1/blog/10-05/190293_09ed8.html

一: 软硬件
1. 主机:     ubuntu 804

2. 平台:     devkit8000(omap3530)
3. tslib-1.4

4. QT版本:        qtopia-core-opensource-src-4.3.5(ftp://ftp.trolltech.com/qt/source/qtopia-core-opensource-src-4.3.5.tar.bz2一定要用迅雷从这里下,先前在http://www.qtcn.org/download/qtopia-core-opensource-src-4.3.5.tar.gz下的那个版好像不好用。)

5. 交叉编译工具: arm-none-linux-gnueabi-2007q3

 

二: 移植tslib

1.按照 http://www.eefocus.com/wenes1/blog/10-05/190293_09ed8.html帖子的介绍用以下方法得到tslib:

下载最新版本的tslib,目前最新的是1.4版,下载方法是通过CVS下载:
$ mkdir - m777 cvs
$ cd cvs
$ export CVSROOT = : pserver : anoncvs@cvs . handhelds . org : / cvs
$ cvs login
Logging in to : pserver : anoncvs@cvs . handhelds . org : 2401 / cvs
CVS password : anoncvs
cvs login : CVS password file / home / daiq / . cvspass does not exist - creating a new file
$ cvs co apps / tslib
这样会在你的$PWD/cvs下建立一个 apps文件夹,其中的 tslib就是我们下载下来的源码.
(先前在http://blog.chinaunix.net/u2/75270/showart_1793535.html这里下到的tslib不知为什么不好用。)

接着:

cd tslib/
export CC=arm-none-linux-gnueabi-gcc
export CXX=arm-none-linux-gnueabi-g++

2.
./autogen.sh
执行这条命令可能会报错,需要安装以下工具:
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool

3.
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-none-linux-gnueabi.cache

./configure --host=arm-none-linux-gnueabi --cache-file=arm-none-linux-gnueabi.cache --enable-inputapi=no PLUGIN_DIR=/home/davinci/tslib/plugins(你放tslib的目录下的plugins) -prefix=/home/davinci/tslib/build(install好的tslib的位置) -host=arm-none-linux-gnueabi --cache-file=arm-none-linux-gnueabi.cache 2>&1 | tee conf_log

4.
make 2>&1 | tee make_log
make install

5. 将/home/davinci/tslib/build/lib下除去pkgconfig目录外其他所有文件拷贝到开发板/lib目录下
将/home/davinci/tslib/build/bin下的ts_calibrate拷贝到开发板/opt/qtopia/bin目录下

 

6. 将/home/davinci/tslib/build/etc下的ts.conf编辑如下(只要这几行,其他全删):

module_raw input
module pthres pmin
module variance delta=30
module dejitter delta=100
module linear

将此ts.conf拷贝到开发板的/etc下

7. 在开发板上,设置环境变量,在开发板文件系统的/etc/profile文件里添加以下命令,或直接在超级终端输入:

export TSLIB_TSDEVICE=/dev/input/touchscreen0
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/lib/ts

export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0

 

8.测试tslib

cd /opt/qtopia/bin

./ts_calibrate

依次出现五个点,点击测试。

三: 移植QT

 

1. 准备
 

tar jxvf qtopia-core-opensource-src-4.3.5.tar.bz2

cd qtopia-core-opensource-src-4.3.5

 

修改mkspecs/qws/linux-arm-g++/qmake.conf文件,替换所有arm-linux为arm-none-linux-gnueabi

 

2. 配置

./configure -embedded arm -xplatform qws/linux-arm-g++ -depths 4,8,16,32 -no-qt3support -prefix ${HOME}/work/qt/target -fast -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -optimized-qmake -no-nis -no-separate-debug-info -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -qt-kbd-usb -no-kbd-qvfb -no-mouse-qvfb -no-mouse-linuxtp -qt-mouse-pc -qt-mouse-tslib -I /home/davinci/tslib/build/include -L /home/davinci/tslib/build/lib

其中/home/davinci/tslib/build/include是tslib的include目录,/home/davinci/tslib/build/lib是tslib的lib目录,配置完成后会提示successful,如果没有,google出错信息,将其解决掉,直到successful才继续往下做

 

3. 编译 安装

 

make
(漫长的等待)

 

make install

 

4. 下载

 

1) 拷贝${HOME}/work/qt/target下整个lib目录到开发板下/opt/qtopia目录下

2) 删掉/opt/qtopia/lib/fonts目录下多余的字体文件,只留下cour.pfa和cursor.pfa两个文件

3) 设置环境变量,在开发板文件系统的/etc/profile文件里添加以下命令:
 

export QTOPIA=/opt/qtopia
export LD_LIBRARY_PATH=$QTOPIA/lib:$LD_LIBRARY_PATH
export PATH=$QTOPIA/bin:$PATH
export QWS_MOUSE_PROTO=tslib:/dev/input/touchscreen0
export QWS_DISPLAY="LinuxFb:mmWidth100:mmHeight130:0"
export QT_QWS_FONTDIR=/opt/qtopia/lib/fonts

 

5. 测试移植结果

 

拷贝${HOME}/work/qt/target/examples/tutorial/t1/t1到开发板下/opt/qtopia/bin目录下并运行t1程序
./t1 -qws

将显示 helloworld界面,而且触摸屏也正常工作!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐