tslib编译

参考:

http://hi.baidu.com/huicxu/blog/item/3b7086c348f01b080ff47783.html

工具:

apt-get install autoconf

apt-get install libtool

配置

./autogen.sh

 ./configure --prefix=/usr/local/tslib --host=arm-none-linux-gnueabi ac_cv_func_malloc_0_nonnull=yes

make 

make install



下面问题的解决方法参考:

http://www.arm9home.net/simple/index.php?t11074.html


我用ts_test测试终端打印了
tslib: Selected device uses a different version of the event protocol than tslib was compiled for

查看tslib源代码发现打印该信息的语句在tslib的源代码的plugs文件夹中input-raw.c的
static int check_fd(struct tslib_input *i)函数中,发现tslib在加载linux触摸屏驱动模块时会检查内核的输入子系统的
版本号:
         if (ioctl(ts->fd, EVIOCGVERSION, &version) < 0) {
        fprintf(stderr, "tslib: Selected device is not a Linux input event device\n");
        return -1;
            }
        上面程序段将驱动的版本号存放在整型的version中
    if (version != EV_VERSION) {
        fprintf(stderr, "tslib: Selected device uses a different version of the event protocol than tslib was compiled for\n");
        return -1;
    }
        该程序将获得的版本号version与本tslib的面向的版本号匹配,若不同则打印:
        tslib: Selected device uses a different version of the event protocol than tslib was compiled for
        信息
        
    
再看arm交叉编译工具中的头文件库中的linux/input.h中的EV_VERSION定义为
    #define EV_VERSION        0x010000
而linux内核include/linux/input.h中的EV_VERSION定义为
    #define EV_VERSION        0x010001
由此可见问题就出现在内核的输入子系统的版本号不匹配的问题
    
    
解决办法:(以下2种任选其一)
    1.将内核源代码里的include/linux/input.h中的
    #define EV_VERSION        0x010001
    改为:
    #define EV_VERSION        0x010000

    再编译内核文件

    2.将arm交叉编译工具中的头文件库中的
    linux/input.h中的
    #define EV_VERSION        0x010000
    改为
    #define EV_VERSION        0x010001
    再编译tslib库



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值