调试lcd时候给linux单板移植tslib

简介: 调试lcd时候给linux单板移植tslib

作者:良知犹存

转载授权以及围观:欢迎添加微信公众号:Conscience_Remains

总述

tslib背景:

在采用触摸屏的移动终端中,触摸屏性能的调试是个重要问题之一,因为电磁噪声的缘故,触摸屏容易存在点击不准确、有抖动等问题。

Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。

下面介绍就是执行的大致过程

1.克隆编译源代码

2.将编译好的文件添加到linux根文件系统

3.执行装载LCD相关驱动到单板,再给tslib设置好环境变量,执行tslib


一、克隆源代码

git clone https://github.com/kergoth/tslib

编译执行的步骤

$ ./autogen.sh
$ echo “ac_cv_func_malloc_0_nonnull=yes” >arm-linux.cache
$mkdir tmp  /*用来放编译的文件*/
$ ./configure --host=arm-linux --cache-file= arm-linux.cache --prefix=$(pwd)/tmp$ make
$ make install

开始执行克隆代码中的编译脚本,对喽开始出现问题了

./autogen.sh

./autogen.sh:autoreconf: not found

下面开始解决bug


二、解决bug

bug1:./autogen.sh:autoreconf: not found  这个问题出现的原因是autoconf automake libtool 三个文件没有安装

安装三个工具:

sudo apt-get install autoconf automake libtool

继续执行 编译脚本 又出现bug

bug2:安装之后发现还是有问题,发现是libtool没有安装成功

4edc953e2c684bbe819ffa954c899c08.png

重新安装:

sudo apt-get install libtool

4edc953e2c684bbe819ffa954c899c08.png

编译通过:

4edc953e2c684bbe819ffa954c899c08.png

建立一个文件夹 用来放编译产生的文件

mkdir tmp

新建一个arm-linux.cache文件

echo “ac_cv_func_malloc_0_nonnull=yes”>arm-linux.cache

将编译过程的文件制定编译到目录

./configure--host=arm-linux --cache-file= arm-linux.cache --prefix=$(pwd)/tmp


4edc953e2c684bbe819ffa954c899c08.png

bug3:make 出现问题

4edc953e2c684bbe819ffa954c899c08.png

如果编译过程中遇到 undefined reference to 'rpl_malloc',前面配置完成之后修改 config.h.in 文件,注释掉文件最后的 #undef malloc ,重新 make 即可。

4edc953e2c684bbe819ffa954c899c08.png

4edc953e2c684bbe819ffa954c899c08.png

进行制定目录(tmp)的文件生成

make install

4edc953e2c684bbe819ffa954c899c08.png


三、安装使用

因为使用的NFS网络根文件系统

所以就直接把文件拷贝到NFS目录下,然后使用网络文件系统启动linux单板

4edc953e2c684bbe819ffa954c899c08.png4edc953e2c684bbe819ffa954c899c08.png

再拷贝到开发板根目录

cp * / -rfd

再安装lcd相关的驱动

为了找这个三个文件,需要进行Linux内核进行配置

4edc953e2c684bbe819ffa954c899c08.png

编译模块

4edc953e2c684bbe819ffa954c899c08.png

找到cfbcopyarea.ko、cfbfillrect.ko 、cfbimgblt.ko文件并复制到网络根文件系统目录

4edc953e2c684bbe819ffa954c899c08.png

加载lcd相关驱动,除了上面复制的三个内核编译.ko文件,还有自己写好的屏幕专属的lcd.ko驱动

4edc953e2c684bbe819ffa954c899c08.png

打开tslib安装路径下的/etc/ts.conf文件,修改其内容。

# module_raw input改为module_raw input


4edc953e2c684bbe819ffa954c899c08.png

添加环境变量,可以在profile添加 也可以直接在终端输入

export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0

进行测试

./ts_calibrate 校准屏幕
./ts_test ts测试
./ts_print 打印坐标

这就是我分享tslib移植的全过程,如果大家有什么更好的思路,欢迎分享交流哈。

目录
相关文章
|
3月前
|
存储 NoSQL Linux
linux之core文件如何查看和调试
通过设置和生成 core 文件,可以在程序崩溃时获取详细的调试信息。结合 GDB 等调试工具,可以深入分析 core 文件,找到程序崩溃的具体原因,并进行相应的修复。掌握这些调试技巧,对于提高程序的稳定性和可靠性具有重要意义。
624 6
|
3月前
|
运维 监控 Linux
BPF及Linux性能调试探索初探
BPF技术从最初的网络数据包过滤发展为强大的系统性能优化工具,无需修改内核代码即可实现实时监控、动态调整和精确分析。本文深入探讨BPF在Linux性能调试中的应用,介绍bpftune和BPF-tools等工具,并通过具体案例展示其优化效果。
127 14
|
4月前
|
缓存 NoSQL Linux
Linux调试
本文介绍了Linux调试、性能分析和追踪的培训资料,涵盖调试、性能分析和追踪的基础知识及常用工具。
333 6
Linux调试
|
7月前
|
NoSQL Linux C语言
Linux GDB 调试
Linux GDB 调试
89 10
|
7月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
283 3
|
7月前
|
Ubuntu Linux
内核实验(四):Qemu调试Linux内核,实现NFS挂载
本文介绍了在Qemu虚拟机中配置NFS挂载的过程,包括服务端的NFS服务器安装、配置和启动,客户端的DHCP脚本添加和开机脚本修改,以及在Qemu中挂载NFS、测试连通性和解决挂载失败的方法。
415 0
内核实验(四):Qemu调试Linux内核,实现NFS挂载
|
8月前
|
运维 Java Linux
(九)JVM成神路之性能调优、GC调试、各内存区、Linux参数大全及实用小技巧
本章节主要用于补齐之前GC篇章以及JVM运行时数据区的一些JVM参数,更多的作用也可以看作是JVM的参数列表大全。对于开发者而言,能够控制JVM的部分也就只有启动参数了,同时,对于JVM的性能调优而言,JVM的参数也是基础。
158 8
|
8月前
|
Linux C# iOS开发
如何用 WinDbg 调试Linux上的 .NET程序
【7月更文挑战第13天】 1. `dotnet-dump`: Collects process dumps with `dotnet-dump collect -p <process_id>`. 2. `lldb`: Debugs Mono runtime apps on macOS/Linux. 3. **Visual Studio Code**: Remotely debugs .NET via the C# extension. 4. **JetBrains Rider**: Supports remote debugging of .NET on Linux.
|
7月前
|
网络协议 安全 Linux
在Linux中,如何使用Netcat进行网络调试和端口扫描?
在Linux中,如何使用Netcat进行网络调试和端口扫描?
|
9月前
|
NoSQL Linux C语言
Linux gdb调试的时候没有对应的c调试信息库怎么办?
Linux gdb调试的时候没有对应的c调试信息库怎么办?
72 1