关闭

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

标签: 移植触摸屏
116人阅读 评论(0) 收藏 举报

今天在移植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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1117次
    • 积分:52
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条