Qtopia core 4.3.3 移植ok-2440-III经验总结(带触摸

来源:互联网 发布:衣服搭配男软件 编辑:程序博客网 时间:2024/05/16 17:21

Qtopia core 4.3.3 移植ok-2440-III经验总结(带触摸

Qtopia core 4.3.3 移植ok-2440-III经验总结(带触摸屏)

我有个习惯即每前进一步都要认真的把路铺好,免得回头时找不到回归的路。经验告诉我每做一件事之前,弄懂它原理是非常有必要的,否则我敢保证,你肯定会出现这样或那样的错误。因此先不要急着去想怎么去移植,看看触摸屏的工作原理吧。

首先触摸屏的最原始的数据来自设备驱动文件,然后进入tslib,具体过程如下:

Raw driver---à calibrate--àvariance------àdejitter------àlinear---------àapplication

(设备驱动)   (校准)    (滤波)   (去噪)   (坐标变换)   (应用程序)

从这里我们很明显的看出设备文件之与tslib 有关,与我们的qt程序没有直接联系,也就是说tslib 给应用程序提供了一个统一接口,因此像网上说的要在qt源代码里的qmouselinuxtp_qws.h

加入  #define QT_QWS_IPAQ
      #define QT_QWS_IPAQ_RAW

修改qmouselinuxtp_qws.cpp里面的 /dev/h3600_tsraw, 是完全没必要的,我曾经也被忽悠了。只要测试tslib1.4成功了,编译qtopia的时候加入触摸屏支持即可。

准备好了吗?那就开始吧。

 

1.编译tslib1.4

tar xzvf tslib-1.4.tar.gz

cd tslib/

export CC=/usr/local/arm/usr/local/arm/3.4.1/bin/arm-linux-gcc

export CXX=/usr/local/arm/usr/local/arm/3.4.1/bin/arm-linux-g++

 

./autogen.sh

export PATH=/usr/local/arm/usr/local/arm/3.4.1/bin:$PATH

echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache

 

#./configure PLUGIN_DIR=/home/xgq/tslib/plugins -prefix=/usr/local/tslib4 -host=arm-linux --cache-file=arm-linux.cache 2>&1 | tee conf_log

Make

Make install

这样tslib1.4编译安装完毕。

 

2.编译qtopia core 4.3.3

./configure -prefix /usr/local/Trolltech/qtopiacore_ts -embedded arm -xplatform qws/linux-arm-g++ -depths 8,16,32 -no-qt3support -no-largefile -no-mouse-linuxtp -no-mouse-pc -no-mouse-pc -no-mouse-bus -no-mouse-yopy -no-mouse-vr41xx -no-mouse-qvfb -qt-mouse-tslib -I /usr/local/tslib1.4/include -L /usr/local/tslib1.4/lib 2>&1 | tee conf_log (这种颜色的配置加入了触屏支持)

 

 

make 2>&1 | tee make_log

make install

这样qtopia core 4.3.3也编译完了,够简单吧

3.设置环境变量

#!/bin/sh

export QTDIR=/usr/qt

export QPEDIR=/usr

#export LD_LIBRARY_PATH=/usr/qt/lib

export HOME=/usr

 

export TSLIB_TSDEVICE=/dev/touchscreen   

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_PLUGINDIR=/usr/qt/tslib4/lib/ts

export TSLIB_CONSOLEDEVICE=none

export TSLIB_CONFFILE=/usr/qt/tslib4/etc/ts.conf

export TSLIB_CALIBFILE=/etc/pointercal

export POINTERCAL_FILE=/etc/pointercal

 

export QWS_DISPLAY=LinuxFb:mmWidth35:mmHeight45:0

export QWS_SIZE=320x240

 

export QWS_MOUSE_PROTO=Tslib:/dev/touchscreen 

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/qt/tslib4/lib:$QTDIR/lib

 

 

4.配置ts.conf

 

module_raw h3600module

module variance delta=30

module dejitter delta=100

module linear

 

5.配置rcS

#!/bin/sh

/bin/mount -a

/sbin/ifconfig eth0 192.168.0.15 up

 

/bin/mknod /dev/can c 98 0

/bin/mknod /dev/touchscreen c 233 0  (我是自己加载驱动所以才有这一步)

 

/bin/ln -s /dev/sound/dsp /dev/dsp

 

/bin/ln -s /dev/fb/0 /dev/fb0

转载:

http://blog.sina.com.cn/s/blog_485c8cc50100dig1.html

 

 

原创粉丝点击