分类: 嵌入式
2011-11-12 18:46:29
1. 解压下载的tslib1.4压缩包
进入生成的目录,我的是~/tslib/
2. 执行./autogen.sh
3. 执行./configure --prefix=/usr/local/arm/qte/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
注:如果你的触摸屏驱动支持ioctl操作,在./configure时不用“--enable-inputapi=no”,不支持就要添上,如果不添加无法运行程序,会有“ts_open:Inappropriate ioctol for device“、“ts_open: No such file or directory”这样的错误。
经过一小段时间的编译.
如果没出错就执行
# make
# make install-strip //生成瘦身应用程序和库
4. 修改/usr/local/arm/qte/etc/ts.conf,把第二行的#号去掉
5. 通过nfs将/usr/local/arm/qte/tslib通过nfs mount到板子上,或是下载/opt/tslib到板子的/usr/local/arm/qte/tslib (可以通过先挂载到板子上然后copy进去即可,注意一定也要copy到/usr/local/arm/qte/tslib下,这样保持和主机的一致)
6. 修改开发板的/etc/profile文件(参考命令vi /etc/profile )添加如下的内容:
export TSLIB_ROOT=/usr/local/arm/qte/tslib
export TSLIB_TSDEVICE=/dev/input/event0
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$LD_LIBRARY_PATH
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export POINTERCAL_FILE=/etc/pointercal
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO='TSLIB:/dev/input/event0'
注:红色部分可根据实际更改
可以先手动执行以上的所有export命令或在超级终端中执行source /etc/profile (使配置生效)再运行板子的/usr/local/arm/qte/tslib/bin/ts_calibrate,进行第一次的校正
编译tslib1.4的错误和解决方法:
错误2:
ts_test.o(.text+0x218): In function `main':
: undefined reference to `rpl_malloc'
fbutils.o(.text+0x234): In function `open_framebuffer':
: undefined reference to `rpl_malloc'
collect2: ld returned 1 exit status
make[2]: *** [ts_test] Error 1
make[2]: Leaving directory `/home/gfpeak/Desktop/tslib/tests'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/gfpeak/Desktop/tslib'
make: *** [all] Error 2
解决方法是在编译的时候./configure后面的参数没有设置对,正确设置如下:
./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
错误3:
在开发板上运行校正程序时出现No raw modules loaded
解决方法是把 tslib/etc目录下的ts.conf 的 "#module_raw input"的注释符号“#”去掉。但记住不要在前面留有 空格 ,否则会出现错误4
错误4:
在开发板上运行校正程序时出现Segmentation fault
解决方法是看错误2
错误5:
ts_open: No such file or directory
环境变量没有设置好
我将配置好的根文件系统下载到开发板后,曾多次出现“ts_open: No such file or directory”、“./ts_test: error while loading shared libraries: libts-0.0.so.0: cannot open shared object file: No such file or directory
”等错误,究其原因都是配置不仔细造成的,可以在终端使用env来查看tslib的环境变量的配置情况,然后配置好环境变量等。