1.首先下载源码:
tslib-1.21.tar.bz2,使用的版本为tslib 1.2.1
2.修改源码所属用户为当前用户:
sudo chown project01:project01 tslib-1.21 -R
3.ubuntu下工具安装:
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool
4.编译tslib:
首先在源码外创建一个结果保存目录tslib,然后输入以下指令编译tslib:
cd tslib-1.21/
./autogen.sh
./configure --host=arm-linux-gnueabi --prefix=创建的保存编译结果的目录路径(绝对路径)
make
make install
5.拷贝到根文件系统:
进入结果保存文件夹tslib下,其中bin目录下是可执行文件,包括tslib的测试工具,etc目录下是tslib的配置文件,lib目录下是相关的库文件。将所有编译结果拷贝到根文件系统下。
sudo cp * -rf /你的根文件系统路径 -d
6.环境变量设置:
sudo vi ./etc/profile # 不要设置你Ubuntu的环境变量
输入以下内容:
export TSLIB_TSDEVICE=/dev/input/event0 # 触摸设备根据具体情况修改
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
7.上电启动:
使用ts_calibrate命令进行校准。
使用ts_test_mt命令进行触摸测试即可。
离线
很奇怪的是,我在正点原子的阿尔法开发板上使用上面的方法,可以正常进行测试。但是在F1C200s上面,使用Debian根文件系统会报错:“Illegal instruction”,在buildroot制作的根文件系统上会报错:“-sh: ts_csalibrate: not found”。有朋友知道是什么原因吗?
注:根文件系统制作完成后移植的tslib;阿尔法移植使用arm-linux-gnueabihf编译器,F1C200s使用的arm-linux-gnueabi编译器。
最近编辑记录 likaiqin (2023-01-13 12:04:47)
离线
实际上,不用这么麻烦。
有个工具叫:evtest。
执行时,要带参数输入事件设备的参数,比如:evtest /dev/input/event1。
然后,你在屏幕的4个角,各点一下,记住相应的值,分别记作:x1/x2/y1/y2,校准算法如下:
x = (x-x1)*屏幕水平像素数/(x2-x1)
y = (y-y1)*屏幕垂直像素数/(y2-y1)
离线
是的,后来用的evtest测试通过了,之前觉着tslib可能更直观一点。
离线