开发环境:
Linux-2.6.32.2内核 Fedora 10虚拟机 gcc4.3.2版本的交叉编译器 mini2440开发板
tslib-1.4的安装与移植
1、解压安装tslibtar -zxvf tslib-1.4.tar.gzslib
./autogen.sh
ech
cd to "ac_cv_func_malloc_0 _nonnull=yes">arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no -prefix=/usr/local/tslib
make
make install
vi /usr/local/tslib/etc/ts.conf
增加下面内容:(原来内容删除!!)
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
说明:在该文件增加的内容在每一行不能有空格。否则运行./ts_calibrate会出现segmentation fault的错误
3、将整个tslib 目录拷贝到开发板/usr/local目录下。其实你可以随便放到某个目录下,不过下面的环境变量配置要根据这个目录来设置!!
说明:其实复制lib目录下libts-0.0.so.0、libts.so、libts-0.0.so.0.1.1 库文件和ts目录下的*.so文件
etc目录下ts.conf文件
bin目录下都是触摸屏的测试程序,其中ts_calibrate是校正屏幕的,其他是做其他测试用的。
4、设置开发板配置环境变量vi /etc/profile
添加如下内容:
export TSLIB_ROOT=/usr/local/tslib 指明路径的,这个要根据tslib所在路径来设置
export TSLIB_TSDEVICE=/dev/input/event0 指定触屏设备(视自己情况而定,有些在dev/event0)
export TSLIB_CALIBFILE=/etc/pointercal 指定触摸屏校准文件 pintercal 的存放位置
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf 指定 TSLIB 配置文件的位置
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts 指定触摸屏插件所在路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
export TSLIB_FBDEVICE=/dev/fb0 指定帧缓冲设备(视自己情况而定)
export TSLIB_CONSOLEDEVICE=none 设定控制台设备为 none ,否则默认为 /dev/tty
添加完成后reboot系统!!!
5、测试
5.1进入开发板etc目录,查看是否有pointercal文件。如果有,一定要先把它删除,否则所有的tslib测试程序 一运行都是直接提示 segmentation fault错误!!!!5.2确保触屏设备和帧缓冲设备都已经加载到内核中
5.3进入/usr/local/tslib/bin目录运行测试程序
5.4移植成功以后可以修改/etc/init.d/rcS文件,在里面添加/sbin/insmod s3c2410_ts.ko让系统开机自动加载触摸屏驱动。这样原来配置好pointercal文件还可以用,否则会变成空的。估计是触摸屏驱动动态插入内核,重启系统后驱动要重启加载。这时候如果你没有将空的 pointercal删除就执行屏幕校正测试程序就会出现segmentation fault错误了。
移植安装 http://blog.chinaunix.net/uid-12461657-id-2975918.html
tslib出错集合 http://blog.sina.com.cn/s/blog_6410b69201014mzk.html