|  | 
 
| 运行ts_test时,打印如下信息: selected device is not a touchscreen I understand
 找到tslib源码如下:
 static int check_fd(struct tslib_input *i)
 {
 struct tsdev *ts = i->module.dev;
 int version;
 u_int32_t bit;
 u_int64_t absbit;
 
 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;
 }
 
 if (bit & (1 << EV_SYN))
 i->using_syn = 1;
 
 return 0;
 }
 原来tslib会比较版本号,内核中/include/linux/input.h中有如下语句:
 #define EV_VERSION              0x010000
 编译内核和编译tslib时这个版本号必须一致!
 否则出现上面的错误。
 
 在/dev/input目录下通常会生成event0,event1两个节点,一个为触摸屏,一个为键盘驱动,如果这两个
 驱动启动顺序变了,event0和event1也会根着变。如果tslib的节点声明出错,也会提示上面的错误信息。
 
 
 | 
 |