下在tslib库(tslib 库是一个开源的触摸屏驱动程序,现在一般都利用这个程序)
下面我们一起来研究一下具体的移植过程:
A : 下载tslib 库 : tslib-1.4.tar.gz源码包
下载地址: http://blog.chinaunix.net/u2/75270/showart_1793535.html
B: 解压缩包:
tar -xzvf tslib-1.4.tar.gz
cd tslib-1.4
C: 配置Makefile
./configure --host=arm-linux -prefix=$PWD/../Arm-output/tslib
--enable-inputapi=no ac_cv_func_malloc_0_nonnull=yes
其中ac_cv_func_malloc_0_nonnull=yes 是为解决如下编译错误设置的
ts_test.o: In function `main':
ts_test.c:(.text+0x1d8): undefined reference to `rpl_malloc'
fbutils.o: In function `open_framebuffer':
fbutils.c:(.text+0xa20): undefined reference to `rpl_malloc'
collect2: ld returned 1 exit status
--enable-inputapi=no. 是为了解决运行中提示 ts_open:Inappropriate ioctol for devic 它表示即不使用ioctl来控制触摸屏。
D: 编译安装
make
make install -strip
tslib只是应用级的一个程序库,只是用来封装底层的触摸屏驱动的操作,以一个统一接口来给其它应用程序使用.因此tslib正常工作的前提是开发板上的触摸屏驱动能正常工作.另外触摸屏的效果往往需要在LCD上显示,因此tslib也需要开发板上的FrameBuffer驱动正常工作.
#ts.conf template
module_raw input
#module_raw h3600
module pthres pmin=1 // Pthres: 为Tslib提供的触摸屏灵敏度门槛插件
module variance delta=30 // Variance: 为Tslib提供的触摸屏滤波算法插件
module dejitter delta=100 // Dejitter: 为Tslib提供的触摸屏去噪算法插件
module linear // Linear: 为Tslib 提供的触摸屏坐标变换插件
#export TSLIB_ROOT=/usr/local/tslib
export TSLIB_ROOT=/tslib
#取决具体的设备驱动了,事件驱动用
export TSLIB_TSDEVICE=/dev/input/event0
#h3600用如下配置
#export TSLIB_TSDEVICE=/dev/h3600_tsraw
#触摸屏定位文件保存位置
export TSLIB_CALIBFILE=/etc/pointercal
#tslib配置文件内容
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
#tslib 插件目录
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=none
#LCD设备结点
export TSLIB_FBDEVICE=/dev/fb0
#把libts.so加入动态搜索路径
QT库的支持
export QTDIR=/qte-4.5.3
export LD_LIBRARY_PATH=$QTDIR/lib:$TSLIB_ROOT/lib
export TSLIB_TSDEVICE=/dev/input/event0
#h3600 用如下配置
#export TSLIB_TSDEVICE=/dev/h3600_tsraw
#触摸屏定位文件保存位置
export TSLIB_CALIBFILE=/etc/pointercal
#tslib配置文件内容
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
#tslib 插件目录
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=none
#LCD 设备结点
export TSLIB_FBDEVICE=/dev/fb0
#把libts.so加入动态搜索路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
#export QWS_KEYBOARD=USB:/dev/input/event1
export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
#export QWS_DISPLAY=LinuxFb:mmWidth45:mmHeight60:0
#export QWS_SIZE=640x480