分类: LINUX
2009-10-09 21:51:54
tslib-1.4交叉编译详细笔记
注:在此之前,请确保你的触摸屏驱动已经移植完成。
1、环境介绍
(1)、主机:虚拟机下fedora9
(2)、硬件平台:mini2440
(3)、交叉编译器:arm-linux-gcc-
(4)、触摸屏适配层源码:tslib-1.4.tar.gz
我的根文件系统在在主机上的路径是/opt/rootfs ,tslib-1.4.tar.gz解压到/opt/Qt目录下,解压后多了tslib目录。
2、交叉编译tslib-1.4
cd tslib ./autogen.sh //用于生产configure //配置成将生成的文件安装到/usr/local/tslib目录, ./configure--prefix=/usr/local/tslib/--host=arm-linuxac_cv_func_malloc_0_nonnull=yes --enable-inputapi=no // make make install //也可以用make install-strip 生成瘦身应用程序和库 |
编译和安装后在主机的/usr/local/tslib目录下看到编译好的程序和库。
注:如果你的触摸屏驱动支持ioctl操作,在./configure时不用“--enable-inputapi=no”,不支持就要添上,如果不添加无法运行程序,会有“ts_open:Inappropriate ioctol for device“、“ts_open: No such file or directory”这样的错误。
2、配置并加入到根文件系统
(1)、修改tslib/etc目录下的ts.conf文件,将module_raw input前面的注释去掉。
(2)、cp –rfd /usr/local/tslib /opt/rootfs/usr/local
(3)、在根文件系统的etc/profile文件中加入运行tslib的环境变量
… export TSLIB_ROOT=/usr/local/tslib export TSLIB_TSDEVICE=/dev/input/event0 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 |
我将配置好的根文件系统下载到开发板后,曾多次出现“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的环境变量的配置情况,然后配置好环境变量等。
特别说明:在编辑以上内容时最好使用vi来编辑,如使用文本编辑器来编辑,保存后会留下“~M”,运行tslib/bin下的ts_test等程序时出现“: No such file or directory”错误,必须删除它才能正常运行。使用vi则不会出现这种情况。
3、测试
以上都配置好后,在终端进入到/usr/local/bin目录下,运行ts_test来测试触摸屏,运行ts_calibrate进入触摸屏的五点校准,到了这里是不是很高兴了?
4、参考资料
移植tslib-1.4的资料来源于网络,资料不是我的,我得到的是经验。“取之于网络,还之于网络”,正是由于无数热心网友的无私奉献,我才能分享他们的资料,得到进步。