大家好,我是情报小哥~
在编译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触摸库部署过程一个排查问题的基本过程,很多类似的问题也可以尝试这样排查,希望本文能够对你有帮助,本系列文件还会持续更新。
利用GSM网络技术和短信猫开发包实现移动购物系统的应用方案
边缘计算已成为了5G时代的核心技术之一
缓存系统的三座大山
MCU8051的泥石流—>RISCV32的商业启示
中国是全球最大新能源汽车市场,政策执行带动中国市场销量变化
Linux系统中触摸库报错怎么解决
基于3D NAND的闪存存储技术为视频监控领域带来哪些好处
Ansys宣布推出其最新的基于人工智能(AI)的技术—Ansys SimAI
安华高宣布66亿美元现金收购存储芯片商LSI
JEETAIR真无线蓝牙耳机评测 音质秒杀同级别耳机
抢攻汽车平台商机 Android再度宣战iOS
网友终于抢购到红米Note4X,表情包无敌,你要火了!
ADI推出新型电化学和阻抗测量前端 保证可穿戴设备“始终保持开机”
简单神经网络train&test程序,python源码
如何延长电视发射管使用寿命
声级指标电路设计详解
李飞飞将离开谷歌,回学校任教!
移动宽带用户超过联通, 目标电信! 推出降价提速380一年
uSLIC封装的组装指南
合作共赢谋新篇——日海智能CEO杨涛带队拜会重庆联通