九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 5423|回复: 0
打印 上一主题 下一主题

tslib工作不正常

[复制链接]
跳转到指定楼层
楼主
发表于 2012-7-19 12:10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
运行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的节点声明出错,也会提示上面的错误信息。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-5-7 19:20 , Processed in 0.017106 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表