一、实验环境
硬件: JZ2440开发板
内核版本: Linux-2.6.22.6
交叉工具链: gcc-3.4.5-glibc-2.3.6
tslib版本: tslib-1.4
二、安装
1) 运行tslib自带的脚步文件设置环境
./autogen.sh
2) 产生一个cache文件arm-linux.cache,欺骗configure
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache //0是数字零
3) 创建一个目录用于存放tslib的一下安装文件,可以根据需求自行创建,然后用--prefix指定
(作者在tslib当前目录下创建了一个release目录)
mkdir release
./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=$(pwd)/release
4) 编译
make
虽然有了第二步的欺骗,但是还是没有欺骗过configre,最终还是出现了错误如下图:
没办法了只有用恨招了,直接把顶层目录下的config.h.in中的以下语句给屏蔽了
/* Define to rpl_malloc if the replacement function should be used. */
#undef malloc
然后重新编译就ok了
5) 安装
make install
安装完后就可以在release目录下看到以下内容
6) 将release目录下的内容拷贝到文件系统中
cp * -rfd /nfs/sysfs/fs_s3c2440
三、 使用
由于tslib依赖于触摸屏和屏幕所以在测试tslib之前的先安装触摸屏和lcd屏幕的驱动,同时还得修改和设置
一些环境变量
1) 修改
将/etc/ts.conf中的第一行的“#”和空格去掉即:
# module_raw input
改为
module_raw input
2) 导出环境变量
环境变量的导出有两中方式,一种是等系统起来后直接在终端中输入一下各个命令回车,然后在运行测试程序,但是这种
方式只能等到系统起来之后,如果想在系统启动时也将测试程序启动起来就得使用第二种方式。这种方式是将以下内容写
入到一个shell脚步中,系统启动时调用shell脚本来导出这些变量。注意shell的调用要使用 ". 或 source"方式。
export TSLIB_TSDEVICE=/dev/event0 //指定触摸屏设备
export TSLIB_CALIBFILE=/etc/pointercal //指定校准文件存放路径
export TSLIB_CONFFILE=/etc/ts.conf //指定tslib配置文件的位置
export TSLIB_PLUGINDIR=/lib/ts //指定触摸屏插件的位置
export TSLIB_CONSOLEDEVICE=none //设定控制台设备为none,否则默认为/dev/tty
export TSLIB_FBDEVICE=/dev/fb0 //指定帧缓存设备
3) 运行测试用例
./ts_test
./ts_calibrate