文章目录
-
- 1 获取tslib源码
- 2 编译tslib
- 3 测试tslib
ft5426触摸驱动添加成功后,发现触摸可能不太准确,这时可以使用一个第三方开源库tslib来调试触摸屏。下面来看一下tslib源码如何移植。
1 获取tslib源码 tslib源码可以从官方地址获取:https://github.com/libts/tslib,打开网址可以看到最新的版本是1.21,可以从官网获取,也可以从网盘资料中获取,资料路径:i.MX6UL终结者光盘资料/06_Linux驱动例程/第三方库源码/tslib-1.21.tar.bz2。获取到tslib源码后,拷贝到Ubuntu系统下并解压,得到tslib-1.21文件夹。
2 编译tslib 【i.MX6ULL终结者|i.MX6ULL终结者Linux 电容触摸屏实验Tslib移植和使用】获取到tslib源码后,可以编译tslib源码,具体有下面几个步骤。
1、修改tslib源码所属用户
修改解压得到的 tslib-1.21 目录所属用户为当前用户,如果不修改可能会在稍后的编译中会遇到各种问题。我当前 ubuntu 的登录用户名为“topeet”,那么修改命令如下:
sudo chown topeet:topeet tslib-1.21 -R
修改后如图 2.1所示:
文章图片
图 2.1 2、Ubuntu工具安装
编译 tslib 的时候需要先在 ubuntu 中安装一些文件,防止编译 tslib 过程中出错,命令如下所示:
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool
3、编译tslib
首先创建一个tslib文件夹,用于存放编译结果。比如文件路径为:/home/topeet/tslib
然后使用下列命令配置并编译tslib:
cd tslib-1.21/ //进入 tslib 源码目录
./configure --host=arm-none-linux-gnueabi --prefix=/home/topeet/tslib
make //编译
make install //安装
注意,在使用./configure 配置 tslib 的时候“–host”参数指定编译器,指定的编译器要和编译文件系统使用同一个编译器,否则在开发板下不能正常使用。“–prefix”参数指定编译完成以后的 tslib 文件安装到哪里,这里肯定是安装到我们刚刚创建的“tslib”目录下。
编译完成后tslib目录如图 2.2所示:
文章图片
图 2.2 然后将tslib目录下的所有文件拷贝到开发板的根文件系统下。如果直接拷贝的话会出现符号链接文件不能拷贝的现象,可以先使用tar命令进行打包,然后解压到根文件系统下。命令如下:
tar -czvf lib.tar.gz *//打包生成lib.tar.gz压缩包
tar -xvf lib.tar.gz ///解压到开发板根文件目录下
3 测试tslib 当把编译好的tslib拷贝到开发板后,进行命令测试。
1、配置tslib
打开/etc/ts.conf 文件,找到下面这一行:
module_raw input
如果上面这句前面有“#”的话就删除掉“#”。
打开/etc/profile 文件,在里面加入如下内容:
1 export TSLIB_TSDEVICE=/dev/input/event1
2 export TSLIB_CALIBFILE=/etc/pointercal
3 export TSLIB_CONFFILE=/etc/ts.conf
4 export TSLIB_PLUGINDIR=/lib/ts
5 export TSLIB_CONSOLEDEVICE=none
6 export TSLIB_FBDEVICE=/dev/fb0
第 1 行,TSLIB_TSDEVICE 表示触摸设备文件,这里设置为/dev/input/event1,这个要根据具体情况设置,如果你的触摸设备文件为 event2 那么就应该设置为/dev/input/event2,以此类推。
第 2 行,TSLIB_CALIBFILE 表示校准文件,如果进行屏幕校准的话校准结果就保存在这个文件中,这里设置校准文件为/etc/pointercal,此文件可以不存在,校准的时候会自动生成。
第 3 行,TSLIB_CONFFILE 表示触摸配置文件,文件为/etc/ts.conf,此文件在移植 tslib 的时候会生成。
第 4 行,TSLIB_PLUGINDIR 表示 tslib 插件目录位置,目录为/lib/ts。
第 5 行,TSLIB_CONSOLEDEVICE 表示控制台设置,这里不设置,因此为 none。
第 6 行,TSLIB_FBDEVICE 表示 FB 设备,也就是屏幕,根据实际情况配置,我的屏幕文件为/dev/fb0,因此这里设置为/dev/fb0。
全部配置好以后重启开发板,然后就可以进行测试了。
2、测试tslib
开发板重新启动后,可以先进行校准,使用下面的命令:
ts_calibrate
校准完成后,会生成/etc/pointercal文件,如果想重新校准,可以直接删除/etc/pointercal文件,重新执行校准命令。
然后可以使用ts_test_mt 这个命令来测试触摸屏工作是否正常,以及多点触摸是否有效,执行如下所示命令:
ts_test_mt
命令执行后会打开一个测试界面,如图 3.1所示:
文章图片
图 3.1 上图中有三个按钮“Drag”、“Draw”和“Quit”,这三个按钮的功能如下:
Drag:拖拽按钮,默认就是此功能,大家可以看到屏幕中间有一个十字光标,我们可以通过触摸屏幕来拖拽此光标。一个触摸点一个十字光标,对于 5 点电容触摸屏,如果 5 个手指都放到屏幕上,那么就有 5 个光标,一个手指一个。
Draw:绘制按钮,按下此按钮我们就可以在屏幕上进行简单的绘制,可以通过此功能检测多点触摸工作是否正常。
Quit:退出按钮,退出 ts_test_mt 测试软件。
文章图片
推荐阅读
- i.MX6ULL终结者|i.MX6ULL终结者Linux 电容触摸屏实验运行测试
- i.MX6ULL终结者|i.MX6ULL终结者Linux 电容触摸屏实验实验程序编写
- #|i.MX6ULL终结者Linux 电容触摸屏实验硬件原理图
- i.MX6ULL终结者|i.MX6ULL终结者Linux 电容触摸屏实验Linux下电容触摸屏驱动框架
- #|Python基础——魔法方法与异常处理
- #|Python基础——类和对象与魔法方法
- 安装教程|Linux-安装Redis(详细教程)
- c++编程|c++高精度算法
- 技术总结|linux grep命令使用详解