九鼎创展论坛

标题: tslib工作不正常 [打印本页]

作者: armeasy    时间: 2012-7-19 12:10
标题: tslib工作不正常
运行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的节点声明出错,也会提示上面的错误信息。






欢迎光临 九鼎创展论坛 (http://bbs.9tripod.com/) Powered by Discuz! X3.2