因为很久之前写的,不记得参考了哪些文献,如果涉及到版权问题,请联系本人。
由于tiny6410的一线触摸,所以需要改程序,照别人的:
打开tslib/plugins/input-raw.c
把其中的ts_input_read 函数改成如下:
static int ts_input_read(structtslib_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;
}
安装所需要的库:
apt-get install autoconf automake libtool
在tslib文件夹下执行
export PREFIX=/opt/tslib
./autogen.sh
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个文件夹
修改/opt/tslib/etc/ts.conf 文件,删除其中内容,改为
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
将/opt下的tslib文件夹拷贝到arm文件系统的/opt下
进入arm开发板设置/etc/profile
vi /etc/profile
在文件末加入:
source /etc/profile
使其生效
确保/opt/tslib/etc 和/etc下都没有pointercal.有的话删除
将ts__calibrate设为开机启动,校准后生成pointercal 文件
链接ln -s /opt/tslib/etc/pointercal /etc/pointercal
至此,tslib1.4移植完成
进入/opt/tslib /bin

本文介绍如何针对Tiny6410进行一线触摸改造,包括修改ts_input_read函数的具体实现,安装所需库,配置及编译tslib,以及移植后的配置步骤。
593

被折叠的 条评论
为什么被折叠?



