tslib移植—Selected device is not a touchscreen (must support BTN_TOUCH or BTN_LEFT events)

最近折腾tslib的移植,期间遇到各种问题,因为初次接触,外加对驱动这块也不熟,断断续续的耗费了不少时间。根据网上找教程编译tslib,步骤如下:
1)安装各种库;
2)在tslib目录中,运行./autogen.sh
3)./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --prefix=/usr/local/tslib CC=/xxx/arm-linux-gcc
4)将交叉编译生成的tslib文件打包,下载到目标板,然后解压到自己的文件目录
(tslib-1.4的编译会出现未定义的情况)我在tslib.h中添加

#define ABS_MT_SLOT             0x2f    /* MT slot being modified */
#define ABS_MT_PRESSURE         0x3a    /* Pressure on contact area */
#define ABS_MT_DISTANCE         0x3b    /* Contact hover distance */
#define ABS_MT_TOOL_X           0x3c    /* Center X tool position */
#define ABS_MT_TOOL_Y           0x3d    /* Center Y tool position */

配置环境变量:

export TSLIB_ROOT=/usr/local/tslib                                                                        
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf                                                      
export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal      
export TSLIB_TSDEVICE=/dev/input/event0                      
export TSLIB_CONSOLEDEVICE=none                  
export TSLIB_FBDEVICE=/dev/fb0                           
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts                  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib   

修改ts.conf的配置选项(默认打开了几个,保留module_raw input 、linear、dejitter delta=100),重启设备;

进入tslib的解压目录bin,运行./ts_calibrate,会提示

tslib-1.2: Selected device is not a touchscreen (must support BTN_TOUCH or BTN_LEFT)
tslib-1.4: Selected device is not a touchscreen (must support BTN_TOUCH or BTN_LEFT events)

网上找了类似的,以为是版本号的问题,多次折腾发现不是版本号的问题,下面是打印的版本号信息(tslib1.2):
在这里插入图片描述
经搜索找到一个简单的解决办法,tslib去除版本号验证的参考链接
由于触摸屏驱动没有提供ioctl接口,需要屏蔽tslib中ioctl相关代码。否则运行有错误。

vi ./plugins/input-raw.c

屏蔽掉static int check_fd(struct tslib_input *i)中所有ioctl相关代码,只保留一句
i->using_syn = 1;
最终代码如下:

static int check_fd(struct tslib_input *i)
{
#if 0
	xxx
#else
    i->using_syn = 1;
    return 0;
#endif
}

在此非常感谢提供参考教程的各位。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值