tslib为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能。
1).下载source code并解压
tslib-1.3.tar.bz2。
2). 配置
#cd /home/wyl/tslib
#export PREFIX=/home/wyl/tslib/lib
#export CC=/usr/local/arm-linux-4.1.1/bin/arm-linux-gcc
#./autogen.sh
#echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
#./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache
//--enable-static=yes --enable-shared=no
3).修改source code
1。make的时候libtool:link: only absolute run-paths are allowed错误
解决办法:要修改/tslib/plugins/Makefile里面找rpath
将LDFLAGS :=$(LDFLAGS) -rpath $(PLUGIN_DIR)
修改为:
LDFLAGS :=$(LDFLAGS) -rpath `cd $(PLUGIN_DIR) && pwd`
2。修改src/ts_read_raw.c中的char *defaulttseventtype="H3600",因为我的触摸屏驱动对应此结构。
3。修改src/ts_read_raw.c 中的 ts_config.c文件中 int ts_config(struct tsdev *ts) return ret改为 return 0;
使用默认配置即可,因为这个地方会出现一个错误,错误原因不明,请赐教。
4). 编译与安装
make
make install
cd tests
arm-linux-gcc -o ts_calibrate ts_calibrate.o fbutils.o font_8x8.o font_8x16.o ../src/.libs/libts.a -ldl -static
5). 运行
export QWS_MOUSE_PROTO=TPanel:/dev/input/event0
export T_ROOT=/data/lib
export LD_LIBRARY_PATH=$T_ROOT/lib
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/graphics/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=$T_ROOT/share/ts/plugins
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=$T_ROOT/etc/pointercal
最后就可以运行/bin/ts_cXX应用程序了,运行中将会出现屏幕矫正,矫正完成会在TSLIB_CALIBFILE目录下生成QT或是MINIGUI所需要的标准校验文件。
PS:
1. 由于我使用的是静态连接,生成的ap不需要到库就可以执行。
2. SD文件名错误的关系将ts.conf 改为 conf。