向tiny6410移植tslib(tslib-1.4)
环境:RedHat
已安装交叉编译器
tslib版本:1.4
首先在redhat文件系统的/usr/local/tslib 创建目录
拷贝源代码tslib-1.4.tar.gz到/usr/local/tslib/ 下并解压
进入到刚刚解压的文件夹
执行以下命令:
# ./autogen.sh
# ./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes -–cache-file=arm-linux.cache -prefix=/usr/local/tslib/__install
-prefix=/usr/local/tslib/__install代表的是安装的位置 我这里把编译后的文件生成在/usr/local/tslib/__install目录下。如没有相应的文件夹则需要自己手动创建。
如果执行sh脚本出现错误 则需要安装库 执行下面的语句即可
sudo apt-get install autoconf automake libtool
如果在配置时报错提示
C++ compiler cannot create executables
则安装GCC库即可
sudo apt-get install gcc-multilib
# make
# make install
然后将会在__install目录下生产bin etc include lib这几个文件夹。
将__install/lib/ 下的所有文件包括子目录拷贝到文件系统的/lib/目录下
将__install/etc/ 下的所有文件包括子目录拷贝到文件系统的/etc/目录
设置环境变量脚本tslib.sh
创建一个文件tslib.sh 文件内容如下:
#!/bin/sh
export TSLIB_ROOT=/opt/tslib
export TSLIB_TSDEVICE=/dev/touchscreen-1wire
export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=/dev/tty
export TSLIB_FBDEVICE=/dev/fb0
然后启动开发板
# source tslib.sh
在之前的__install/bin/ts_calibrate拷贝到开发板
# 。/ts_calibrate
这时我们将会在屏幕上看到要求触目校准的画面信息。
这时发现根本就无法进行屏幕校准。可能 跟友善的一线触摸有关系,故我在网上搜索了相关的资料
在网上的某个帖子解决了问题
http://blog.csdn.net/yf210yf/article/details/7352470
由于tiny6410的一线触摸,所以需要改程序,照别人的:
打开tslib/plugins/input-raw.c
把其中的ts_input_read 函数改成如下:
static int ts_input_read(struct tslib_module_info *inf,
struct ts_sample *samp, int nr)
{
printf ("HEAD=== ts_input_read in INPUT-RAW.C\n");
struct tslib_input *i = (struct tslib_input*)inf;
struct tsdev *ts = inf->dev;
struct input_event ev;
int ret = nr;
int total = 0;
unsigned long jjts; while(total<nr)
{
ret =read(ts->fd, &jjts,sizeof(jjts)); //if (ret==-1) continue; if (ret==-1) return 0; samp->pressure=(jjts>>31)& 0x01;
samp->x=(jjts>>16)& 0xffff;
samp->y=jjts & 0xffff; samp++;
total++;
} ret=total;
return ret; }
特别注意:
参照网上许多资料,上面讲的都是if (ret==-1) continue;做了以后,发现触摸屏能校准,但是运行qt程序时,光标能移动,但是点击无效。所以改成
if (ret==-1) return 0;问题解决。
# export PREFIX=/opt/tslib 设置目标位置
# ./autogen.sh 用于生成configure脚本
# echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache 产生一个cache文件arm-linux.cache,欺骗configure
# CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache
# make
# make install
编译成功后在目标位置产生/bin、/etc、/include、/lib 4个文件夹 (11)修改/opt/tslib/etc/ts.conf 文件,删除其中内容,改为
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
第一行是tslib从linux的输入设备读取数据时需要用到的模块,这里指定的模块为input,具体需要用到哪个模块,需要参考其他数据。 第二行的pthres为Tslib提供的触摸屏灵敏度门槛插件。 第三行的variance为Tslib提供的触摸屏滤波算法插件。 第四行的dejitter为Tslib 提供的触摸屏去噪算法插件。 第五行linear为Tslib提供的触摸屏坐标变换插件。
将/opt下的tslib文件夹拷贝到arm文件系统的/opt下
再将tslib/lib/* 复制一份到开发板的lib目录下
# cp /opt/tslib/lib/* /lib/ -rf
设置环境变量脚本tslib.sh
#!/bin/sh
export TSLIB_ROOT=/opt/tslib
export TSLIB_TSDEVICE=/dev/touchscreen-1wire
export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=/dev/tty
export TSLIB_FBDEVICE=/dev/fb0
在开发板的/etc/profile文件后面加上
source /tslib.sh
启动arm板,命令行下执行脚本
校准触摸屏
cd /opt/tslib/bin
./ts_calibrate
会出现校准画面,完成后生成pointercal 文件
链接
ln -s /opt/tslib/etc/pointercal /etc/pointercal
至此,tslib1.4移植完成
向tiny6410移植tslib(tslib-1.4)的更多相关文章
- qt-5.6.0 移植之tslib 配置及编译
tslib 是qt启动时的一个触屏校正检验程序. 它的配置以及编译比较简单. 第一步, 下载tslib源码包: http://download.csdn.net/detail/MKNDG/329156 ...
- QT 5.7.0 移植之 tslib 编译配置
QT5.7 编译请参考:http://www.cnblogs.com/chenfulin5/p/5798764.html 最新的 tslib 是从他的 github 下载下来的. 地址是:https: ...
- 向Tiny6410移植QT4.7.0版本
在移植QT之前我们首先要安装tslib,没有移植的可以看这篇文章移植. http://www.cnblogs.com/ynxf/p/5392476.html step 1: echo yes |../ ...
- tiny6410移植opencv
1.错误1, 解决办法:取消一下两个选项: 2.错误2, 解决办法: 原因是找不到pthread链接库,打开文件夹下的CmakeCache.txt进行修改 3.错误3, 解决办法:
- 【转载】tslib移植_freescale imx6
本文来自网络:http://blog.csdn.net/xishuang_gongzi/article/details/49422879 环境:host:Ubuntu12.04target:frees ...
- tslib移植arm及使用
测试平台 宿主机平台:Ubuntu 12.04.4 LTS 目标机:Easy-ARM IMX283 目标机内核:Linux 2.6.35.3 tslib 1.4 下载 https://gitlab. ...
- Tslib触摸屏官网【转】
转自:https://github.com/kergoth/tslib C library for filtering touchscreen events tslib consists of the ...
- Qt4.8.5在ARM9上的移植
Qt4.8.5在ARM9开发板上的移植 以前移植过qtopia-embedded-2.2.0,俗称Qt/E,在早期的Qt框架中是使用X11桌面服务器系统,无法应用于嵌入式平台,为此产生了qtopia, ...
- qt-5.6.0 移植之qt源码编译
其实这只是给自己看的一个configure选项笔记,没有太多的东西. 首先: 下载qt5.6的源码: 地址: http://download.qt.io/archive/qt/5.6/ 下载完解压: ...
随机推荐
- Atitti.java android反编译解决方案-----虚拟机方案
Atitti.java android反编译解决方案-----虚拟机方案 哈哈,终极解决方案是虚拟机...c++也可以反编译为汇编代码,但无需担心,因为读懂汇编太麻烦..只要不能拿到c++源码就可.. ...
- Vault插件示例--Vault Explorer与Thin Client的集成。
Autodesk Vault 2014的Subscription 包中有一个组件叫做Thin Client.这个瘦客户端有着全新的界面,又给了我们一个全新的选择.ThinClient实际是在Vault ...
- OC单例快速实现
首先新建一个头文件,定义如下宏: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ...
- Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition
Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition Property animation系统还提供了对ViewGroup中的View改变 ...
- MVC 生成图片,下载文件
/// <summary> /// 生成图片 /// </summary> /// <param name="collection"></ ...
- 软件开发与UML的关系
今天,我们上<统一建模语言UML>.课上老师给我们讲解了软件开发与UML之间的关系:UML常用于建立软件系统的模型,适用于系统开发的不同阶段.UML的应用贯穿于系统开发的不同阶段.1.需求 ...
- 【AdaBoost算法】弱分类器训练过程
一.加载数据(正样本.负样本特征) def loadSimpData(): #样本特征 datMat = matrix([[ 1. , 2.1, 0.3], [ 2. , 1.1, 0.4], [ 1 ...
- Extjs插入图片
Extjs并没有提供直接的组件来显示图片.网上通过设置textfield的InputType为Image然后再修改dom对象来实现,其实 image的属性值并没有包含在Extjs的官方文档当中.可以通 ...
- Jenkins用户配置(安装好jenkins后,怎么配置用户管理、权限管理)
直奔主题 安装完成后,先开启用户配置 1. 系统管理-->配置权限 2. 启用安全,并选中"安全矩阵" 如上,搞定: 可以按用户去设置各项目的操作权限了: 轻松实现,jen ...
- (ios) 屏幕触摸总结
1 屏幕触控实现(单击 双击) [self becomeFirstResponder]; //允许多点互动 self.view.multipleTouchEnabled=TRUE; 实现事件部分 # ...