调试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没有安装成功
重新安装:
sudo apt-get install libtool
编译通过:
建立一个文件夹 用来放编译产生的文件
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
bug3:make 出现问题
如果编译过程中遇到 undefined reference to 'rpl_malloc',前面配置完成之后修改 config.h.in 文件,注释掉文件最后的 #undef malloc ,重新 make 即可。
进行制定目录(tmp)的文件生成
make install
三、安装使用
因为使用的NFS网络根文件系统
所以就直接把文件拷贝到NFS目录下,然后使用网络文件系统启动linux单板
再拷贝到开发板根目录
cp * / -rfd
再安装lcd相关的驱动
为了找这个三个文件,需要进行Linux内核进行配置
编译模块
找到cfbcopyarea.ko、cfbfillrect.ko 、cfbimgblt.ko文件并复制到网络根文件系统目录
加载lcd相关驱动,除了上面复制的三个内核编译.ko文件,还有自己写好的屏幕专属的lcd.ko驱动
打开tslib安装路径下的/etc/ts.conf文件,修改其内容。
# module_raw input改为module_raw input
添加环境变量,可以在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移植的全过程,如果大家有什么更好的思路,欢迎分享交流哈。
调试lcd时候给linux单板移植tslib的更多相关文章
- Linux学习 : 移植qt 5.6.3 及 tslib 1.4
(一) 移植 qt5.6.3 一.qt简介: Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架.它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具 ...
- 非常详细的ok6410的linux系统移植…
目录 Linux 3.3.5系统移植 2 LED驱动移植 8 按键驱动移植 9 LCD驱动移植 11 DM9000网卡驱动移植 14 搭建NFS网络文件系统 25 移植触摸屏驱动 38 移植Qt4.8 ...
- 高通安卓调试LCD几方面总结
来公司上班现在已经整整一个月了,蔽人不才,能力有限,学习进度缓慢,不过也是有一点点的收获与心得,在这里写出来与大家分享,养成良好的记录习惯也免得后忘记. 不啰嗦了,开入正题.来公司一个月左右的时间,主 ...
- linux 内核移植和根文件系统的制作【转载】
原文地址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1 Linux内核基础知识 在动手进行Linux内核移植之 ...
- linux 内核移植和根文件系统的制作
1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1 Linux版本 Linux内核的版本号 ...
- 【转】 linux内核移植和驱动添加(三)
原文网址:http://blog.chinaunix.net/uid-29589379-id-4708909.html 原文地址:linux内核移植和驱动添加(三) 作者:genehang 四,LED ...
- 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)
深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...
- 将Linux代码移植到Windows的简单方法
一.前言 Linux拥有丰富各种源代码资源,但是大部分代码在Windows平台情况是无法正常编译的.Windows平台根本无法直接利用这些源代码资源.如果想要使用完整的代码,就要做移植工作.因为C/C ...
- Linux编译移植Qt5的环境_OMAPL138平台
Linux编译移植Qt5_OMAPL138 [导语]:昨天编译Qt5各种失败,各种离奇的错误在Google上面也搜索不到,真是让人"蛋疼菊紧",今天把所有的环境全部清理干净,也重新 ...
随机推荐
- 当音乐学博士搞起编程,用一本书改变了Java世界!
前言 说到Spring,也许现在的开发者们最先想到的是 Josh Long 超快的语速与现场代码能力,让很多Java开发者折服. 然后Spring的历史上,最传奇的还是要数其创始人:Rod Johns ...
- dbms_job和dbms_job基础学习
一.dbms_job学习 a.创建job: dbms_job.submit(jobno,what,next_date,interval);b.删除job: dbms_job.remove(jobno) ...
- Rancher首席架构师解读Fleet:它何以管理百万集群?
作者简介 Darren Shepherd,Rancher Labs联合创始人及首席架构师.在加入Rancher之前,Darren是Citrix的高级首席工程师,他在那里从事CloudStack.Ope ...
- PAT甲级 Perfect Sequence (25) 记忆化搜索
题目分析: 意思是要求对于一个给出的数组,我们在其中尽可能多选数字,使得所选数字的max <= min * p,而由于数据量较大直接二层循环不加优化实现是不现实的,由题意得知,对于数字序列的子序 ...
- java8 stream api流式编程
java8自带常用的函数式接口 Predicate boolean test(T t) 传入一个参数返回boolean值 Consumer void accept(T t) 传入一个参数,无返回值 F ...
- Java JDK8下载 (jdk-8u251-windows-x64和jdk-8u271-linux-x64.tar)
jdk-8u251-windows-x64 和 jdk-8u271-linux-x64.tar 链接:https://pan.baidu.com/s/1gci6aSIFhEhjY8F48qH39Q 提 ...
- 如何跑通第一个 SQL 作业
简介: 本文由阿里巴巴技术专家周凯波(宝牛)分享,主要介绍如何跑通第一个SQL. 一.SQL的基本概念 1.SQL 分类 SQL分为四类,分别是数据查询语言(DQL).数据操纵语言(DML).数据定义 ...
- Redis-第五章节-8种数据类型
目录 一.Redis对key的操作 二.五种数据类型 String类型 List(集合) Set(集合) Hash(哈希) Zset(有序集合) 三.三种特殊数据类型 geospatial(地理位置) ...
- Python执行程序实可视化_heartrate
最近发现了一个Python程序执行的简单实时可视化神器,名字叫 heartrate,安装完运行可以看到下面这样的炫酷过程. 虽然很炫酷,但有点看不懂. 来解释下,左边的动态数字代表每行被触发的次数.变 ...
- Flask源码流程分析(一)
Flask源码流程分析: 1.项目启动: 1.实例化Flask对象 1. 重要的加载项: * url_rule_class = Rule * url_map_class = Map * session ...