[转]工作笔记——Tslib的编译和触摸屏测试

tslib移植小问题 开发板文件系统/opt 文件夹不可读写? /opt >: mkdir test mkdir: can't create directory 'test': Read-only file system 解决:通过如下命令,然后进再进行重启即可。 mount rw -o remount / 启动tslib校验程序错误? /apps/etc >: ./ts_calibrate Couldn't open tslib config file: No such file or directory 阅读详情
1.编译 前段时间非常的郁闷…因为在运行生成校准程序ts_calibrate时总是出现一个错误:ts_open:Inappropriate ioctol for device 后来无数折腾后经过nanfansky指点才知道是自己板子的触摸屏驱动不支持ioctl操作,狂汗… 重新编译tslib cd tslib-1.3 export CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc //指定交叉编译器 ./autogen.sh //生成config文件 export PATH=/usr/local/arm/2.95.3/bin:$PATH echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache ./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no vi src/ts_read_raw.c //修改内容如下 make **************************************************** 在make之前,为了支持触摸屏,打开src/ts_read_raw.c文件,查看触摸屏驱动程序数据结构,看与ts_read_raw.c结构中的哪个一样,就将代码中的 char *defaulttseventtype="UCB1x00"; 修改为 自己板子上对应的驱动结构。 因为我的驱动对应的是h3600_ts_event结构 typedef struct { unsigned short pressure; unsigned short x; unsigned short y; unsigned short pad; } TS_RET; 所以修改为: char *defaulttseventtype="H3600"; ************************************ 如果不修改源代码,也可以在后面的测试中重新指定环境变量 export TSLIB_TSEVENTTYPE=H3600 //通过这个对tslib中的设备结构体定义 ***************************************************** 如果你触摸屏驱动程序支持ioctl操作,上面的configure操作中的--enable-inputapi=no]你可以删除。 然后就可以make了 ************************************************* 2.测试: 2.1 我在/root/share下新建了一个tslib目录,只copy了一些需要的文件 mkdir /root/share/tslib mkdir /root/share/tslib/tests mkdir /root/share/tslib/plugins mkdir /root/share/tslib/lib mkdir /root/share/tslib/etc cp /root/2410s/tslib-1.3/tests/.libs/ts_* /root/share/tslib/tests/ //几个所需的测试文件,比如生成的校准文件,测试文件等等 cp /root/2410s/tslib-1.3/src/.libs/libts-0.0.so.0* /root/share/tslib/lib/ //几个所需的库文件 cp /root/2410s/tslib-1.3/src/.libs/libts.so /root/share/tslib/lib/ //几个所需的库文件 cp /root/2410s/tslib-1.3/plugins/*.so /root/share/tslib/plugins/ //触摸屏插件模块库 cp /root/2410s/tslib-1.3/etc/ts.conf /root/share/tslib/etc/ //配置文件 2.2 连接板子 执行minicom mount –t nfs –o nolock 192.168.0.155:/root/share /mnt/nfs使板子mount上PC,共享路径/root/share 2.3 做链接 ln -s /dev/fb/0 /dev/fb0 //帧缓冲设备板子上为/dev/fb/0,但程序默认为/dev/fb0,所以做了一个链接/dev/fb0到/dev/fb/0 ln -sf /dev/touchscreen/0raw /dev/ts //qtopia要打开/dev/ts,你没有这个文件, 所以 dev下边应该有触摸平的节点, 相当于, qtopia启动要找 /dev/ts, 但是你只有/dev/touchscreen/0raw, 所以你把ts链接到你的触摸屏的文件就可以了! 我得触摸屏设备节点文件为/dev/touchscreen/0raw 所以,建立链接 /dev/ts 到/dev/touchscreen/0raw (这里要自己针对自己板子具体的文件进行设置,要不然也会报错) 2.4 指定环境变量 export QWS_MOUSE_PROTO=TPanel:/dev/touchscreen/0raw export T_ROOT=/mnt/nfs/tslib export LD_LIBRARY_PATH=$T_ROOT/lib //指定tslib库文件路径 export TSLIB_CONSOLEDEVICE=none //tslib运行需要的控制台,这里就是LCD屏幕 ,设定控制台设备为none,否则默认为/dev/tty, export TSLIB_FBDEVICE=/dev/fb0 //指定帧缓冲设备 export TSLIB_TSDEVICE=/dev/touchscreen/0raw //指定触摸屏设备节点文件 export TSLIB_CALIBFILE=$T_ROOT/etc/pointercal //指定触摸屏校准文件pintercal的存放位置 ******************************************************************** 注:qte的/src/kernel/qwsmouse_qws.cpp里面校准文件默认打开是在/etc下面为/etc/pointercal, 可是我得板子的根文件系统为只读,所以我放在/mnt/nfs/tslib/etc下面了, 所以在交叉编译qte的时候需要修改qwsmouse_qws.cpp ************************************************** export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf //指定TSLIB配置文件的位置 export TSLIB_PLUGINDIR=$T_ROOT/plugins //指定触摸屏插件所在路径 2.5 校准 运行校准程序校准屏幕(5点校准) cd $T_ROOT/tests ./ts_calibrate //板子上陆续出现5个光标,点击完毕后会生成校准文件pintercal存放在$T_ROOT/etc/下面 ******************************************** ts_calibrate是一个应用程序,在屏幕上画几个按钮,将用户点击后从ts驱动获得的数据和 屏上的坐标位置通过一套算法来获得校准数据写到一个校准文件里。 ****************************************** 3. 可能遇到的错误分析: 在测试的时候,运行./ts_calibrate又出现了令人十分之郁闷的错误: ts_config: Success 追查后应该是在打开ts_config中出现了错误(居然报Success,无欲至极) 在网上发现多是这个错误(这是1.4版本的错): Couldnt load module input No raw modules loaded tsconfig: Success 我没有上面那两行的错误,不过应该是一样的错误原因 那么错误就定位在 ts_config 里。并且可以进一步确定是在加载插件模块时出的错 查询了ts_load_module.c这个文件发现网上和自己的不太一样(网上公布的源码是1.4或者是0.1.1的吧)我的是1.3的 我下载了tslib-0.1.1的后重新实验 就发现错误的是这样子的(第一个错误是由ts.conf所决定的) Couldnt load module pthres No raw modules loaded tsconfig: Success 阅读了tslib 的原代码,知道了cstdlib 库里的一个函数: getenv 是用来得到指定系统环境变量的值。是为了测试 tslib 是否得到正确的环境变量。 其环境变量默认的值在readme中有注明。 加载插件模块时出出错分析: ts_calibrate会打开ts_config ts_config函数里首先会读取 tslib 配置文件(ts.conf,由 TSLIB_CONFFILE环境变量指定,在tslib/etc下面), 然后根据这个文件逐个加载插件库 1.3版本的ts.conf内容为 module mousebuts moudle variance xlimit=50 ylimit=50 pthreshold=3 moudle dejitter xdelta=1 ydelta=1 pthreshold=3 moudle linear ts_config又会调用ts_load_module加载库。从这个函数里,程序先是得到配置文件中指定加载的模块名, 然后根据模块名构造了一个 so 文件文件名,然后调用了系统函数 dlopen 加载库! Linux 下的加载dlopen 类似于 Windows 下动态链接库的函数:dlopen 错误就应该出在构造的库文件名是错误的---其指定的文件不存在 ---从而导致 dlopen无法加载。所以才提示找不到文件或目录! 那么这样就是应该把需要的mousebuts.so variance.so dejitter.so linear.so应该复制到/tslib/plugins中 (上面修正后作了这一步,就可以拉,就不会出现错误拉) ************************************** 这里来谈一谈tslib-1.4,和1.3有一点点不一样,主要是配置文件的差别 一般来说,tsllib-1.4种一个完整的ts.conf配置文件如下所示: module_raw input module pthres module variance delta=30 module dejitter delta=100 module linear 出现这个错误 Couldnt load module input No raw modules loaded tsconfig: Success 第一行告诉tslib从linux的输入设备读取数据,需要用到input这个模块,也就是plugin目录下的input.so文件, 所以你的TSLIB_PLUGINDIR一定要配置正确,让tslib能够找到模块文件。 其他参数分别控制触摸点的连续下压、变化宽度、轨迹变化和线性校准。 也是要把其对应的需要的几个库文件复制到/tslib/plugins中 第二行导致"No raw modules loaded."的原因有两个: 注意:一是你的ts.conf中没有指定module_raw,自带的ts.conf的所有module_raw都被注释掉了, # Uncomment if you wish to use the linux input layer event interface # module_raw input # Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d # module_raw collie # Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860 # module_raw corgi # Uncomment if you're using a device with a UCB1200/1300/1400 TS interface # module_raw ucb1x00 # Uncomment if you're using an HP iPaq h3600 or similar #module_raw h3600 # Uncomment if you're using a Hitachi Webpad # module_raw mk712 # Uncomment if you're using an IBM Arctic II # module_raw arctic2 你应该打开至少一个module_raw选项,有人就选择了input,去掉了它的注释 得到module_raw input 另一个原因就是你没有正确配置TSLIB_PLUGINDIR,tslib从你指定的目录中没有找到plugin需要的模块文件, 请检查你的路径和文件。
tslib 移植与使用 tslib 是一个开源的第三方库,用于触摸屏性能调试,使用电阻屏的时候一般使用 tslib 进行校准。虽然电容屏不需要校准,但是由于电容屏加工的原因,有的时候其不一定精准,因此有时候也需要进行校准。最主要的是 tslib 提供了一些其他软件,我们可以通过这些软件来测试触摸屏工作是否正常。最新版本的 tslib 已经支持了多点电容触摸屏,因此可以通过 tslib 来直观的测试多点电容触摸屏驱动,这个要比观看 eventX 原始数据方便的多。 tslib 的移植很简单,步骤如下: 1 、获取 tslib 源码 阅读详情

相关推荐

ARM Linux 移植 tslib

关于tslib移植的各个环节,包括下载源码、交叉编译、配置与测试等步骤,这些是移植tslib的关键部分。

LNN2022的博客 1082

tslib的移植

Tsllib移植问题 出现以下提示错误问题: Couldnt load module input No raw modules loaded. ts_config: Success 在/etc/profile添加 export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_PLUGINDIR=/usr/lib/ts(ts的路径) 移植完后运行Qt软件没有触摸功能,添加如...

yzs_110的博客 824

TSlib触摸屏库源码在嵌入式Linux下的移植与应用

本文还有配套的精品资源,点击获取 简介:TSlib是一个为嵌入式Linux设计的开源触摸屏库,提供通用接口简化驱动开发。本文档包含源代码及移植指南,旨在帮助开发者在各种硬件平台上编译和安装TSlib库。TSlib核心功能包括校正触摸屏坐标偏移、过滤噪声,以及通过插件系统增强触摸屏性能。另外,TSlib支持用户空间驱动,易于配置和集成到图形库,提供示例应用和详细文档指导开发者...

weixin_42602368的博客 934

Tslib的编译和触摸屏测试

1.编译前段时间非常的郁闷…因为在运行生成校准程序ts_calibrate时总是出现一个错误:ts_open:Inappropriate ioctol for device后来无数折腾后经过nanfansky指点才知道是自己板子的触摸屏驱动不支持ioctl操作,狂汗… 重新编译tslib cd tslib-1.3 export CC=/usr/local/arm

嵌入式开发小站 2264

触摸屏校准资料 linux-tslib

触摸屏校准资料。里面还有linux自带的tslib校准算法。和几篇相关论文。。

Tslib中触摸屏校准原理及其实现

Tslib中触摸屏校准原理及其实现,讲解了tslib中的五点校准原理,并且给出了自己实现的一个方式,可以不使用tslib库,自己来实现五点校准法!

tslib交叉编译常见错误分析

Segmentation fault ts.conf没修改,或者修改后前边的空格没有删除掉 vi /opt/ts.conf 最后内容如下: module_raw input module pthres pmin=1 module variance delta=30 module dejitter delta=100 module linear a)、ts.conf文件中的各

u012175418的专栏 5060

华为iTrustee实战:5分钟搞定TrustZone环境搭建(附BoostKit配置技巧)

本文提供了一份华为iTrustee与ARM TrustZone环境的5分钟快速搭建实战指南。详细介绍了在TaiShan服务器上利用鲲鹏BoostKit套件部署可信执行环境(TEE)的完整流程,包括环境检查、驱动安装、首个可信应用(TA)的编译与运行,并分享了关键的BoostKit配置技巧与深度排错方法,助力开发者快速为业务注入硬件级安全能力。

yoga7的博客 966

交叉编译tslib遇到问题

参考网上说是没配置环境变量,配置如下代码后问题解决。经过问题查找,发现是配置编译时工具链指定错误。修改成开发板指定工具链命令。

weixin_56940389的博客 657

从零开始讲DDR(8)——AXI 接口MIG 使用(1)

我们简单拆解了MIG AXI接口中测试文件的整体框架,首先在sim_tb_top.sv文件中例化了DDR模型和example_top。在example_top中,又例化了MIG IP和一个流量产生器ddr4_v2_2_8_axi_tg_top。在ddr4_v2_2_8_axi_tg_top中的主要功能是分别例化了boot_mode_gen,prbs_mode_gen,custom_mode_gen和axi_opcode_gen。

apple_53311083的博客 1587

【踩坑记录】pandas.to_sql 报 “‘Engine‘ object has no attribute ‘cursor‘”,最后竟然是环境问题

摘要 本文记录了使用pandas+SQLAlchemy+pymysql将数据写入MySQL时遇到的"Engine对象无cursor属性"错误及其解决方案。问题表现为to_sql方法将SQLAlchemy引擎误认为普通DBAPI连接,导致调用cursor()方法失败。经排查发现,这是由于pandas/SQLAlchemy环境损坏所致,而非代码问题。最终通过完全卸载并重新安装pandas(≥2.1)、SQLAlchemy(≥2.0)和pymysql解决了该问题。文章还建议将遗留的read_s

每日出拳老爷子的博客 336

工作笔记——Tslib的编译和触摸屏测试

工作笔记——Tslib的编译和触摸屏测试1.编译前段时间非常的郁闷…因为在运行生成校准程序ts_calibrate时总是出现一个错误:ts_open:Inappropriate ioctol for device后来无数折腾后经过nanfansky指点才知道是自己板子的触摸屏驱动不支持ioctl操作,狂汗… 重新编译tslib cd tsli

dongliqiang2006的专栏 3689

【机器学习】推理时计算优化——思维链(Chain-of-Thought)与慢思考范式 第一章:基础理论与认知框架 第二章:计算优化技术与前沿方法

过程监督在数学推理中展现出显著优势,因其能够定位错误发生的具体步骤,而非仅在最终答案处提供稀疏反馈。然而,高质量过程标注的获取成本高昂,这催生了基于自动验证器的近似方法。

VectorShift的博客 71

tslib(触摸屏输入设备的轻量级库)的学习、编译及测试记录

是一个用于 Linux 系统中触摸屏输入设备的轻量级库,特别常用于嵌入式开发。它主要提供了一组工具和 API,用于对触摸屏输入事件进行校准、过滤和处理,使得触摸屏可以更精确、更稳定地与系统交互。

昊虹AI笔记 1370

SerDes系列之如何选择AC耦合电容

交流耦合电容用于隔离PCB互连时的直流分量(Common-mode voltage),同时传递交流分量(Voltage swing),其作用类似于一个高通滤波器,但是,如果电容容值选取不当,使用过程中会产生信号质量问题,典型的应用场景:当包含相同的长串1或0的NRZ数据应用于该高通滤波器时,会发生低频电压跌落,导致低频模式相关抖动(PDJ)。

一只豌豆象的博客 2350

LLCC68芯片系统架构与LoRa驱动开发核心解析

LoRa射频收发器是低功耗广域物联网(LPWAN)的关键组件,其本质是集成了调制解调器、协议引擎、数据缓冲区与电源管理的专用SoC。理解其工作模式状态机(Sleep/Standby/TX/RX)与SPI主机接口时序规范,是实现稳定通信的基础。LLCC68通过寄存器映射与命令集双接口抽象硬件控制,支持LoRa扩频调制与FSK兼容模式,具备高链路预算(157 dB)和DC-DC/LDO动态电源切换能力。典型应用场景包括远距离传感器节点、智能表计与工业无线监测系统。本文深入剖析LLCC68的信号链路径、中断机制与

weixin_29859471的博客 281

嵌入式Linux下tslib库的交叉编译与触摸屏测试实战

本文详细介绍了在嵌入式Linux环境下tslib库的交叉编译与触摸屏测试实战。从工具链配置、tslib编译步骤到库文件移植与系统集成,提供了完整的开发指南。重点讲解了触摸屏校准与测试工具的使用,并分享了自定义测试程序的开发实例,帮助开发者快速实现触摸屏功能调试与优化。

yellow的专栏 694

诊断数据库ODX标准协议ISO22901定义组成部分

综上所述,简略描述了ODX数据库中UML/XML/Text/Check rules具体功能以及详细内容。

Soly_kun的博客 907

【Linux应用编程笔记】tslib库使用

一个专门为触摸屏设备开发的开源Linux应用层函数库,可作为Qt的触摸屏输入插件,为Qt提供触摸输入支持。tslib为触摸屏驱动和应用层之间的适配层,它把应用程序中读取触摸屏struct input_event类型数据并进行解析的操作过程进行了封装,向使用者提供了等装好的API接口。打开触摸屏设备配置触摸屏设备读取触摸屏设备关闭触摸屏设备。

医疗嵌入式技术探索者 | 从硬件驱动到系统集成的全栈实践记录 1927

Chrome更新出现错误代码3: 0X80070422 -- system level的解决方案

本文主要介绍了Chrome更新出现错误代码3: 0X80070422 – system level的解决方案,希望能对使用Chrome的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【亲测免费】 tslib触摸屏访问库安装与配置指南

**tslib** 是一个跨平台的库,专为触摸屏设备设计,提供对设备的访问能力,并允许对输入事件应用过滤器。它广泛应用于嵌入式系统中,特别是在操作系统原生驱动不足时,用以优化触控体验。此项目主要使用 **C** 作为编程语言,并遵循 **LGPL-2.1** 许可协议。 ## 关键技术和框架 - **触摸屏过滤技术支持**:支持多种数学过滤器,可以根据需求任意数量或顺序排列。 - **高度配置和...

gitblog_07580的博客 782

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

触摸屏调试库tslib的移植与使用

tslib库的移植与使用

安迪西_嵌入式攻城狮 2168

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

tslib 的安装与使用

tslib 库的介绍与使用

weixin_46640184的博客 4179

i.MX6ULL终结者Linux 电容触摸屏实验Tslib移植和使用

文章目录1 获取tslib源码2 编译tslib3 测试tslib ft5426触摸驱动添加成功后,发现触摸可能不太准确,这时可以使用一个第三方开源库tslib来调试触摸屏。下面来看一下tslib源码如何移植。 1 获取tslib源码 tslib源码可以从官方地址获取:https://github.com/libts/tslib,打开网址可以看到最新的版本是1.21,可以从官网获取,也可以从网盘资料中获取,资料路径:i.MX6UL终结者光盘资料/06_Linux驱动例程/第三方库源码/tslib-1.21.

weixin_46635880的博客 540

嵌入式Linux触摸屏开发实战:从tslib移植到多点触控应用开发

本文详细介绍了嵌入式Linux系统中触摸屏开发的完整流程,从tslib移植到Qt应用实战。内容涵盖tslib架构解析、交叉编译环境搭建、核心API深度解析、Qt集成方案以及多点触控应用开发,为开发者提供全面的技术指导和实践案例。

omega的博客 1107

嵌入式linux开发,tslib移植,ubuntu下,tslib-1.4交叉编译,与arm下安装

寞水

寞水 1130
上一篇: [转]qtopia移植:交叉编译qtopia-2.2.
下一篇: [转]s3c2410触摸屏驱动(2.6内核)分析
wind20
博客等级 码龄22年 10粉丝 1原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值