标题:有在arm2410s上移植Qtopia-opensource-4.2.x的吗?触摸屏怎么移植的?
作者:xiongcb
日期:2007-05-18 18:12
内容:
我将Qtopia-opensource-4.2.x移植到博创的arm2410s上,触摸屏部分一直不能成功。我采用tslib1.3 来管理触摸屏,在qtopiacore/qconfig-qpe.h里边去掉了QT_NO_QWS_CURSOR,QT_NO_QWS_MOUSE,QT_NO_QWS_MOUSE_AUTO的定义。配置的时候加上了-qt-mouse-tslib,-qt-mouse-pc,-no-mouse-linuxtp选项,能成功编译。
在板子上运行时,插上USB接口的鼠标能正常运行自带的例子程序。
但是不用鼠标,采用触摸屏时(触摸屏已用tslib校准),例子程序运行出现Aborted信息,屏幕也没反应,更不能点击屏幕。所需的环境变量都设置了,不知道错误出在哪里!有没有做过的,给点提示啊?
另外,如果在配置的时候将-qt-mouse-pc改为-no-mouse-pc(即不使用鼠标),运行例子程序的时候能出来程序运行界面,在屏幕中央还有一个鼠标指针,但点击屏幕没反应。
实在是不知道怎么弄了,哪位大虾帮一下忙啊?
#1 [shiroki 05-21 14:34]
QWS_MOUSE_PROTO设置的是什么呢? 触摸屏设备的名字指定得对吗
#2 [frankgfz 05-22 16:19]
能否把你的./configure 的参数贴出啦看看?
#3 [xiongcb 05-24 19:00]
不好意思,回复迟了,谢谢各位的回复。
我的配置编译和运行过程如下:
一. 对源码包的修改
1.
cd src/libraries/qtopiabase/
cp custom-linux-cassiopeia-g++.h custom-linux-arm-g++.h
cp custom-linux-cassiopeia-g++.cpp custom-linux-arm-g++.cpp
2.
在3.4.1版的arm编译器目录arm/3.4.1/arm-linux/include/linux/videodev2.h和arm/3.4.1/arm-linux/sys_include/linux/videodev2.h中添加如下内容:
#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B','A','8','1') /* 8 BGBG.. GRGR.. */
如上内容可参考网页:http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/include/linux/videodev2.h?v=2.6.16.18#L305
3.TSLIB_TSDEVICE(我的触摸屏驱动程序 ts-uptech.o 是插入到 /dev/input/event0)
vi qtopiacore/qt/src/gui/embedded/qmousetslib_qws.cpp
将第124行的/dev/ts修改为/dev/input/event0
4.POINTERCAL_FILE(由于其他目录不可写,我把校准文件的存放位置改到了/mnt/yaffs/tmp/目录下)
vi src/settings/calibrate/calibrate.cpp
将第82行的/etc/pointercal改为/mnt/yaffs/tmp/pointercal
5.POINTERCAL_FILE
vi src/server/pda/firstuse.cpp
将第347行的/etc/pointercal改为/mnt/yaffs/tmp/pointercal
6.POINTERCAL_FILE
vi qtopiacore/qt/src/gui/embedded/qmouse_qws.cpp
将所有/etc/pointercal修改为/mnt/yaffs/tmp/pointercal
7.
vi qtopiacore/qconfig-qpe.h
注释掉:
/*
#ifndef QT_NO_QWS_CURSOR
# define QT_NO_QWS_CURSOR
#endif
*/
/*
#ifndef QT_NO_QWS_MOUSE
# define QT_NO_QWS_MOUSE
#endif
#ifndef QT_NO_QWS_MOUSE_AUTO
# define QT_NO_QWS_MOUSE_AUTO
#endif
*/
9.
vi qtopiacore/qt/src/corelib/global/qfeatures.h
/*
#if !defined(QT_NO_QWS_CURSO ..
#4 [shiroki 05-25 23:02]
在qte里触摸屏和鼠标是按照一类设备来处理的,所以调用readmousedata是正常的, 不过得看看它调的是哪个driver的readmousedata, 如果是鼠标对应的driver代码里的那就是没有调用到正确的ts driver handler, 本来应该根据QWS_MOUSE_PROTO的设定找到适当的handler的
#5 [xiongcb 05-30 13:38]
忙于毕设,没来回复。
我的问题已经解决了,原因出在ts.conf这个文件里边。
这个文件的原内容是:
#module mousebuts
module variance xlimit=50 ylimit=50 pthreshold=3
module dejitter xdelta=1 ydelta=1 pthreshold=3
module linear
看这个文件的第一行,module mousebuts这一句被注释掉了,将“# ”去掉,再运行,就支持触摸屏了。module mousebuts好像是跟触摸屏驱动鼠标有关,不是很清楚。
哪位大虾如果对ts.conf了解透彻的,还望指点指点。