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

    文章

    11204

    浏览量

    208703
  • 编译器
    +关注

    关注

    1

    文章

    1617

    浏览量

    49014
  • 编译
    +关注

    关注

    0

    文章

    648

    浏览量

    32767
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    Linux系统共享编程

    一、说明 类似Windows系统的动态链接Linux也有相应的共享用以支持代码的复用
    发表于 09-13 16:49 24次下载

    深入分析Windows和Linux动态应用异同

    深入分析Windows和Linux动态应用异同 摘要:动态链接技术实现和设计程序常用的技术,在Windows和Linux系统中都有动
    发表于 10-22 11:36 1288次阅读

    Linux下静态和动态(共享)的制作与使用

    Linux下静态和动态(共享)的制作与使用Linux
    发表于 07-09 14:39 1143次阅读

    linux静态和动态分析

    1.什么是 在windows平台和linux平台下都大量存在着。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。 由于windows和
    发表于 11-02 10:12 1次下载

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

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

    Holtek触摸开发生成使用说明

    Holtek触摸开发生成使用说明。
    发表于 03-24 10:18 8次下载

    C++基础语法知识之链接装载Linux 的共享

    Linux 的共享(Shared Library) Linux 下的共享就是普通的 ELF 共享对象。 共享版本更新应该保证二进制接口
    的头像 发表于 11-01 10:15 2858次阅读

    Linux的静态和共享

    是一个二进制文件,包含的代码可被程序调用。例如标准C、数学、线程等等。有源码,可下载后编译,也可以直接安装二进制包。
    的头像 发表于 05-10 09:34 984次阅读

    如何查看linux程序共享呢?

    linux系统,程序通常需要依赖于外部来正常工作。这些可以直接编译到程序,也可以从共享
    的头像 发表于 08-28 09:11 1518次阅读
    如何查看<b class='flag-5'>linux</b>程序共享<b class='flag-5'>库</b>呢?

    数据数据恢复-oracle数据报错无法打开的数据恢复案例

    oracle数据数据恢复环境: 一台服务器,底层由12块硬盘组成一组磁盘阵列,上层操作系统上运行oracle数据。 oracle数据故障: 数据
    的头像 发表于 10-12 14:00 780次阅读

    Oracle数据恢复—异常断电后Oracle数据报错的数据恢复案例

    Oracle数据故障: 机房异常断电后,Oracle数据报错:“system01.dbf需要更多的恢复来保持一致性,数据无法打开
    的头像 发表于 09-30 13:31 209次阅读
    Oracle数据恢复—异常断电后Oracle数据<b class='flag-5'>库</b>启<b class='flag-5'>库</b><b class='flag-5'>报错</b>的数据恢复案例

    oracle数据恢复—Oracle数据打开报错的数据恢复案例

    打开oracle数据报错报错信息:“system01.dbf需要更多的恢复来保持一致性,数据无法打开”。急需恢复zxfg用户下的数据。 出现上述
    的头像 发表于 10-17 13:20 159次阅读
    oracle数据恢复—Oracle数据<b class='flag-5'>库</b>打开<b class='flag-5'>报错</b>的数据恢复案例

    linux内核通用HID触摸驱动

    linux内核,为HID触摸面板实现了一个通用的驱动程序,位于/drivers/hid/hid-multitouch.c文件。hid触摸
    的头像 发表于 10-29 10:55 152次阅读
    <b class='flag-5'>linux</b>内核<b class='flag-5'>中</b>通用HID<b class='flag-5'>触摸</b>驱动