./ts_calibrate: line 1: syntax error :”(” unexpected.
$export PATH=$PATH:/usr/local/arm/4.3.2/bin
$export CC=arm-linux-gcc
$export CXX=arm-linux-g++
设置好交叉编译环境后就可以开始安装了:
执行./autogen.sh

执行./autogen.sh之后可能会有上述信息出现,但是我的机器上灰常不给力,只是显示出其中几行信息,一开始以为是出错,但是最后还是移植成功,证明这步就算只出现几行信息并无多大关系。
接着执行以下命令:
./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
(1)有些开发板在执行此命令时需要添加—enable inputapi=no或者—enable input=no,至于是哪一个就需要根据tslib目录下的configure文件才可以知道。(建议这个文件还是看一下)。由于友善之臂mini2440的触摸屏驱动是支持ioctl操作的(在内核移植时做触摸屏驱动时可以看到源码中是支持ioctl的),因此我在这里并没有加上—enable inputapi=no.
(2)如果没有加上ac_cv_func_malloc_0_nonnull=yes会出现交叉编译错误:undefined reference to `rpl_malloc'. 这是由ac_cv_func_malloc_0_nonnull检查引起的,为了不让它检查,产生一个cache文件daiq_tslib.cache,欺骗configure再执行:因此为了编译的顺利进行,在配置的时候需要加上这一句:ac_cv_func_malloc_0_nonnull=yes
最后执行make & make install就可以在指定的路径上成功安装tslib。我的指定路径是/usr/local/tslib/,在这个文件下安装成功的话会有四个目录:lib/ etc/ include/ bin/.
安装好tslib之后将动态链接库文件拷贝到根文件系统中,(注意tslib依赖的是动态链接库文件),如果忘记拷贝动态链接库的话会出现以下错误:
拷贝进去之后需要在自己的根文件系统的/etc/profile(在文件的一开始添加下面的内容)设置tslib的环境变量(要根据自己的实际情况来设置),下面是我的开发板所设置的有关tslib的环境变量:
# Ash profile
#vim syntax=sh
#No core files by default
echo "Set ENV for tslib......"
export QTDIR=/usr/local/Trolltech/QtEmbedded-4.5.3-arm(文件系统中QT的安装目录)
export TSLIB_ROOT=/usr/local/tslib (tslib的目录)
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal
export POINTERCAL_FILE=$TSLIB_ROOT/etc/pointercal
export QWS_DISPLAY=LinuxFb:dev/fb0
export set QWS_SIZE=320x240
export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
echo “the env is successful”
当配置好这些环境变量后下载到开发板,执行./ts_calibrate时如果出现:
ts_open: No such file or directory
说明环境变量设置有问题,可以用env命令查看一下有没有你刚才设置的环境变量。在设置环境变量这一个环节上是比较重要的,要保证在每一个目录下都存在你需要用到的文件。
如果移植成功:
cd /usr/local/tslib/bin
./ts_calibrate 校准触摸屏
./ts_test 测试触摸屏
