嵌入式linux新手入门手记-TSLIB和支持USB接口单点触摸屏
kernel已经内置对于普通USB单点触摸屏的支持,不需要修改程序,只要在/arch/arm/config/am335x_evm_defconfig中将相应的编译条件设置好就可以:
本文引用地址:http://www.amcfsurvey.com/article/279081.htmCONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_USB_COMPOSITE=y
CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
删除其他的触摸屏编译选项,然后重新编译kernel即可。
下载tslib:git clone http:/github.com/kergoth/tslib,通过这个网站下载的tslib目前是1.6.0版本;
安装autoconf工具:sudo apt-get install autoconf automake libtool;
设置交叉编译环境变量:export CC=arm-linux-gnueabihf-gcc
export CXX=arm-linux-gnueabihf-g++
在tslib目录下执行./autogen.sh,自动生成Makefile文件,然后执行./configure --prefix=/usr/tslib --host=arm-linux-gnueabihf ac_cv_func_malloc_0_nonnull=yes。
这里--prefix指定编译后的tslib库安装的路径,-host指定交叉编译工具。
上述没有错误后,执行make -j4交叉编译tslib,成功后执行make install,tslib将安装到/usr/tslib目录下;
将/usr/tslib目录下的所有文件拷贝到am335x的nfs文件系统中的/usr/tslib目录下,并设置am335x的环境变量:
export T_ROOT=/usr/tslib #tslib安装路径
export TSLIB_FBDEVICE=/dev/fb0 #linux显示设备名
export TSLIB_TSDEVICE=/dev/event0 #linux触摸屏输入设备名
export TSLIB_CALIBFILE=/etc/pointercal #触摸屏校正数据文件
export POINTERCAL_FILE=/etc/pointercal #触摸屏校正数据文件
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf #tslib配置文件
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts #tslib插件安装位置
export TSLIB_CONSOLEDEVICE=none #控制台设备
export PATH=$PATH:$T_ROOT/bin #配置tslib应用的安装路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$T_ROOT/lib #lib的装载路径
export LD_PRELOAD=$T_ROOT/lib/libts.so #预装入tslib共享库
修改/usr/tslib/etc/ts.conf:
module_raw input #使用linux标准输入设备
module pthres pmin=1 #触摸屏灵敏度插件设置
#module variance delta=30 #USB触摸屏自带滤波,不使用这个模块
module dejitter delta=100 #触摸屏去噪插件设置
module linear #触摸屏线性滤波插件
重新启动am335x,然后运行/usr/tslib/bin/ts_print,在触摸屏上滑动手指,超级终端上打印出触摸的点的信息,触摸屏以及tslib已经正常工作。
到这里,am335x的基本平台就已经能够正常工作了,后续需要将QT5.4.1移植到am335x平台上。QT5.4.1的移植花了较多的时间,同时也需要修改tslib和qt的较多源程序。
我将用多个章节来记录QT5.4.1的移植,以及加入tslib的支持,并对这二者的源程序进行修改。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)linux相关文章:linux教程
评论