移植真是啰嗦,大部分是参考网上的:
1、解压tslib1.4.
2、编译过程:
a、./autogen.sh
b、echo ac_cv_func_malloc_0_nonnull=yes>arm-linux.cache
c、./configure --host=arm-linux --prefix=/root/Desktop/mini2440/tslibinstall
--cache-file=arm-linux.cache --enable-inputapi=no
d、make
编译的时候遇到undefined reference to rpl_malloc这个错误,参考网上的:.在config.h里加上#undef rpl_malloc
e、make install
安装到/root/Desktop/mini2440/tslibinstall,拷贝到开发板时也要同样的目录!!!!!
f、把install的东西拷贝到开发板上。
3、设置环境变量
export TSLIB_ROOT=/root/Desktop/mini2440/tslibinstall
export TSLIB_TSDEVICE=/dev/input/event0 #(你的开发板dev下的触摸屏设备节点文件)
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
4、修改ts.conf文件,应该在$TSLIB_ROOT/etc/ts.conf
把module_raw input的#去掉。默认是全部关闭的,导致后来会出现"No raw modules loaded",吐血!!
5、现在可以运行tslibinstall/bin下的可执行文件了。
如果有错误,最好跟进去,写几个printf。
这是另一个哥们写的,差不多:
http://blog.chinaunix.net/u3/104564/showart_2094901.html
移植触摸屏库tslib
1. 下载相关工具与最新的tslib源码包:
# sudo apt-get install autoconf
# sudo apt-get install automake
# sudo apt-get install libtool
在 http://blog.chinaunix.net/u2/75270/showart_1793535.html 有tslib 1.4的下载,下载后解压并进入tslib目录。
2. 运行autogen.sh脚本:
# ./autogen.sh
3. 配置:
# ./configure --host=arm-linux --prefix=/opt/tslib
4. 编译:
# make
可能报错 “ts_test.c:(.text+0x200): undefined reference to `rpl_malloc'”,
原因是在 tslib-1.4/config.h 中有一行定义 “#define malloc rpl_malloc”,
直接注释掉这行定义即可,除非你自己实现了一个 malloc 版本。
5. 重新编译:
# make
6. 安装:
# make install
安装后, 主机 /opt/tslib 存在如下目录:
bin etc include lib
拷贝主机 /opt/tslib 目录至开发板 /opt/ 目录。
7. 在开发板运行触摸屏校正:
(1) 在运行触摸屏校正之前,需要设置一些环境变量,以下是我的开发板的 /etc/profile 文件的内容:
|
(2) 运行触摸屏校正:
# cd /opt/tslib/bin
# ./ts_calibrate
报错 “No raw modules loaded.”, 原因是缺省时,/opt/tslib/etc/ts.conf 中所有的 raw module 都注释掉了,打开第一项 “module_raw input” 即可 。
(3) 重新运行,应该成功;点击屏幕上出现的需要校正的“+”,校正结果存放在 /etc/pointercal
文件中。
//////////////////////////////////一些错误解析、、、、、、、、、、、、、、、、、、、、、、、、、、、、
出现这个错误 Couldnt load module input No raw modules loaded tsconfig: Success 第一行告诉tslib从linux的输入设备读取数据,需要用到input这个模块,也就是plugin目录下的input.so文件, 所以你的TSLIB_PLUGINDIR一定要配置正确,让tslib能够找到模块文件。 其他参数分别控制触摸点的连续下压、变化宽度、轨迹变化和线性校准。 也是要把其对应的需要的几个库文件复制到/tslib/plugins中 第二行导致"No raw modules loaded."的原因有两个: 注意:一是你的ts.conf中没有指定module_raw,自带的ts.conf的所有module_raw都被注释掉了, # Uncomment if you wish to use the linux input layer event interface # module_raw input # Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d # module_raw collie # Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860 # module_raw corgi # Uncomment if you're using a device with a UCB1200/1300/1400 TS interface # module_raw ucb1x00 # Uncomment if you're using an HP iPaq h3600 or similar #module_raw h3600 # Uncomment if you're using a Hitachi Webpad # module_raw mk712 # Uncomment if you're using an IBM Arctic II # module_raw arctic2 你应该打开至少一个module_raw选项,有人就选择了input,去掉了它的注释 得到module_raw input 另一个原因就是你没有正确配置TSLIB_PLUGINDIR,tslib从你指定的目录中没有找到plugin需要的模块文件, 请检查你的路径和文件。