#cd /tmp # tar zxvf tslib-1.4.tar.gz ――――――――(最后在/tmp下解压生成tslib) #cd tslib #./autogen.sh #./configure --prefix=/home/mytslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes #make #make install
成功后可在/home下生成mytslib,进入mytslib可以看到有bininclude lib etc四个文件夹。
编辑mytslib/etc/ts.conf这个文件
最后内容如下:
module_raw input
modulepthres pmin=1
modulevariance delta=30
module dejitter delta=100
module linear
cat /dev/input/event0
然后按压触摸屏看是否有反映,经过测试event2有反映,所以参考网上的移植手册时也要变通。
通过cat测试了/dev/input/event2,发现touch有反映。
exportTSLIB_ROOT=/usr/local/tslib
exportTSLIB_TSDEVICE=/dev/input/event0指定触屏设备
exportTSLIB_CALIBFILE=/etc/pointercal 指定触摸屏校准文件 pintercal 的存放位置
exportTSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf 指定 TSLIB 配置文件的位置
exportTSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts 指定触摸屏插件所在路径
exportTSLIB_FBDEVICE=/dev/fb0 指定帧缓冲设备
exportTSLIB_CONSOLEDEVICE=none 设定控制台设备为 none ,否则默认为 /dev/tty ,这样可以避免出现“openconsoledevice: No such file or directory KDSETMODE: Bad filedescriptor ” 的错误
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
另外,要确保在/dev/input/目录下有event0设备文件,在/dev/目录下有fb0设备文件,如果没有,在执行下面./ts_calibrate 的时候,会报出“open*: No such file or directory ”的错误,这时,我们需要手动创建设备文件:
#mknod /dev/input/event0 c 13 64
# mknod /dev/fb0 c 29 0
5、执行测试命令
重启开发板,在/usr/local/tslib/bin目录下,输入./ts_calibrate,出现tslib的触摸屏五点校准画面,至此,tslib的安装移植成功完成。
tslib库selecteddevice is not a touchscreen I understand解决.
解决:
1.将内核源代码里的include/linux/input.h中的
#define EV_VERSION 0x010001
改为:
#define EV_VERSION 0x010000
2.将arm交叉编译工具中的头文件库中的
linux/input.h中的
#define EV_VERSION 0x010000
改为
#define EV_VERSION 0x010001
再编译tslib库
一般第一种就可以解决问题了,因此,出现上面情况时,先不要急于换版本,如果二者版本不等,那么改一个就可以
我自己修改内核VERSION为0x010000和0x010001都不行。
后来把编译器的改成0x010001时,内核为0x010001时可以使用
这个就是版本一致的意思的啦
当然我的开发板因为不知道什么原因,ok6410 飞凌的,屏幕点穿,只要改fb0改成fb1或者其他的,在开发板上,ls /dev/fb* 看看有哪些,改成其他的就不会把屏幕点穿了
love 钓鱼竿