全部博文(92)
分类: 嵌入式
2010-05-14 21:13:14
tslib-1.4
交叉编译器版本:
arm-linux-gcc 4.1.2
操作系统平台:
Linux -- Red Hat 9.0
开发板平台:
Arm -- TX2440A
开始移植:
下载tslib1.4源码包,解压
进入tslib目录,执行
#./autoconf.sh
出现错误:possible undefined macro: AS_HELP_STRING
可能是因为系统自带的autoconf工具里面没有定义这个宏,查看一下autoconf的版本
#autoconf –V 是2.57版的,
那么就从网上下一个比这个新一点的版本
在找到了2.64版
下载完后,进入autoconf目录,执行
#./configure
又出现错误:no acceptable m4 could be found in $PATH
原因是安装autoconf工具,需要GNU的m4工具,但是系统里没有这个工具,所以还要从网上down
在找到m4-1.14.13.tar.bz2
下载完后,进入m4-1.14.13目录,执行
#./configure
#make
#make install
安装完成后,再进入autoconf目录,执行
#./configure
#make
#make install
新安装的autoconf工具就把/usr/bin下的可执行程序覆盖了,然后执行
#source /etc/profile
使环境变量生效,再查看 autoconf版本,确保是2.64版
进入tslib目录,执行
#./configure --prefix=/home/xgc/tslib --host=arm-linux --target=arm-linux --enable-inputapi=no (因为触摸屏驱动不支持ioctl操作)
#make
这时会出现一个错误:ts_test.o(.text 0x218): In function `main': undefined reference to `rpl_malloc'
查看一下源码,发现是ac_cv_func_malloc_0_nonnull引起了,那我们需要建一个cache文件,来欺骗configure,让它不检查这一项
执行
#echo "ac_cv_func_malloc_0_nonnull=yes" > mytslib.cache
再执行
#./configure –prefix=/home/xgc/tslib –host=arm-linux –target=arm-linux –enable-inputapi=no –cache-file=mytslib.cache
#make
#make install
这一步很重要:
安装完成后,把tslib目录下的所有内容拷贝到根文件系统的/usr/local/tslib目录下,修改tslib/etc/ts.conf文件,将第二行module_raw input的注释去掉。
将tslib/bin/ts_calibrate拷贝到/usr/bin下,这个就是触摸屏校正程序,运行时,屏幕上会依次出现5个点,点击后会在/etc/目录下生成pointercal文件,qtopia就会根据这个文件进行校正
把那些tslib 环境配置export 写到 /etc/profile 中去吧
(上网查了一下,说是在shell里执行export只能影响当前这个脚本和它的子脚本,不能影响正在运行的登录 shell(当前shell).,所以没有作用。)
#vim /etc/profile
export T_ROOT=/usr/local/tslib
export TSLIB_CONSOLEDEVICE=none //控制台设备文件名
export TSLIB_FBDEVICE=/dev/fb0 //framebuffer设备文件名
export TSLIB_TSDEVICE=/dev/event0 //触摸屏设备名
export TSLIB_CALIBFILE=/etc/pointercal //触屏校正信息保存文件
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf //tslib配置文件
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts //tslib需要加载模块所在目录