调试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移植的全过程,如果大家有什么更好的思路,欢迎分享交流哈。

目录
相关文章
|
4天前
|
Linux
Linux(5)WIFI/BT调试笔记
Linux(5)WIFI/BT调试笔记
20 0
|
30天前
|
Linux 编译器 程序员
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
68 0
|
4天前
|
Linux Android开发
Linux(6)CH9434 SPI调试笔记
Linux(6)CH9434 SPI调试笔记
12 0
|
10天前
|
Linux 编译器 测试技术
嵌入式 Linux 下的 LVGL 移植
嵌入式 Linux 下的 LVGL 移植
|
18天前
|
Linux 计算机视觉
Linux交叉编译opencv并移植ARM端
通过以上步骤,你可以在Linux上交叉编译OpenCV,并将生成的库文件和头文件移植到ARM平台上,从而在ARM上使用OpenCV。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
36 0
|
24天前
|
安全 Linux
嵌入式Linux系统关闭串口调试信息的输出
嵌入式Linux系统关闭串口调试信息的输出
17 1
|
24天前
|
Linux 编译器 网络安全
嵌入式Linux移植dropbear
嵌入式Linux移植dropbear
19 3
|
24天前
|
编解码 Ubuntu 算法
【Linux】NUC977移植使用MQTT(基于mosquitto)
【Linux】NUC977移植使用MQTT(基于mosquitto)
|
1月前
|
缓存 Linux iOS开发
【C/C++ 集成内存调试、内存泄漏检测和性能分析的工具 Valgrind 】Linux 下 Valgrind 工具的全面使用指南
【C/C++ 集成内存调试、内存泄漏检测和性能分析的工具 Valgrind 】Linux 下 Valgrind 工具的全面使用指南
65 1
|
1月前
|
存储 Linux Shell
嵌入式 Linux 移植与系统启动方法
嵌入式 Linux 移植与系统启动方法
21 0