环境: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)的更多相关文章

  1. qt-5.6.0 移植之tslib 配置及编译

    tslib 是qt启动时的一个触屏校正检验程序. 它的配置以及编译比较简单. 第一步, 下载tslib源码包: http://download.csdn.net/detail/MKNDG/329156 ...

  2. QT 5.7.0 移植之 tslib 编译配置

    QT5.7 编译请参考:http://www.cnblogs.com/chenfulin5/p/5798764.html 最新的 tslib 是从他的 github 下载下来的. 地址是:https: ...

  3. 向Tiny6410移植QT4.7.0版本

    在移植QT之前我们首先要安装tslib,没有移植的可以看这篇文章移植. http://www.cnblogs.com/ynxf/p/5392476.html step 1: echo yes |../ ...

  4. tiny6410移植opencv

    1.错误1, 解决办法:取消一下两个选项: 2.错误2, 解决办法: 原因是找不到pthread链接库,打开文件夹下的CmakeCache.txt进行修改 3.错误3, 解决办法:

  5. 【转载】tslib移植_freescale imx6

    本文来自网络:http://blog.csdn.net/xishuang_gongzi/article/details/49422879 环境:host:Ubuntu12.04target:frees ...

  6. tslib移植arm及使用

    测试平台 宿主机平台:Ubuntu 12.04.4 LTS 目标机:Easy-ARM IMX283 目标机内核:Linux 2.6.35.3 tslib 1.4 下载  https://gitlab. ...

  7. Tslib触摸屏官网【转】

    转自:https://github.com/kergoth/tslib C library for filtering touchscreen events tslib consists of the ...

  8. Qt4.8.5在ARM9上的移植

    Qt4.8.5在ARM9开发板上的移植 以前移植过qtopia-embedded-2.2.0,俗称Qt/E,在早期的Qt框架中是使用X11桌面服务器系统,无法应用于嵌入式平台,为此产生了qtopia, ...

  9. qt-5.6.0 移植之qt源码编译

    其实这只是给自己看的一个configure选项笔记,没有太多的东西. 首先: 下载qt5.6的源码: 地址: http://download.qt.io/archive/qt/5.6/ 下载完解压: ...

随机推荐

  1. 后台运行进程(background job)

    在一些日常业务中,总有一些长时间处理的任务,系统运行这些任务需要一晚甚至一个周末. 这就需要后台运行单元(background work process)来完成,而且其是不会发生超时(time out ...

  2. Windows下修改Android手机的hosts

    Windows下修改Android手机的hosts 1.首先,手机是Root过的. 2.连接手机和电脑, adb shell 进入命令行. 3.获取root用户权限: su -root 4.不知道为何 ...

  3. Android Handler机制(四)---Handler源码解析

    Handler的主要用途有两个:(1).在将来的某个时刻执行消息或一个runnable,(2)把消息发送到消息队列. 主要依靠post(Runnable).postAtTime(Runnable, l ...

  4. UILabel用法

    // UILabel -> UIView // UILabel用来显示文字内容 //创建一个Label,一般都直接通过initWithFrame确定位置跟大小 UILabel *lb = [[U ...

  5. commandline (命令行)登录mysql

    mysql登录在命令行登录的时候是通过mysql的里面的程序的录的 其登录格式有两种:(在oracle上看到的是列出这两种,不要既有全参数名又有缩写参数名.) 1.全参数名登录释例 mysql --h ...

  6. Android中应用程序清除data/data,清除cache,超详细

    清除data,清除cache,其实在Android原生Setting里面有这个功能的. 需求是把这个功能做到自己的App里面,并计算出cache和data的size. 所以参考了一下Setting的源 ...

  7. Learn how to Use UIPageViewController in iOS

    下面学习内容来自国外的IOS学习网站:The AppGuruz: UIPageViewController in iOS  也许需要FQ哦 认真做一遍上面入门UIPageController的教程,然 ...

  8. 安装centos 7后恢复windows 2008R2 (Windows7)启动项

    安装CentOS 7,安装之后发现Win2008R2的启动项不见了(Windows7同理).一般安装Linux过程中会自动识别windows系统并添加引导项,centos的问题在于默认不支持ntfs分 ...

  9. ORACLE DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象查看

    在ORACLE数据库中,DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象是什么东西呢?其实OBJECT_TYPE为LOB就是大对象(LOB),它指那些用来存储大量数据的数据库字段.下面 ...

  10. 抛弃NVelocity,来玩玩Razor

    对于内容型,不易变动的东西我们都希望给它来个静态化,还有种情况就是比如新浪云不支持.net,为了能跑起我们的网站, 只能放些静态页面上面,外加jsonp来实现交互,我们知道.net中有很多模板引擎,但 ...