linux下编译ts工程,tslib1.3在linux2.6.27中的使用,编译,设置

最近在mini2440开发板上成功移植了一套linux2.6.27.9。为了测试触摸屏,编译了一下tslib1.3,因为触摸屏在linux2.6.27上的使用与以前的linux稍有不同,现把过程记录下来,以供参考。

下载,解压tslib1.3后,在tslib1.3的目录下

使用./autogen.sh生成configure文件,并运行

./configure --host=arm-linux --target=arm-linux --prefix=$PWD/build --enable-inputapi=yes

并设置PLUGIN_DIR=tslib-1.3/plugins(tslib解压路径下的plugins路径,此环境变量很重要,没有话编译时会报“only absolute run-path ...”的错误)

make

make install

将生成的build文件夹全部拷入自己的文件系统中的/root/tslib 目录下(mkdir 生成)。

编译没问题,要说明一下环境变量的设置。新的linux中取消了touchscreen接口。在内核的配置菜单中已没有touchscreen interface一项。只有mouse interface, event

interface(此接口是其它两个接口的基础)选项。这几个选项分别对/drivers/input/mousedev.c /drviers/input/evdev.c /driver/input/tsdev.c(这个在linux2.6.27.9中已没有了),因此输入子系统只会生成event0,mouse0,不象以前还生成ts0。

因此,网上流行的环境变量在我的系统下就不能正常工作了,触摸屏没有反应。看了tslib1.3的代码,原来在定义USE_INPUT_API宏的时,就会调用event的接口进行触摸操作。于是在tslib的config.h中加入#define USE_INPUT_API 1,重新编译,再在根文件系统的profile中,注掉#export TSLIB_TSEVENTTYPE=H3600,(不注也可以,因为这时这个环境变量不起作用了。),再修改环境变量TSLIB_TSDEVICE的值为/dev/event0,tslib可以正常操作了。

注:看了tslib的configure的帮助,应该可以用参数--enable-inputapi=yes指定加入USE_INPUT_API宏的,但我试过多次,都不能自动加入宏。最后只好手工加入了。

以下是环境变量的设置.

export V_ROOT=/tslib

#export TSLIB_TSEVENTTYPE=H3600

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_TSDEVICE=/dev/event0

export TSLIB_CALIBFILE=$V_ROOT/etc/pointercal

export TSLIB_CONFFILE=$V_ROOT/etc/ts.conf

export TSLIB_PLUGINDIR=$V_ROOT/share/ts/plugins

export LD_LIBRARY_PATH=$V_ROOT/lib:$LD_LIBRARY_PATH

做完这些,ts_calibrate可以进行校正了,校正成功后,把生成的tslib/etc/pointercal文件拷到/etc目录下。运行ts_test,却发现触摸屏不能正常操作,这个网上有相关的资料,把/tslib/etc/ts.conf中被注掉的#module mousebuts恢复即可。

注:顺便说一下,要想在qte中使用tslib,除了qte编译时加--qt-mouse-tslib参数外,还要加入环境变量如下

export QWS_MOUSE_PROTO=Tslib:/dev/event0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值