tslib 移植 相关整理

17. 使用 tslib 库 tslib 是专门为触摸屏设备所开发的 Linux 应用层函数库,并且是开源。tslib 为触摸屏驱动和应用层之间的适配层, 它把应用程序中读取触摸屏 struct input_event 类型数据(这是输入设备上报给应用层的原始数据)并进行解析的操作过程进行了封装,向使用者提供了封装好的 API 接口。tslib 从触摸屏中获得原始的坐标数据, 并通过一系列的去噪、去抖、坐标变换等操作,来去除噪声并将原始的触摸屏坐标转换为相应的屏幕坐标。bin: 一些 tslib 提供的小工具,用于测试触摸屏。 阅读详情

tslib的打补丁、编译、安装可参见博文:
http://blog.youkuaiyun.com/niyufeng/article/details/7546796
(如果原文链接失效,可来这里看:http://blog.youkuaiyun.com/newthinker_wei/article/details/8639276)
按照上文中的步骤编译前,要注意先设置CC等环境变量,不然编译完后运行时会出现./ts_calibrate: line 1: syntax error :”(” unexpected. 这样的错误。这一点上文中没有强调,我就犯了这样的错误。
大概就是这几项:
export PATH=$PATH:交叉工具链路径/bin
export CC=arm-linux-gcc
export CXX=arm-linux-g++

编译安装好后,按照上文说的,在自动生成的ts.conf文件开头加上一句:module_raw one_wire_ts_input。这只后,剩下的就是设置环境变量了。我设置的方式跟上文中的不太一样,被作者注释掉的那些环境变量我都加上了。

export TSLIB_ROOT=XXXXXXXXX    (这些XXX都按照自己的情况修改)
export TSLIB_CALIBFILE=XXXXXXXXX
export TSLIB_CONFFILE=XXXXXXXXX
export TSLIB_PLUGINDIR=XXXXXXXXX
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/touchscreen-1wire
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
export PATH=$TSLIB_ROOT/bin:$PATH

这样设置好后,我这里还要多设置一个环境变量,QWS_MOUSE_PROTO,否则QT程序还是不能接受触摸屏输入。

" http://blog.chinaunix.net/uid-26310563-id-3167509.html " 这篇博文里,有下面这样几句话,对配置环境变量QWS_MOUSE_PROTO有点用:
“
QWS_MOUSE_PROTO是鼠标的设置,Tslib表示使用tslib类型鼠标,即触摸屏,/dev/input/event表示触摸屏对应的设备节点,要与移植tslib时设置的环境变量TSLIB_TSDEVICE一致。如果想要同时支持USB鼠标,设置如下:

export QWS_MOUSE_PROTO="Tslib:/dev/input/event0 Intellimouse:/dev/input/mouse0"

”

目前我的环境变量是这样设置的(编译好的tslib包我直接放到了/usr/local下面,并改名为 tslib_myown,因为友善的系统上已经有现成的tslib了,改下名字以区分开):

#! /bin/sh
export TSLIB_ROOT=/usr/local/tslib-myown    #tslib的根目录。这个不是必须的,tslib的相关文件可以分散放开,但最好别这样做,不易管理。
export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal    #校准结果文件。安装好tslib,运行ts_calibrate校准后,这个文件存储了校准信息,是以后系统计算触点坐标要用到的参数。
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf        #tslib的配置文件
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts    #tslib的插件目录
export TSLIB_CONSOLEDEVICE=none        #
export TSLIB_FBDEVICE=/dev/fb0        # 对应的帧缓冲设备
export TSLIB_TSDEVICE=/dev/touchscreen-1wire    #触摸屏的设备节点
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib        
export PATH=$TSLIB_ROOT/bin:$PATH
#export QWS_MOUSE_PROTO="Tslib MouseMan:/dev/input/mice"
#export QWS_MOUSE_PROTO="Tslib :/dev/input/mouse0"
export QWS_MOUSE_PROTO="Intellimouse:/dev/input/event0 Tslib :/dev/touchscreen-1wire"    #鼠标协议    


这样设置之后,触摸屏可以用了,但原来可以使用的鼠标,现在却也不能用了,即使我在QWS_MOUSE_PROTO里设置了Intellimouse(如最后一行所示),也不行。现在还不清楚到底为何,等以后搞定了再回来补充上。


附加:

1.

关于如何指定显示效果(如旋转屏幕),在刚才提到的博文http://blog.chinaunix.net/uid-26310563-id-3167509.html中,有这样一段,以后可能会用到。

“

QWS_DISPLAY指定显示形式和framebuffer。格式如下:

 export QWS_DISPLAY="<driver>[:<driver specific options>] [:<display num>]"

<driver>的有效参数是LinuxFb, QVFb, VNC, Transformed, Multi 和 keys identifying custom drivers,<display num>的参数通常是用来区分是否是相同的显示屏和是否支持多显示屏,这里设置为0。

驱动详细选项

可用的

描述

mmWidth=<value>

LinuxFb, QVFb

屏幕的物理宽度 (通常是按分辨率计算).

mmHeight=<value>

LinuxFb, QVFb

屏幕的物理宽度 (通常是按分辨率计算).

<subdriver>

VNC, Transformed, Multi

指定一个子驱动.

<RotX>

Transformed

屏幕的旋转角度x的有效值为90,180,270.

mmWith和mmHeight的值的大小与Qt应用程序在LCD上显示的字体和控件大小有关系。VNC, Transformed和Multi screen drivers都依赖子驱动. 指定一个驱动的一般方法如下:

export QWS_DISPLAY="<driver>[:<subdriver>][:<subdriver options>] [:<display num>]

如果想要在原来设置的基础上把屏幕旋转90度,参数值设置如下:

QWS_DISPLAY= Transformed :Rot90: LinuxFb:mmWidth95:mmHeight54:0


”



2.  QWS_MOUSE_PROTO环境变量的设置规则,参见:http://www.cnblogs.com/baizx/archive/2010/04/08/1707790.html

     如果这个链接失效,来这里看: http://blog.youkuaiyun.com/newthinker_wei/article/details/8639716




tslib 移植与使用 tslib 是一个开源的第三方库,用于触摸屏性能调试,使用电阻屏的时候一般使用 tslib 进行校准。虽然电容屏不需要校准,但是由于电容屏加工的原因,有的时候其不一定精准,因此有时候也需要进行校准。最主要的是 tslib 提供了一些其他软件,我们可以通过这些软件来测试触摸屏工作是否正常。最新版本的 tslib 已经支持了多点电容触摸屏,因此可以通过 tslib 来直观的测试多点电容触摸屏驱动,这个要比观看 eventX 原始数据方便的多。 tslib 的移植很简单,步骤如下: 1 、获取 tslib 源码 阅读详情

相关推荐

解构复杂技术项目:从QT音频引擎移植案例掌握跨平台开发与代码分析

在软件开发中,跨平台移植和遗留项目重构是常见的工程挑战,涉及对多技术栈整合项目的系统性分析。其核心原理在于理解不同平台(如Windows、Linux、嵌入式系统)在编译器、系统API、硬件抽象层和第三方库依赖上的差异性,并通过构建平台抽象层来统一接口。掌握这项技术能显著提升代码的复用性和可维护性,对于开发跨设备应用、维护历史代码库以及进行技术选型评估具有重要价值。典型的应用场景包括将桌面应用程序迁移到嵌入式设备、整合不同领域的专用库(如音频处理与图形界面),以及复活缺乏文档的“半成品”项目。本文以一次涉及Q

weixin_30621711的博客 402

第三方库介绍——tslib库

第三方库介绍——tslib库

NRWHF的博客 6434

Linux系统下GT1151触摸屏驱动移植与调试实战指南

在嵌入式Linux开发中,输入子系统是连接物理输入设备与应用层交互的核心框架,它负责统一管理键盘、鼠标、触摸屏等各类输入事件。其工作原理是通过设备驱动将硬件产生的原始信号转换为标准输入事件,并上报给用户空间。这项技术的价值在于为上层应用提供了统一、抽象的输入接口,极大地简化了人机交互功能的开发。在工业控制、智能终端、交互式设备等应用场景中,稳定可靠的触摸屏驱动是实现流畅触控体验的基础。本文聚焦于Goodix GT1151这款常见电容触摸芯片,深入剖析了其在Linux内核中的驱动移植全过程,涵盖了从设备树配置

weixin_34138056的博客 444

tslib 的安装与使用

tslib 库的介绍与使用

weixin_46640184的博客 4179

正点原子GT9xx触摸屏驱动移植保姆级教程(附避坑指南与GitHub源码)

本文提供正点原子GT9xx触摸屏驱动移植的完整教程,涵盖源码获取、内核配置、设备树修改及常见问题解决。特别针对Linux驱动移植中的管脚复用等难点提供详细避坑指南,并附GitHub源码参考,帮助开发者高效完成触摸屏驱动开发。

weixin_30265103的博客 425

嵌入式显示方案全解析:从接口选型到量产调试的实战指南

在嵌入式系统中,人机交互显示方案往往决定着产品的体验与成败。理解SPI、RGB、LVDS等主流显示接口的原理,是合理选型的第一步:它们分别对应从MCU到应用处理器的不同算力层级,也决定了系统架构的上限。与此同时,TFT、OLED、电子墨水屏等面板的光学特性与功耗差异,需要依据实际应用场景匹配。在软件层面,LVGL等图形库的引入、帧缓冲与双缓冲机制的设计,以及DMA加速的运用,是保障渲染流畅度与环境适应性的关键。无论是工业HMI、智能家居面板,还是手持低功耗设备,都需要一套从硬件电源完整性到驱动调试的完整方法

weixin_42632434的博客 231

原子学习笔记6——使用tslib库

tslib 是专门为触摸屏设备所开发的 Linux 应用层函数库,并且是开源。tslib 为触摸屏驱动和应用层之间的适配层,它把应用程序中读取触摸屏 struct input_event 类型数据(这是输入设备上报给应用层的原始数据)并进行解析的操作过程进行了封装,向使用者提供了封装好的 API 接口。

weixin_48213877的博客 3017

FoundationPose实战:从零部署到Demo运行全记录

本文详细记录了FoundationPose从零部署到Demo运行的全过程,包括Ubuntu环境配置、项目部署、依赖安装及常见问题解决方案。特别针对复现过程中的关键步骤如CUDA版本选择、Eigen3安装等提供了实用技巧,帮助开发者高效完成FoundationPose的部署与调试。

weixin_27102543的博客 268

qte的tslib-path补丁和Tslib的编译支持触摸屏

 最近写完了程序后发现自己的触摸屏的在使用的过程中效果不是很好,抖动很严重。在网上搜索了一下相关的资料可以用tslib来去除抖动,在网上看到几篇相关的文章,根据我的实际情况把他整理了一下,希望对新手有所帮助。 我的触摸屏是四线电阻式的,抖动本身就很历害,可能是硬件上面设计的缺陷,我在驱动里加了去抖动的代码,效果还是让人不理想,一开始本身就没有用tslib来结合qte。单独是qte,没有

568

Cadence Allegro安装全攻略:从准备到优化的完整指南

本文提供了一份详尽的Cadence Allegro安装教程,涵盖从系统准备、硬件要求到获取安装文件的完整前期工作。指南逐步解析了自定义安装、路径选择及核心组件配置,并重点阐述了许可证服务器的环境变量设置与服务启动等关键激活步骤,最后给出了首次启动验证、个性化优化及常见问题排错方案,助您高效完成安装与配置。

weixin_29243063的博客 185

从维纳滤波到Richardson-Lucy:图像去模糊算法的原理与实践

本文深入解析了图像去模糊的核心原理,重点对比了维纳滤波与Richardson-Lucy两种经典去卷积算法。维纳滤波在频域进行快速权衡,适用于高斯噪声场景;而Richardson-Lucy算法基于泊松噪声模型迭代优化,更适用于天文、显微等科学成像。文章通过Python代码实践,详细阐述了PSF(点扩散函数)的关键作用及算法选型指南。

weixin_29285605的博客 385

AWTK相关问题整理-Linux

该文章主要是日常学习AWTK过程中遇到的相关问题总结整理

weixin_42663633的博客 2274

Rockchip RK3566 Buildroot SDK构建与内核编译实战指南

嵌入式Linux开发中,交叉编译环境是系统启动的基础支撑。Buildroot作为轻量级嵌入式构建框架,通过配置驱动、自动化下载和分层编译机制,显著降低定制化Linux发行版的集成门槛。其核心价值在于将内核、根文件系统与工具链统一管理,兼顾资源约束下的确定性构建与工程可复现性。典型应用场景涵盖ARM64平台(如RK3566)的固件开发、IoT设备量产镜像生成及硬件Bring-up阶段的快速验证。本文围绕Buildroot SDK全流程实践,深入解析环境搭建、Repo源码同步、离线DL库预置及内核编译等关键环节

weixin_36047538的博客 135

ARM-Linux嵌入式2048游戏移植:从交叉编译到触摸交互全流程实践

交叉编译是嵌入式开发的核心技术,它允许开发者在x86主机上为ARM等异构目标平台生成可执行代码,其原理在于使用专门针对目标架构优化的工具链进行代码翻译与链接。这项技术的价值在于极大提升了开发效率,使开发者无需在资源受限的嵌入式设备上进行本地编译。在嵌入式Linux应用开发,特别是涉及图形界面(GUI)和人机交互(HMI)的场景中,交叉编译是连接上层应用与底层硬件的桥梁。以在ARM Cortex-A53平台(如GEC6818开发板)上移植2048游戏为例,其应用流程典型地涵盖了从搭建交叉编译环境、处理SDL等

ainixi7099的博客 338

Plecs电力电子仿真专业教程-第一季 第一节 Plecs简介

Plces 电力电子仿真专业教程系列依托专业的电力电子仿真软件Plecs对各种电力电子常用的拓扑及实际设计的方案进行系统及仿真与软件代码仿真实践。通过对各种电路仿真原理的讲解及专业C语言代码程序的编写,提升学员的系统设计能力,软件编程能力与理论分析能力。

3641

移植Qt5.12.9

参考正点原子的Qt移植教程,整理自己实际的应用步骤 一、安装虚拟机环境 当前使用版本:Ubuntu16.04.7 $ lsb_release -a # 查看当前系统信息 二、安装交叉编译器 2.1 下载交叉编译器 下载地址:Linaro Releases 交叉编译器版本:4.9.4 【TIPS】不推荐选择过高版本,建议采用实测版本 根据芯片类型选择,不带 根据当前系统版本选择对应的文件 $ uname -a Linux ubuntu 4.15.0-112-generic #113~1.

GrayD1419的博客 1096

高可用架构设计——多节点OpenClaw集群部署与负载均衡(2026企业级)

本文介绍了企业级OpenClaw高可用集群架构设计,重点阐述了多节点部署与负载均衡方案。架构采用分层设计,包括表现层、应用层、数据层和基础设施层,确保99.99%的可用性目标。详细配置了主节点、工作节点和存储节点规格,提供Kubernetes集群部署脚本示例,实现自动化的容器编排管理。通过硬件冗余、故障隔离和弹性扩展等可靠性原则,构建能够应对各种故障场景的稳定AI助手系统。

博客 421

嵌入式Linux平台移植-Qt5.7+iTop4412

转自http://blog.youkuaiyun.com/hechao3225/article/details/52981148 经过为期3天的编译、移植,终于将Qt5.7成功移植到iTop4412开发板,板载exynos4412处理器,基于ARM Cortex-A9内核。因此,本篇教程以iTop4412示例,适用于Qt5.7在ARM_Linux平台上的移植。 —————————————————————————

TooyLee 3358

【WRFDA教程】客观分析(OBSGRID)详解

客观分析(OBSGRID)详解

WW、forever的博客 1133

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

matlab 移植 arm,Qt for ARM_Linux环境搭建-Qt5.7嵌入式平台移植 Ubuntu 16.04

Qt for ARM_Linux环境搭建-Qt5.7+iTop4412嵌入式平台移植2016年10月31日 11:42:50阅读数:5207经过为期3天的编译、移植,终于将Qt5.7成功移植到iTop4412开发板,板载exynos4412处理器,基于ARM Cortex-A9内核。因此,本篇教程以iTop4412示例,适用于Qt5.7在ARM_Linux平台上的移植。--------------...

weixin_42297562的博客 1152

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

LVGL V8.2 嵌入式Linux平台使用tslib实现输入接口(以SSD212为例)

点击上方“嵌入式应用研究院”,选择“置顶/星标公众号”干货福利,第一时间送达!来源 |嵌入式应用研究院整理&排版| 嵌入式应用研究院由于驱动上报的触摸屏坐标没有进行方向翻转,故上报的坐标在屏幕方向是X、Y都反了。但是我不想 改驱动,因此只能在Linux应用上实现坐标转换。tslib对电阻屏的支持是比较好的,而且我的系统里也移植 了tslib相关的库,那么直接拿...

Bruce.yang的嵌入式之旅 1619

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Qt之ubuntu下的环境搭建(资源整理版)

重新整理了一下Qt的交叉编译的环境搭建,此文章未经过测试,全靠以前的记录整理 1、交叉编译器 1.1、arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu 链接: https://pan.baidu.com/s/1v8bj0O1-KEXFTtklfqXWgQ 提取码: ib62 复制这段内容后打开百度网盘手机App,操作更方便哦 1.2、arm-2013.11-33-arm-none-linux-gnueabi-i686-pc-linux-g

朗朗上口就行啦的博客 718

Qt for ARM_Linux环境搭建-Qt5.7+iTop4412嵌入式平台移植

经过为期3天的编译、移植,终于将Qt5.7成功移植到iTop4412开发板,板载exynos4412处理器,基于ARM Cortex-A9内核。因此,本篇教程以iTop4412示例,适用于Qt5.7在ARM_Linux平台上的移植。 ----------------------------------------------------------------------------------

Ctrlturtle的博客 1万+

嵌入式LINUX驱动开发成长计划

嵌入式LINUX开发成长计划

qq_28576837的博客 2434

树莓派5英寸DSI触摸屏驱动配置与避坑指南

DSI(Display Serial Interface)是一种基于MIPI协议的高带宽、低功耗显示接口标准,广泛应用于移动设备。其原理是通过串行差分信号传输视频数据和控制命令,相比传统接口能显著简化布线并降低功耗。在嵌入式开发领域,DSI接口的价值在于能高效驱动中小尺寸显示屏,是实现便携式设备、工控HMI等紧凑型应用的关键技术。对于树莓派用户而言,配置DSI触摸屏涉及设备树覆盖层加载、触摸驱动匹配及系统参数调优等工程实践。本文以5英寸DSI LCD触摸屏为例,深入解析了驱动安装、触摸校准及性能优化的完整流

weixin_30292745的博客 359
上一篇: tslib、qt相关:QWS_MOUSE_PROTO该如何写
下一篇: Ubuntu 锁定屏幕后即使输入正确密码也被提示密码错误导致无法解锁 问题的解决
NewThinker_wei
博客等级 码龄14年 521粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值