最近交叉编译了tslib-1.4,把主要过程和要注意的地方写下来,并在mini2440开发板和友善2.6.29内核实验成功。
1-./autogen.sh
2-echo ac_cv_func_malloc_0_nonnull=yes>$ARCH-linux.cache
3-./configure --host=$ARCH-linux --prefix=/usr/local --cache-file=$ARCH-linux.cache --enable-inputapi=no
--enable-inputapi=no:看你的触摸屏驱动是否支持ioctl操作,如果支持就不用写上,不支持就要添上,如果不添加会有
ts_open:Inappropriate ioctol for device
ts_open: No such file or directory
等错误(网上别人的文档是这么说的,我没有试过不加这个参数会怎样,感兴趣的试一下)
4-编译并安装后会在/usr/local(可以随意指定,但是最好要和你的开发板的路径相同,我试过一次不同时,运行./ts_calibrate,会报not found的错误)下有
bin,etc,include,lib,在你的开发板上的相同路径建立这些文件夹,并把关于tslib的相关东西考到这些文件内。
5-/etc/ts.conf配置
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
6-在你的开发板的/etc/profile文件里添加运行tslib的环境变量(一定要放到/etc/profile,我放到/etc/init.d/rcS里就没有作用,愿因是export只能在当前shell和它的子shell有用,不能影响登录的shell)
# /etc/profile
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/arm/X11R6/bin
export PATH
export TSLIB_ROOT=/usr/local
export TSLIB_TSDEVICE=/dev/event0(你的开发板dev下的触摸屏设备节点文件)
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib(这句我注释掉的原因是:有一种说法是使用 LD_LIBRARY_PATH这样设置不安全,我的做法是把路径添加到/etc/ld.so.conf文件中,然后执行ldconfig命令,这样就可以了。ldconfig在你的交叉编译工具里就有)
这样大概就差不多了,运行./ts_calibrate如果还提示ts_open: No such file or directory,用env命令看一下,当前系统是否有你设置的tslib环境变量,
没有的话会提示这个错误的,我在第一次设置/etc/profile文件就没有好使,修改了一下,重启系统就好用了。
运行./ts_calibrate进行触摸屏校准,再运行./ts_test测试效果
以上文档是在参考很多网上的帖子并经过实践后写的,感谢这些帖子的作者和帮助过我的人,谢谢了
阅读(634) | 评论(0) | 转发(0) |