转自:http://www.arm9home.net/read.php?tid=11590
现在用的tslib是使用git下载的。注意,最好使用Linux平台下载,因为tslib中包括了脚本文件(如autogen.sh),而Windows与Linux处理一行的结束字符是不相同的,因此请在Linux中下载,当然,使用编辑器转换结束字符也无所谓。
命令如下:
$ git clone https://github.com/kergoth/tslib
在Linux下安装git可参考:Linux移植随笔:git的使用。
编译过程如下:
$ ./autogen.sh
$ ./configure --host=arm-linux --prefix=/root/nfs/tslib/install
$ make
$ make install
make install后,会在/home/latelee/lib/tslib目录生成4个子目录:
include lib etc bin
生成的库位于lib中,该目录下还有一个子目录ts,它包含了许多校准用到的库(如input.so等)。etc下的ts.conf为配置文件,bin目录下为校准、测试工具(如校准的ts_calibrate,测试用的ts_test)。
配置文件如下:
写入到文件系统的profile文件中
# Late Lee 2011-03-31 for touchscreen test
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CONFFILE=$TSLIB_ROOT/root/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
使用TSLIB_ROOT这个变量比较好,因为只要将编译生成后的tslib文件夹复制到某个位置,再修改这个变量即可,其它的不用修改。
配置文件ts.conf内容如下:
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
之后把tslib make install生成文件拷贝到文件系统中并在环境变量中指定路径
使用:
把tslib make install 生成的lib文件夹拷贝到编辑器目录下并重命名为tslib
在编译程序的时候指定库文件路径
如:CFLAGS=" -L/usr/local/arm/4.3.2/tslib -lts"
因为4.3.2中已经集成了tslib.h文件,所以不用指定头文件路径,否则的话使用
如:CFLAGS=" -L/usr/local/arm/4.3.2/tslib -lts -I/usr/local/arm/4.3.2/tslib/include"
龙芯1B开发板:
移植tslib问题:
按照文档配置好开发板环境后运行ts_test出现
selected device is not a touchscreen I understand
解决方法:
交叉编译器和内核中关于EV_VERSION的定义不一致,修改内核include/linux/input.h中EV_VERSION的定义和交叉编译器一致就OK了。
之后运行ts_test正常了,但是点击屏幕没有反映。
解决方法:
配置内核时同时使用了spi0和spi1,spi0用于触摸屏,禁用spi1后正常