mini2440: tslib1.3 的移植 、tslib1.4的移植

来源:互联网 发布:python shell怎么打开 编辑:程序博客网 时间:2024/06/11 17:52

一、tslib1.3 的移植:

原文: http://blog.chinaunix.net/uid-11153816-id-2903451.html

tslib-1.3.tar.bz2 下载

环境:

mini2440开发板linux:2.6.32.2arm-linux-gcc:4.3.2

解压tslib-1.3.tar.bz2

进入tslib1.3目录

./autogen.sh  

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

修改/tslib/plugins/Makefile 裡面找rpath.将LDFLAGS :=$(LDFLAGS) -rpath $(PLUGIN_DIR)
修改为:LDFLAGS :=$(LDFLAGS) -rpath `cd $(PLUGIN_DIR) && pwd`

make
make install

将生成的build文件夹全部拷入自己的文件系统中的/nfs/busybox/fs_mini2440 目录下

编译没问题,要说明一下环境变量的设置。新的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宏的,但我试过多次,都不能自动加入宏。最后只好手工加入了。
 
以下是环境变量的设置. 将下面的内容放在 /etc/profile中
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


==================其他好文章========================

http://blog.chinaunix.net/uid-11153816-id-2903451.html

blog.csdn.net/gary_123/article/details/2928740

http://blog.sina.com.cn/s/blog_7bd0d88201011gvi.html

http://blog.csdn.net/lxb316/article/details/4948726


二、tslib1.4的移植: (首选1.4 移植成功,好用!!!)

http://blog.csdn.net/zjucxm/article/details/5845310

      1、下载tslib-1.4.tar.gz (pc机上)

      http://download.csdn.net/source/3177449。

      2、解压安装tslib     (pc机上)     

    解压tslib-1.4.tar.gz

    #tar xvzf tslib-1.4.tar.gz

    #cd tslib

    #./autogen.sh

    #./configure  --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --prefix=/nfs/busybox/fs_mini2440/usr/local/tslib1.4

    在tslib的config.h中加入#define USE_INPUT_API 1, 然后make

    #make

    #make install

这样以后可以看到/nfs/busybox/fs_mini2440/usr/local/tslib1.4下有了库文件,移植时会用到。

此处的/nfs/busybox/fs_mini2440是网络文件系统跟目录

host选项中malloc后面接着的是数字0,不是小写字母o.


3、修改配置文件  (开发板上)

          # vi /usr/local/tslib/etc/ts.conf

         module_raw input
          module pthres pmin=1
          module variance delta=30
          module dejitter delta=100
          module linear


4、环境变量 (开发板上)

export TSLIB_ROOT=/usr/local/tslib1.4       export TSLIB_TSDEVICE=/dev/event0               export TSLIB_CALIBFILE=/etc/pointercal    export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf    export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts    export TSLIB_FBDEVICE=/dev/fb0    export TSLIB_CONSOLEDEVICE=none    export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$LD_LIBRARY_PATH
(在开发板上将上面的语句放在/etc/profile中,从而每次启动自动设置环境变量)
    另外,要确保在/dev/input/目录下有event0设备文件,在/dev/目录下有fb0设备文件,如果没有,在执行下面./ts_calibrate的时候,会报出“open *: No such file or directory”的错误,这时,我们需要手动创建设备文件:

          # mknod /dev/input/event0 c 13 64
          # mknod /dev/fb0 c 29 0

5、执行测试命令

      重启开发板,在 /usr/local/tslib1.4/bin 目录下,输入./ts_calibrate,出现tslib的触摸屏五点校准画面,至此,tslib的安装移植成功完成。


原创粉丝点击