天天看点

tslib移植笔记(1)【转】

tslib移植笔记(1)2016-04-25

tslib背景【摘自百度】:

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

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

系统环境:

Distributor ID:    Ubuntu

Description:    Ubuntu 14.04.1 LTS

Release:    14.04

Codename:    trusty

交叉编译工具链:

适用于mini2440开发板的arm-linux-gcc-4.4.3-20100728.tar.gz

源码地址:

​​https://github.com/kergoth/tslib​​

下载源码方法:

1.通过git直接下载源码: git clone https://github.com/kergoth/tslib

2.网页下载源码,文件名为 tslib-master.zip,解压源码:unzip tslib-master.zip

编译源码:

1.下载依赖库及工具

sudo apt-get install autoconf

sudo apt-get install automake

sudo apt-get install libtool

2.生成configure

执行 ./autogen.sh

遇到错误1:

➜  ~/test/tslib-master: ./autogen.sh 

configure.ac:24: error: possibly undefined macro: AC_DISABLE_STATIC

      If this token and others are legitimate, please use m4_pattern_allow.

      See the Autoconf documentation.

configure.ac:25: error: possibly undefined macro: AC_ENABLE_SHARED

configure.ac:26: error: possibly undefined macro: AC_LIBTOOL_DLOPEN

configure.ac:27: error: possibly undefined macro: AC_PROG_LIBTOOL

autoreconf: /usr/bin/autoconf failed with exit status: 1      

原因:是因为没有安装上面的libtool

执行 sudo apt-get install libtool 即可。

安装后重新执行信息如下:

➜  ~/test/tslib-master: ./autogen.sh                

libtoolize: putting auxiliary files in `.'.

libtoolize: copying file `./ltmain.sh'

libtoolize: putting macros in `m4/internal'.

libtoolize: copying file `m4/internal/libtool.m4'

libtoolize: copying file `m4/internal/ltoptions.m4'

libtoolize: copying file `m4/internal/ltsugar.m4'

libtoolize: copying file `m4/internal/ltversion.m4'

libtoolize: copying file `m4/internal/lt~obsolete.m4'

libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and

libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.

configure.ac:18: installing './compile'

configure.ac:27: installing './config.guess'

configure.ac:27: installing './config.sub'

configure.ac:7: installing './install-sh'

configure.ac:7: installing './missing'

plugins/Makefile.am:13: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')

plugins/Makefile.am: installing './depcomp'

tests/Makefile.am:12: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')      

3.生成Makefile

预先配置好环境变量,交叉工具链arm-linux-gcc路径

./configure

--host=arm-linux --prefix=安装路径

网上那个有教程有两种配置方式,但这里暂时没设置也能够编译通过:

1. ./configure --prefix=安装路径 --host=arm-linux
 ac_cv_func_malloc_0_nonnull=yes
 
2. echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
    ./configure --host=arm-linux -cache-file=arm-linux.cache --prefix=安装路径      

4.编译源码

make && make install

最后在输出目录下生成 bin  etc  include  lib 四个子目录。

bin目录下面为可执行程序 ts_calibrate  ts_harvest  ts_print  ts_print_raw  ts_test

etc目录下面只有一个文件 ts.conf

include目录下面有头文件 tslib.h

lib目录下有 libts-1.0.so.0  libts-1.0.so.0.0.0  libts.la  libts.so  pkgconfig  ts