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


目录
相关文章
|
iOS开发
Xcode报错解决方法:ld: symbol(s) not found for architecture arm64
Xcode报错解决方法:ld: symbol(s) not found for architecture arm64
3279 0
|
7月前
MTK在编译10A的target时报错:make: *** [mmi_feature_check]
MTK在编译10A的target时报错:make: *** [mmi_feature_check]
27 0
|
7月前
|
Ubuntu iOS开发 MacOS
Could not enumerate video devices (or none found).解决办法
Could not enumerate video devices (or none found).解决办法
103 0
|
并行计算 Ubuntu PyTorch
ImportError:..mmcv/_ext.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZNK2at6Tensor6deviceEv解决
ImportError:..mmcv/_ext.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZNK2at6Tensor6deviceEv解决
1359 0
VS2022编译GDAL库报错: fatal error U1050: PROJ_INCLUDE should be defined. PROJ >= 6 is a required depende
VS2022编译GDAL库报错: fatal error U1050: PROJ_INCLUDE should be defined. PROJ >= 6 is a required depende
227 0
|
IDE 开发工具 数据库
STM32bug【 KEILMDK中出现The Project references devices, files or libraries that are not installed】
STM32bug【 KEILMDK中出现The Project references devices, files or libraries that are not installed】
268 0
如何解决:./real.exe: error while loading shared libraries: libhdf5hl_fortran.so.100: cannot open shared
如何解决:./real.exe: error while loading shared libraries: libhdf5hl_fortran.so.100: cannot open shared
如何解决:./real.exe: error while loading shared libraries: libhdf5hl_fortran.so.100: cannot open shared
MAC编译lame ld: symbol(s) not found for architecture x86_64/_lame_init_old“, referenced from
MAC编译lame ld: symbol(s) not found for architecture x86_64/_lame_init_old“, referenced from
251 0
|
iOS开发
未解决:configure: error: XCode tool ‘metal‘ neither found in path nor with xcrunchecking for metal...
未解决:configure: error: XCode tool ‘metal‘ neither found in path nor with xcrunchecking for metal...
185 0
|
程序员 iOS开发 开发者
iOS开发:程序打包提示Ignoring file XXX missing required architecture arm7 in file XXX错误
前段时间在开发过程中遇到一个iOS打包报错Ignoring file XXX missing required architecture arm7 in file XXX的问题,然后回想了一下问题所在,是因为集成了ijk播放器插件,然后ijk三方库不支持arm7造成的报错。
193 0
iOS开发:程序打包提示Ignoring file XXX missing required architecture arm7 in file XXX错误