tslib移植使用

1 获取 tslib 源码#

https://github.com/libts/tslib
git clone https://github.com/libts/tslib.git

2 修改 tslib 源码所属用户#

sudo chown book:book tslib-1.21 -R
这一步一定要做!否则在稍后的编译中会遇到各种问题。

3 ubuntu 工具安装#

1
2
3
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool

4 编译 tslib#

1
2
3
4
5
cd tslib-1.21/ //进入 tslib 源码目录
./autogen.sh
./configure --host=arm-linux-gnueabihf --prefix=/home/zuozhongkai/linux/IMX6ULL/tool/tslib
make //编译
make install //安装

“--host”参数指定编译器,“--prefix”参数指定编译完成以后的 tslib 文件安装到哪里.
完成以后 tslib 目录下的内容如下:
image
把所有文件拷贝到开发板的根文件系统中:
sudo cp * -rf /home/zuozhongkai/linux/nfs/rootfs

5 配置 tslib#

打开/etc/ts.conf 文件,找到下面这一行:
module_raw input
打开/etc/profile 文件,在里面加入如下内容:

1
2
3
4
5
6
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0

TSLIB_TSDEVICE 表示触摸设备文件,这里设置为/dev/input/event1,这个要根据具体情况设置,如果你的触摸设备文件为 event2 那么就应该设置为/dev/input/event2,以此类推。
TSLIB_CALIBFILE 表示校准文件,如果进行屏幕校准的话校准结果就保存在这个文件中,这里设置校准文件为/etc/pointercal,此文件可以不存在,校准的时候会自动生成。
TSLIB_CONFFILE 表示触摸配置文件,文件为/etc/ts.conf,此文件在移植 tslib 的时候会生成。
TSLIB_PLUGINDIR 表示 tslib 插件目录位置,目录为/lib/ts。
TSLIB_CONSOLEDEVICE 表示控制台设置,这里不设置,因此为 none。
TSLIB_FBDEVICE 表示 FB 设备,也就是屏幕,根据实际情况配置,我的屏幕文件为/dev/fb0,因此这里设置为/dev/fb0

6 tslib 测试#

一般电容屏可以不用校准,如果是电阻屏就要先进行校准。
输入ts_calibrate
校准完成以后如果不满意,或者不小心对电容屏做了校准,那么直接删除掉/etc/pointercal文件即可。

6.1 ts_test_mt#

此命令会打开一个触摸测试界面:
image
Drag:拖拽按钮,默认就是此功能,大家可以看到屏幕中间有一个十字光标,我们可以通过触摸屏幕来拖拽此光标。一个触摸点一个十字光标,对于 5 点电容触摸屏,如果 5 个手指都放到屏幕上,那么就有 5 个光标,一个手指一个。
Draw:绘制按钮,按下此按钮我们就可以在屏幕上进行简单的绘制,可以通过此功能检测多点触摸工作是否正常。
Quit:退出按钮,退出 ts_test_mt 测试软件。
点击“Draw”按钮,使用绘制功能,5 个手指一起划过屏幕,如果多点电容屏工作正常的话就会在屏幕上留下 5 条线:
image
可以看到有5条横线。