- 下载tslib源码:https://pan.baidu.com/s/1wcfrdxyaF1uzFW8Xlud81A 密码 7qs9
- 拷贝到 /usr/local/src 下
- 解压:tar zxvf tslib.tar.gz
-
运行tslib自带的脚步文件设置环境: ./autogen.sh
-
mkdir tslib
-
产生一个cache文件arm-linux.cache,欺骗configure
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache //这里的0是数字零 -
./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=/usr/local/tslib
-
make
-
make install
-
编译成功后在/usr/local/tslib位置产生/bin、/etc、/include、/lib 4个文件夹
-
修改/usr/local/tslib/etc/ts.conf 文件,删除其中内容,改为:
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear第一行是tslib从linux的输入设备读取数据时需要用到的模块,这里指定的模块为input,具体需要用到哪个模块,需要参考其他数据。
第二行的pthres为Tslib提供的触摸屏灵敏度门槛插件。
第三行的variance为Tslib提供的触摸屏滤波算法插件。
第四行的dejitter为Tslib 提供的触摸屏去噪算法插件。
第五行linear为Tslib提供的触摸屏坐标变换插件。 -
将/usr/local/tslib下的tslib文件夹拷贝到arm文件系统的/usr/local/tslib下
-
/etc/profile 配置环境变量
export TSLIB_ROOT=/usr/local/tslib/lib
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/usr/local/tslib/calibration
export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/tslib/libTSLIB_ROOT 指明TSLIB库在开发板中的具体位置,要以实际情况为准。
TSLIB_TSDEVICE 指明开发板触摸屏的设备节点文件名称。
TSLIB_CALIBFILE 指明校正文件的位置,该文件在执行ts_calibrate之后自动生成。
TSLIB_CONFFILE 指明TSLIB库的配置文件的具体位置,要以实际情况为准。
TSLIB_PLUGINDIR 指明TSLIB库的插件模块的具体位置,要以实际情况为准。
TSLIB_CONSOLEDEVICE 指明终端名称,none意为让系统自动匹配。
TSLIB_FBDEVICE 指明开发板LCD的设备节点文件名称。
LD_LIBRARY_PATH 是开发板系统的动态库链接路径提示:使用cat /dev/event0 ,然后点击触摸屏查看终端中是否出现乱码来判断这个设备节点是否链接的触摸驱动
-
校准触摸屏
cd /usr/local/tslib/bin
./ts_calibrate
运行校验,屏幕会出现5次小黑点让用户触摸,然后生成/etc/pointercal文件,并存5个小黑点值 -
cd /usr/local/tslib/bin/
./ts_test //运行测试,可以随意在触摸屏上绘制测试 -
对不在/etc下的pointercal链接(可选)
ln -s /opt/tslib/etc/pointercal /etc/pointercal -
tslib有几个关键的文件有了他们触屏就能正常工作了:
ts.conf #这个按照网上的提示修改就好了
ts #文件夹提供tslib自身工作所需的库
ts_calibrate #触屏校验程序,只要有上面的文件触屏校验程序就能运行了
libts-0.0.so.0.1.1 , libts.la #这两个文件是给Qt用的,有这两个文件Qt才能支持触屏