tslib编译使用方法(selected device is not a touchscreen I understand)

出现这个问题花了我两个小时的时间才去解决掉,原因修改版本后忘了重新编译LCD。

下面是我一直tslib 的详细步骤:

tslib-1.4.tar.gz源码下载地址:tslib-1.4.tar.gz

# tar -xzvf tslib-1.4.tar.gz 

# cd tslib

# ./autogen.sh
# mkdir tmp
# echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache    (必须加,具体原因看文章最后)
# ./configure --host=arm-linux --enable-inputapi=no --cache-file=arm-linux.cache --prefix=$(pwd)/tmp

# make && make install

make install后,会在tmp目录生成4个子目录:
include  lib  etc  bin
生成的库位于lib中,该目录下还有一个子目录ts,它包含了许多校准用到的库(如input.so等)。

etc下的ts.conf为配置文件,bin目录下为校准、测试工具(如校准的ts_calibrate,测试用的ts_test)。

然后把这个四个文件复制到根文件系统的根目录下。

配置文件ts.conf内容如下:
module_raw input     (去掉前面的# 和空格,其他的保持不变)
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
module_raw有许多种,这里只使用input(即Linux的input子系统,设备文件名称为/dev/event1)/dev/event0为触模屏的设备节点

vi /etc/profile 中添加如下命令

export TSLIB_TSDEVICE=/dev/event0         指定触屏设备
export TSLIB_CALIBFILE=/etc/pointercal    指定触摸屏校准文件 pintercal 的存放位置 
export TSLIB_CONFFILE=/etc/ts.conf         指定 TSLIB 配置文件的位置
export TSLIB_PLUGINDIR=/lib/ts/               指定触摸屏插件所在路径
export TSLIB_CONSOLEDEVICE=/dev/tty1 设定控制台设备为 none ,否则默认为 /dev/tty ,这样可以避免出现“open
consoledevice: No such file or directory KDSETMODE: Bad file descriptor ” 的错误 
export TSLIB_FBDEVICE=/dev/fb0             指定帧缓冲设备 

当我执行 ts_calibrate 出现了如下错误:

selected device is not a touchscreen I understand

在网上找了找到文章后发现原因是内核用的EV_VERSION为0x0100001,交叉编译工具EV_VERSION为0x0100000

把这两个修改成一样就可以了。(其实正解也是这样)

方法一:

我修改# vi include/linux/input.h  EV_VERSION为0x0100000,重新编译内核还是出现相同的错误,这儿花了我大把的时间,后来才发现我这个 EV_VERSION宏改变了,而我的LCD驱动程序却没有重新编译,我就在lcd驱动程序中随便移动一下,就是为了网编译器检测到我这个驱动是修改过的,然后lcd驱动也重新编译了,再次测试就OK了,心碎啊,花了两个小时时间才解决掉。

方法二:

交叉编译中修改/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include/linux/input.h中EV_VERSIN为0x0100001

提示下这个交叉编译下的input.h有可能你的路径跟我的不一样,你可以在你交叉编译路径下用如下命令搜索:

find -name "input.h"

在make时候可能出现如下错误:

ts_test.o(.text 0x218): In function `main':
: undefined reference to `rpl_malloc'
在当前目录查找了rpl_malloc,发现configure里有#define malloc rpl_malloc一行。分析configure 脚本相关的代码,原来是ac_cv_func_malloc_0_nonnull引起的,OK我们不让它检查了,产生一个cache文件arm-linux.cache,欺骗configure:

解决办法:

# echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache

时间: 2024-09-27 07:48:09

tslib编译使用方法(selected device is not a touchscreen I understand)的相关文章

tslib: Selected device is not a touchscreen (must support ABS_X and ABS_Y events)

/************************************************************************************ * tslib: Selected device is not a touchscreen (must support ABS_X and ABS_Y events) * 说明: * tslib校正的时候遇到这个问题,需要修改驱动里设备的支持的属性来解决. * * 2017-5-25 台湾 中和区 曾剑锋 **********

腾讯CMEM的PHP扩展编译安装方法_php技巧

本文实例讲述了腾讯CMEM的PHP扩展编译安装方法.分享给大家供大家参考.具体如下: CMEM是什么? CMEM全称为Cloud Memory,是腾讯提供的高性能内存级持久化存储服务,适用于数据量小.访问量高.key-value存储的场景. CMEM基于一个存储键/值对的hashmap,数据使用内存存储,并保证数据的持久性. CMEM PHP Extension是什么? CMEM基于标准的Memcached协议以及接口,只是将数据获取接口增加返回值设定. Memcached的Get协议没有设计返

Gearman::XS在Centos下的编译安装方法_linux shell

本文简述了Gearman::XS在Centos下编译安装方法,供大家参考学习一下! 目前Gearman能够支持各种语言,其官网的描述如下:   Language Bindings/Drivers/Frameworks Select your language – cross links to download section which details all your options. C, C#/.NET, Go, Java, Lisp, Nodejs, PHP, Perl, Python,

【COCOS2D-X(1.X 2.X) 】IOS6与IPHONE5适相关设置随笔(解决第三方类库无法通过ARMV7S编译的方法、添加DEFAULT-568H@2X.PNG)

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/1020.html 一. 很多项目使用>=4.5 version 的Xcode无法,发现很多第三方库,比如SWaves SDK.Admob SDK.91 SDK Mobage SDk等等. 1. 最简单的解决方案肯定是等这些第三方库尽快更新支持ios6 armv7s 的新版SDK. 2.另外等不及的童鞋可以尝试

myeclipse中项目不编译解决方法

  在开发中经常遇到myeclipse不编译的情况,但不同情况的解决方法又不一样,今天同样是遇到此类情况,在网上狂搜,终于找到一篇好文,它囊括了解决这种情况的常用的方法,现在发出来与大家分享.我遇到的情况是通过最后一个方法解决的:classpath文件,里面的路径不正确. 解决1 确保 project->build automatically 已经被选上. 解决2 如果选上了,也不好使, 使用这一招: project->clean->选第2个 clean select project,

php线程安全编译解决方法

  php 线程安全编译 网上这么说:先安装php5,加上--maintainer-zts 然后安装pthreads cd /usr/local/src/ wget http://pecl.php.net/get/pthreads-2.0.5.tgz tar zxvf pthreads-2.0.5.tgz cd pthreads-2.0.5 /usr/local/php5.5.12-zts/bin/phpize ./configure --with-php-config=/usr/local/p

linux中PHP 5.6编译安装方法(支持ORACLE/MARIADB数据库)

大多数phper编译php的时候,的模式都很固定,简单的支持一些常见拓展 支持mysql就够了,而且这些phper们偏爱php5.2 php5.3 连php5.4都很少,很不愿意尝试编译新的版本,以后就固定用这个版本,用固定的编译代码.这样虽然很安全.但是我们应该开拓创新. 环境:Linux CentOS 7 PHP版本:php 5.6.1 目的:支持MariaDB(Mysql), Oracle数据库拓展 以及支持常用拓展组件 事先安装好了MariaDB,MariaDB跟Mysql差不多,此处不

如何编译libfreetype方法详解_C 语言

libfreetype是为跨平台设计的.在windows下要编译的话,可以直接打开freetype-2.4.10\builds\win32\vc2008目录下的freetype.sln进行编译. 有时候我们只希望对特定字体做简单的事情,则我们可以对libfreetype进行裁剪.裁剪的方式有两种:1,对于GNU make需要修改modules.cfg2,对于其他编译器,比如vs2008则需要修改ftmodule.h如果我们只想处理truetype的字体文件,则可以只保留sfnt_module_c

使用VS2005自带的混淆器防止你的程序被反编译的方法_C#教程

首先要做的找到dotfuscator.exe:D:\Microsoft Visual Studio .NET 2003\PreEmptive Solutions\Dotfuscator Community Edition 运行dotfuscator.exe首先是是否注册的界面,先不注册吧,进入下面的界面: 这里看到了2个选项,1个是打开现有项目,如果选这个你会发现要打开的是个XML文件,而不是DLL或EXE,因为dotfuscator是根据XML配置文件来进行处理的.XML配置文件你可以自己写,