Tiny6410 移植tslib1.4

文章来源:

系统:Ubuntu 11.04

编译工具:arm-linux-gcc 4.3.2

编译目标:tslib1.4

(1)安装 arm-linux-gcc 4.3.2 ,请参照博客

(2)将tslib-1.4.tar.gz解压到任一目录

(3)进入tslib目录 cd tslib

由于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;问题解决。

(4)安装库支持:

sudoapt-getinstallautoconfautomakelibtool

(5)export PREFIX=/opt/tslib 设置目标位置

(6)./autogen.sh 用于生成configure脚本

(7)echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache 产生一个cache文件arm-linux.cache,欺骗configure

(8)CC=arm-linux-gcc ./configure –host=arm-linux –prefix=$PREFIX –cache-file=arm-linux.cache

(9)make

(10)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提供的触摸屏坐标变换插件。

(12)将/opt下的tslib文件夹拷贝到arm文件系统的/opt下

(13)设置环境变量脚本tslib.sh

#!/bin/shexport TSLIB_ROOT=/opt/tslibexport TSLIB_TSDEVICE=/dev/touchscreen-1wireexport TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercalexport TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.confexport TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport TSLIB_CONSOLEDEVICE=/dev/ttyexport TSLIB_FBDEVICE=/dev/fb0

(14)启动arm板,命令行下执行脚本

source tslib.sh

(15)校准触摸屏

cd /opt/tslib/bin

./ts_calibrate

会出现校准画面,完成后生成pointercal文件

(16)链接

ln -s /opt/tslib/etc/pointercal /etc/pointercal

至此,tslib1.4移植完成

想起那座山,那个城,那些人……

Tiny6410 移植tslib1.4

相关文章:

你感兴趣的文章:

标签云: