Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49121
  • 博文数量: 11
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 164
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-05 23:14
文章分类

全部博文(11)

文章存档

2013年(11)

我的朋友

分类: LINUX

2013-09-08 16:28:46

网上用的最多的是tslib1.4,我最初也使用此版本,不过在移植的最后出现了“selected device is not a touchscreen I understand”问题,并且参照网上的解决方法都无效。
不过最后直接从tslib官网拉了最新的代码,移植就很顺利。

下面就简要介绍下我得移植过程:

现在用的tslib是使用git下载的,最好是在Linux平台下载,因为tslib中包括了脚本文件(如autogen.sh),而Windows 与Linux处理一行的结束字符是不相同的,git的下载命令如下:

点击(此处)折叠或打开

  1. $ git clone

在这里说明下Ubunut10.04下安装git的方法,不推荐源码编译,因为有许多的依赖组建需要安装。

点击(此处)折叠或打开

  1. $ sudo apt-get install git git-core

有了tslib源码后,就可以开始编译了,编译顺序如下;

点击(此处)折叠或打开

  1. $ ./autogen.sh
  2. $ ./configure --host=arm-linux --prefix=$PWD/tslib
  3. $ mkdir ./tslib
  4. $ make
  5. $ make install

如果编译顺利,就可以在我们新建的tslib文件中得到最终的目标文件:

点击(此处)折叠或打开

  1. $ ls
  2. bin etc include lib
生成的库位于lib中,该目录下还有一个子目录ts,它包含了许多校准用到的库(如input.so等)。etc下的ts.conf为配置文件,bin目录下为校准、测试工具(如校准的ts_calibrate,测试用的ts_test)。


之后我们就可以直接将tslib文件夹cp到我们的嵌入式文件系统的/usr/local/目录下,然后对嵌入式文件系统中的文件进行相应的配置:
    执行命令:

点击(此处)折叠或打开

  1. # vi /usr/local/tslib/etc/ts.conf
    将内容配置为:

点击(此处)折叠或打开

  1. module_raw input
  2. module pthres pmin=1
  3. module variance delta=30
  4. module dejitter delta=100
  5. module linear

    执行命令:

点击(此处)折叠或打开

  1. # vi /etc/profile
    配置内容为:

点击(此处)折叠或打开

  1. export TSLIB_ROOT=/usr/local/tslib
  2. #取决具体的设备驱动了,事件驱动用
  3. export TSLIB_TSDEVICE=/dev/event0
  4. #h3600用如下配置
  5. # export TSLIB_TSDEVICE=/dev/h3600_tsraw
  6. #触摸屏定位文件保存位置
  7. export TSLIB_CALIBFILE=/etc/pointercal
  8. #tslib配置文件内容
  9. export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
  10. #tslib 插件目录
  11. export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
  12. export TSLIB_CONSOLEDEVICE=none
  13. #LCD设备结点
  14. export TSLIB_FBDEVICE=/dev/fb0
  15. #把libts.so加入动态搜索路径
  16. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib

经过以上的步骤,tslib基本就可以工作,当然tslib运行需要framebuffer和input功能OK。

现在我们先运行tslib校准程序,它位于/usr/local/tslib/bin/ts_calibrate ,我们可以输入:

点击(此处)折叠或打开

  1. # ./usr/local/tslib/bin/ts_calibrate
    来运行这个校准程序,之后会在开发板上出现5个校准点,我们依次去点击后,ts_calibrate会完成相关的校准工作,并讲相关结果写入etc/pointercal 这个文件中。

点击(此处)折叠或打开

  1. # ./usr/local/tslib/bin/ts_calibrate
  2. fb_ioctl cmd is 17922
  3. fb_ioctl cmd is 17920
  4. xres = 480, yres = 272
  5. Took 3 samples...
  6. Top left : X = 143 Y = 229
  7. Took 4 samples...
  8. Top right : X = 756 Y = 227
  9. Took 3 samples...
  10. Bot right : X = 752 Y = 666
  11. Took 4 samples...
  12. Bot left : X = 144 Y = 667
  13. Took 3 samples...
  14. Center : X = 456 Y = 448
  15. -41.136963 0.622367 0.002118
  16. -39.924500 0.000961 0.392249
  17. Calibration constants: -2695952 40787 138 -2616492 62 25706 65536

    之后我们就可以运行ts_test来测试触摸屏,命令如下:

点击(此处)折叠或打开

  1. # ./usr/local/tslib/bin/ts_test

效果图如下:



阅读(1601) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~