tslib库移植selected device is not a touchscreen I understand

来源:互联网 发布:linux系统入门教程 编辑:程序博客网 时间:2024/06/11 13:40

今天在移植tslib库是出现了selected device is not a touchscreen I understand,参考了网上的一些做法,总结了一下解决方法

我用的是JZ2440开发板,linux内核版本3.4.2.

首先按照韦东山老师的教程安装tslib,安装过程大家可另行查询。这里只说selected device is not a touchscreen I understand这个问题。


1.可先行在驱动程序里打印触摸屏坐标值,确定触摸屏是好的。

2.错误信息肯定是在tslib的某个地方打印出来的,我们可以在Input-raw.c中找到。

3.if (! ((ioctl(ts->fd, EVIOCGVERSION, &version) >= 0) &&
(version == EV_VERSION) &&
(ioctl(ts->fd, EVIOCGBIT(0, sizeof(bit) * 8), &bit) >= 0) &&
(bit & (1 << EV_ABS)) &&
(ioctl(ts->fd, EVIOCGBIT(EV_ABS, sizeof(absbit) * 8), &absbit) >= 0) &&
(absbit & (1 << ABS_X)) &&
(absbit & (1 << ABS_Y)) && (absbit & (1 << ABS_PRESSURE)))) {
fprintf(stderr, "selected device is not a touchscreen I understand\n");
return -1;
}

可以看到只要有条件不满足就会打印出这句话。经对比发现版本号不一致。

编译器版本号 book@book-desktop:/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include/linux$ vim input.h   #define EV_VERSION              0x010000

内核版本号     book@book-desktop:/usr/include/linux$ vim input.h                                                                                          #define EV_VERSION              0x010001

修改任意一个使二者相同即可,修改时会提示文件为只读。

在其目录下使用sudo chmod 666 input.h  修改权限为可读可写即可。


0 0
原创粉丝点击