0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux系统中触摸库报错怎么解决

汽车电子技术 来源: 嵌入式情报局 作者: 情报小哥 2023-02-21 11:04 次阅读

大家好,我是情报小哥~

在编译Linux系统的过程中,总容易遇到各种大大小小的问题,要么是某个编译选项设置不正确,编译器与编译源码不匹配,又或者是系统中没有安装相应的软件或者库等等。

然而这些问题运气不错网络上搜索一下即可搞定,然而遇到生僻一点的问题,那估计得把你折腾得半死,问题是还不一定弄得好。

好在这些成熟的组件或者系统源码在编译或者使用异常以后,或多或少都会输出一些信息,供程序员进行问题排查。

那么小哥下面就简单介绍一下最近遇到的tslib问题排查过程。

01

一个问题

图片

在部署完tslib环境以后,其安装目录中会生成一些测试程序供用户使用,然而当我们运行相应的测试应用程序,却得到如下结果 :

图片

表示环境变量中指定的设备,tslib库识别不出该设备为触摸设备。而这样的错误字符串的输出,一般都来源于源码,直接在tslib源码路径中进行搜索得到如下结果。(当然如果要进行详细的分析也可以使用VSCode等工具分析)

图片

这里采用grep命令行对路径中的文件进行字符串的查找,grep主要是用于搜索匹配模板的行,默认情况下就是打印出来匹配的行。

-n选项表示:以行号作为前缀;

-R选项表示递归读取每级目录下的所有文件。

更加详细的使用说明就交给man grep了。

上面的输出结果,其字符串来源于input-raw.c文件的61行,看一下该文件输出该字符串的条件,并根据条件来进行判断和调试。

图片

可以直接修改此部分的判断语句,进行调试,输出到底是那个条件导致无法满足。

通过调试可以了解到version==EV_VERSION条件不满足,一个是内核传入的,一个是编译器指定的。

通过同样的方式可以查到内核中的EV_VERSION的定义如下:

图片

同样查找编译器中的EV_VERSION的定义如下:

图片

两者确实是不同,所以导致运行tslib库报错,这里我们优先把内核中的EV_VERSION改成与编译器的一致,看是否能够解决该问题。

然后重新编译内核并进行烧录。

完成以后直接运行bin文件下的ts_print测试触摸屏驱动看是否正常,运行程序以后没有再输出之前的异常字符串,然后点击触摸屏,即可看到终端输出相应的坐标数据:

图片

这样看来tslib初步测试和部署完成。

**最 后 **

好了,这里小哥就介绍了一下tslib触摸库部署过程一个排查问题的基本过程,很多类似的问题也可以尝试这样排查,希望本文能够对你有帮助,本系列文件还会持续更新。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206736
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48618
  • 编译
    +关注

    关注

    0

    文章

    615

    浏览量

    32396
收藏 人收藏

    评论

    相关推荐

    Linux系统动态与静态库函数的使用介绍

    Linux系统动态与静态库函数的使用介绍在Linux操作系统,普遍使用ELF格式作为可执行程
    发表于 04-02 16:21

    详解Linux系统的usr目录

    linux 文件结构,有一个很神奇的目录 —— /usr。之前一直没有怎么关注过它,反正程序都是安装在里边的,也没有什么值得追根溯源的东西。直到有一天 fedora 要简化整个文件系统体系,看到
    发表于 07-10 10:24

    转:Linux系统移植

    本书分为4篇。第1篇简单介绍了linux内核和嵌入式linux系统开发环境搭建;第2篇介绍了一个最基本的嵌入式系统的组成部分、bootloader移植、内核移植和文件
    发表于 08-03 12:51

    Linux系统动态与静态库函数的使用介绍

    ,而是程序运行时动态的申请并调用,所以程序的运行环境必须提供相应的。动态函数的改变并不影响你的程序,所以动态函数的升级比较方便。linux
    发表于 09-29 11:31

    Linux系统动态与静态库函数的使用介绍

    Linux系统动态与静态库函数的使用介绍 0 在Linux操作系统,普遍使用ELF格式作为
    发表于 07-04 05:33

    如何使用Linux内核的input子系统

    的 input 子系统下提供的 API 函数接口,完成设备的注册即可。在本章节我们来学习一下如何使用 Linux内核的 input 子系统
    发表于 12-29 07:20

    Linux系统编程重点学习标准I/O

    Makefile脚本编写等知识,嵌入式开发环境的搭建。3Linux系统编程重点学习标准I/OLinux多任务编程的多进程和多线程,以
    发表于 12-15 06:45

    嵌入式Linux系统GUI编程

    嵌入式Linux 系统UI( 用户界面) 编程需要图形的支持,图形可以看作基本的图形绘制支撑
    发表于 12-20 06:04

    Linux系统烧写DNW报错这是什么问题

    按照Linux 3.0.1用户手册“一键烧写Linux系统”相关内容,在最后一步烧写时DNW报错:** Unable to read "u-boot.bin" from mmc
    发表于 01-13 06:41

    嵌入式Linux下一种新的触摸屏定标方法的研究

    介绍了一种新型基于嵌入式Linux平台的触摸屏定标方法。首先对嵌入式系统触摸屏接口电路进行了简单介绍,而后详细分析了一种基于嵌入式Linux
    发表于 04-24 10:25 17次下载

    嵌入式Linux触摸屏在漆包线检测系统中的应用

    本文针对嵌入式Linux触摸屏在漆包线检测系统中的应用,介绍了本系统触摸屏的具体接口电路,嵌入式Lin
    发表于 07-27 15:47 29次下载

    基于ARM处理器S3C2440和Linux系统的I2C触摸

    基于ARM处理器S3C2440和Linux系统的I2C触摸屏设计 0  引言随着计算机相关技术的发展,ARM嵌入式系统受到越来越广泛的应用,与人们生活的结合也越来越紧密。触
    发表于 01-07 10:06 1338次阅读
    基于ARM处理器S3C2440和<b class='flag-5'>Linux</b><b class='flag-5'>系统</b>的I2C<b class='flag-5'>触摸</b>屏

    Linux基础教程之linux如何使用CP报错

    本文档的主要内容详细介绍的是Linux基础教程之linux如何使用CP报错详细资料免费下载
    发表于 10-26 17:15 10次下载

    基于I2C的嵌入式Linux多点触摸屏幕驱动系统设计

    式电容触摸屏。本文通过对以cypress 7958为代表的I2C总线接口电容式多点触摸屏的研究,设计了针对Linux操作系统的多点触摸的屏幕
    发表于 10-13 09:12 1039次阅读
    基于I2C的嵌入式<b class='flag-5'>Linux</b>多点<b class='flag-5'>触摸</b>屏幕驱动<b class='flag-5'>系统</b>设计

    AD7873输入触摸屏迪吉蒂泽Linux Driver

    AD7873输入触摸屏迪吉蒂泽Linux Driver
    发表于 04-21 19:34 5次下载
    AD7873输入<b class='flag-5'>触摸</b>屏迪吉蒂泽<b class='flag-5'>Linux</b> Driver