tslib1.4 移植全过程

环境:
federo 9
 
交叉编译链:4.5.1,arm-linux-gcc linux-3.0.8  s5pv210
tslib源代码:tslib-1.4.tar.gz
tslib安装目标路径:/home/guazai/tslib-arm-210

安装步骤:


1.准备工作
确保以下软件已安装
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="com" style="color: rgb(136, 0, 0);"># apt-get install autoconf(或autoconf2.13)</span>
<span class="com" style="color: rgb(136, 0, 0);"># apt-get install automake</span>
<span class="com" style="color: rgb(136, 0, 0);"># apt-get <span style="white-space:pre">	</span>install libtool</span>
</p>

2.下载
http://download.csdn.net/detail/scholar_fish/4167788
下载版本为tslib-1.4.tar.gz

3.配置
解压源代码tslib-1.4.tar.gz,并进入源代码文件夹
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="com" style="color: rgb(136, 0, 0);"># tar -zxvf tslib-1.4.tar.gz</span>
<span class="com" style="color: rgb(136, 0, 0);"># cd tslib</span>
</p>
配置
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="com" style="color: rgb(136, 0, 0);"># ./autogen.sh</span>
<span class="com" style="color: rgb(136, 0, 0);"># echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache</span></p><p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="com" style="color: rgb(136, 0, 0);"># ./configure --host=arm-linux  --cache-file=arm-linux.cache --enable-inputapi=no  --prefix=/home/guazai/tslib-arm</span></p>
注意,prefix选项更换为你的安装路径。

4.编译
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="com" style="color: rgb(136, 0, 0);"># make</span>
</p>

5.安装
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="com" style="color: rgb(136, 0, 0);"># make install</span>
</p>
编译生成的库,头文件等都拷贝至prefix制定的路径中。

6. 修改ts.conf内容
    打开 安装路径 下的/etc/ts.conf文件,修改其内容。 
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="com" style="color: rgb(136, 0, 0);"># vi /usr/local/tslib/etc/ts.conf</span></p>

   搜索定位至#module_raw input,把行首的注释符去掉, 但要注意行首不要留有空格,即文字是顶格的, 不然之后会出现段错误(segmentational fault)。

7.移植至开发板
将安装路径下的整个tslib文件夹,下载至开发班的上,我存放的路径为/usr/local

8. 设置开发板环境变量
通过超级终端, 打开环境变量文件/etc/profile
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="com" style="color: rgb(136, 0, 0);"># vi /etc/profile</span></p>
添加如下内容:
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="kwd" style="color: rgb(0, 0, 136);">export</span><span class="pln" style="color: rgb(0, 0, 0);"> TSLIB_ROOT</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">/usr/</span><span class="kwd" style="color: rgb(0, 0, 136);">local</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln" style="color: rgb(0, 0, 0);">tslib</span>
<span class="kwd" style="color: rgb(0, 0, 136);">export</span><span class="pln" style="color: rgb(0, 0, 0);"> TSLIB_TSDEVICE</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">/dev/</span><span class="pln" style="color: rgb(0, 0, 0);">input</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln" style="color: rgb(0, 0, 0);">event1 </span>
</p><p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="kwd" style="color: rgb(0, 0, 136);">export</span><span class="pln" style="color: rgb(0, 0, 0);"> QWS_MOUSE_PROTO</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln" style="color: rgb(0, 0, 0);">tslib</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="str" style="color: rgb(0, 136, 0);">/dev/</span><span class="pln" style="color: rgb(0, 0, 0);">input</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln" style="color: rgb(0, 0, 0);">event1</span>
<span class="kwd" style="color: rgb(0, 0, 136);">export</span><span class="pln" style="color: rgb(0, 0, 0);"> TSLIB_CALIBFILE</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">/etc/</span><span class="pln" style="color: rgb(0, 0, 0);">pointercal   </span>
<span class="kwd" style="color: rgb(0, 0, 136);">export</span><span class="pln" style="color: rgb(0, 0, 0);"> TSLIB_CONFFILE</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln" style="color: rgb(0, 0, 0);">$TSLIB_ROOT</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln" style="color: rgb(0, 0, 0);">etc</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln" style="color: rgb(0, 0, 0);">ts</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln" style="color: rgb(0, 0, 0);">conf    </span>
<span class="kwd" style="color: rgb(0, 0, 136);">export</span><span class="pln" style="color: rgb(0, 0, 0);"> TSLIB_PLUGINDIR</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln" style="color: rgb(0, 0, 0);">$TSLIB_ROOT</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln" style="color: rgb(0, 0, 0);">lib</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln" style="color: rgb(0, 0, 0);">ts  </span>
<span class="kwd" style="color: rgb(0, 0, 136);">export</span><span class="pln" style="color: rgb(0, 0, 0);"> TSLIB_FBDEVICE</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="str" style="color: rgb(0, 136, 0);">/dev/</span><span class="pln" style="color: rgb(0, 0, 0);">fb0   </span>
<span class="kwd" style="color: rgb(0, 0, 136);">export</span><span class="pln" style="color: rgb(0, 0, 0);"> TSLIB_CONSOLEDEVICE</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln" style="color: rgb(0, 0, 0);">none   </span>
<span class="kwd" style="color: rgb(0, 0, 136);">export</span><span class="pln" style="color: rgb(0, 0, 0);"> LD_LIBRARY_PATH</span><span class="pun" style="color: rgb(102, 102, 0);">=</span><span class="pln" style="color: rgb(0, 0, 0);">$LD_LIBRARY_PATH</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln" style="color: rgb(0, 0, 0);">$TSLIB_ROOT</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln" style="color: rgb(0, 0, 0);">lib</span>
</p>
其中,TSLIB_ROOT更换为自己实际存放的路径;
另外,TSLIB_TSDEVICE 和QWS_MOUSE_PROTO这两项需要查看自己的板子的触摸屏设备对应/dev/input/下那个文件

9.执行测试命令
 重启开发板(使系统读取profile环境变量),进入tslib/bin目录,执行触摸屏校准程序
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="com" style="color: rgb(136, 0, 0);"># ./ts_calibrate</span></p>
如果出现tslib的触摸屏 五点 校准画面,至此,tslib的安装移植成功完成。
也可执行此目录下其他的程序来体验触摸屏!
校准完成后可以用./ts_test命令,测试驱动性能。
10.出错记录
(1)第4步make时出现以下错误:
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="pln" style="color: rgb(0, 0, 0);">ts_test</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln" style="color: rgb(0, 0, 0);">o</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="typ" style="color: rgb(102, 0, 102);">In</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="kwd" style="color: rgb(0, 0, 136);">function</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="str" style="color: rgb(0, 136, 0);">`main':</span>
<span class="str" style="color: rgb(0, 136, 0);">ts_test.c:(.text+0x1d4): undefined reference to `</span><span class="pln" style="color: rgb(0, 0, 0);">rpl_malloc</span><span class="str" style="color: rgb(0, 136, 0);">'</span>
<span class="str" style="color: rgb(0, 136, 0);">fbutils.o: In function `open_framebuffer'</span><span class="pun" style="color: rgb(102, 102, 0);">:</span>
<span class="pln" style="color: rgb(0, 0, 0);">fbutils</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="pln" style="color: rgb(0, 0, 0);">c</span><span class="pun" style="color: rgb(102, 102, 0);">:(.</span><span class="pln" style="color: rgb(0, 0, 0);">text</span><span class="pun" style="color: rgb(102, 102, 0);">+</span><span class="lit" style="color: rgb(0, 102, 102);">0x9f4</span><span class="pun" style="color: rgb(102, 102, 0);">):</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="kwd" style="color: rgb(0, 0, 136);">undefined</span><span class="pln" style="color: rgb(0, 0, 0);"> reference to </span><span class="str" style="color: rgb(0, 136, 0);">`rpl_malloc'</span>
<span class="str" style="color: rgb(0, 136, 0);">collect2: ld returned 1 exit status</span>
<span class="str" style="color: rgb(0, 136, 0);">make[2]: *** [ts_test] 错误 1</span>
<span class="str" style="color: rgb(0, 136, 0);">make[2]:正在离开目录 `</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln" style="color: rgb(0, 0, 0);">home</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln" style="color: rgb(0, 0, 0);">zhuandi</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln" style="color: rgb(0, 0, 0);">programs</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln" style="color: rgb(0, 0, 0);">tslib1</span><span class="pun" style="color: rgb(102, 102, 0);">.</span><span class="lit" style="color: rgb(0, 102, 102);">4</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln" style="color: rgb(0, 0, 0);">tslib</span><span class="pun" style="color: rgb(102, 102, 0);">/</span><span class="pln" style="color: rgb(0, 0, 0);">tests</span><span class="str" style="color: rgb(0, 136, 0);">'</span>
<span class="str" style="color: rgb(0, 136, 0);">make[1]: *** [all-recursive] 错误 1</span>
<span class="str" style="color: rgb(0, 136, 0);">make[1]:正在离开目录 `/home/zhuandi/programs/tslib1.4/tslib'</span>
<span class="pln" style="color: rgb(0, 0, 0);">make</span><span class="pun" style="color: rgb(102, 102, 0);">:</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="pun" style="color: rgb(102, 102, 0);">***</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="pun" style="color: rgb(102, 102, 0);">[</span><span class="pln" style="color: rgb(0, 0, 0);">all</span><span class="pun" style="color: rgb(102, 102, 0);">]</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="pun" style="color: rgb(102, 102, 0);">错误</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="lit" style="color: rgb(0, 102, 102);">2</span>
</p>
原因:直接copy了网络上的以下配置参数,参数中的”malloc_0 _nonnull"中多了一个空格。
<p style="margin-top: 0px; margin-bottom: 10px; padding-top: 0px; padding-bottom: 0px;"><span class="com" style="color: rgb(136, 0, 0);"># ./autogen.sh</span>
<span class="com" style="color: rgb(136, 0, 0);"># echo "ac_cv_func_malloc_0 _nonnull=yes">arm-none-linux-gnueabi.cache </span>
</p>
解决:删除空格即可。

(2)第9步测试校准程序或其他程序时出现错误:egmentaton fault
         原因:修改ts.conf时去掉注释符号时,留下空格。
         解决:删除空格即可。

(3)第9步测试校准程序或其他程序时出现错误:触摸屏能显示,但对其操作无反应。
         原因:网络上一参考博文的环境配置,其中没有export QWS_MOUSE_PROTO=tslib:/dev/input/event1 
         解决:环境变量加上export QWS_MOUSE_PROTO=tslib:/dev/input/event1 ,重启板子即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值