tslib1.4编译安装到ARM开发板

一、安装 tslib1.4
tslib 是一个开源程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖动、校准等功
能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。
(1)安装 autoconf、 automake 和 libtool
$ sudo apt-get install autoconf
$ sudo apt-get install automake
$ sudo apt-get install libtool
注意:确保内核源码目录下的 include/linux/input.h 的 EV_VERSION 值与交叉编译工
具定义的 EV_VERSION 值一致(本例为arm-none-linux-gnueabi/libc/usr/include/linux/input.h),不然在开发板上 tslib 会报
告“selected device is not a touchscreen I understand”错误。----未测试
(2)解压
$ tar -zxvf tslib-1.4.tar.gz
$ cd tslib
$ ./autogen.sh
(3)配置
$ ./configure --prefix=/root/top4412/tslib/build_output/tslib --host=arm-none-linux-gnueabi ac_cv_func_malloc_0_nonnull=yes
或者
$ ./configure --prefix=/root/top4412/tslib/build_output/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
或者
$ ./configure CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ -host=arm-none-linux-gnueabi -prefix=/root/top4412/tslib/build_output/tslib ac_cv_func_malloc_0_nonnull=yes -enable-inputapi=no
--prefix 指定安装路径,用户可以自行指定 tslib 的安装目录。
--host 指定交叉编译器,如果交叉编译器是 arm-none-linux-guneabi-gcc,则指定arm-none-linux-guneabi。
(4)编译
$ make
$ make install
编译生成的库,头文件等都自动拷贝到 prefix 指定的路径中。
如果可以看到该指定的路径下有 4 个文件夹: /bin、 /etc、 /lib、 /include,则表示安装完成。

6. 修改 ts.conf 内容
为了在移植开发板的时候,可以制定输入模块,需要修改 ts.conf 文件的内容。
进入安装目录下的/etc/文件夹,修改 ts.conf 文件的内容。
$ vi ts.conf

找到#module_raw input 那一行,去掉注释#。
注意:行首不要留空格,要顶格。


二、编译可能遇到的错误
(1)./autogen.sh: 4: autoreconf: not found
因为没有安装automake 工具, 用下面的命令安装好就可以了。
sudo apt-get install autoconf automake libtool
(2)下列错误
ts_test.o: In function `main':
ts_test.c:(.text+0x1d8): undefined reference to `rpl_malloc'
fbutils.o: In function `open_framebuffer':
fbutils.c:(.text+0xa20): undefined reference to `rpl_malloc'
collect2: ld returned 1 exit status
make[2]: *** [ts_test] Error 1
make[2]: Leaving directory `/home/li/tslib/tests'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/li/tslib'
make: *** [all] Error 2
执行下面命令即可
./configure CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ -host=arm-none-linux-gnueabi -prefix=/opt/tslib-1.4 ac_cv_func_malloc_0_nonnull=yes -enable-inputapi=no
是为了解决运行中提示 ts_open:Inappropriate ioctol for device,它表示即不使用ioctl来控制触摸屏。即不使用ioctl来控制触摸屏。
ac_cv_func_malloc_0_nonnull 需要建一个 cache文件,来欺骗 configure,让它不检查这一项。

三、移植到开发板
1.将安装路径下的 tslib 整个文件夹,下载到开发板上。
  本例子放置在开发板的/usr/local/下。
 
2.设置开发板环境
通过串口软件,打开开发板的环境变量文件/etc/profile。
# sudo vi /etc/profile
在末尾添加如下内容:
export TSLIB_ROOT=/usr/local/tslib /* 指定 tslib 目录路径 */
export TSLIB_TSDEVICE=/dev/input/event0 /* 指定触摸屏设备 */
export TSLIB_CALIBFILE=/etc/pointercal /* 指定校准文件的存放位置*/
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf /* 指定 tslib 配置文件的路径*/
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts /* 指定 tslib 插件文件的路径*/
export TSLIB_FBDEVICE=/dev/fb0 /* 指定帧缓冲设备 */
export QWS_MOUSE_PROTO=/dev/input/event0 /* 指定鼠标设备 */
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib /* 添加 tslib 库 */
其中 TSLIB_ROOT 更改为自己实际存放的 tslib 的绝对路径。
TSLIB_TSDEVICE 和 QWS_MOUSE_PROTO 这两项需要查看自己的开发板触摸屏设备对应/dev/input/下的文件。

3. 执行测试命令
重新启动开发板,使系统重新读取/etc/profile 的环境变量,进入 tslib/bin 目录,执行如
下命令:
# cd /usr/local/tslib/bin
# ./ts_calibrate
如果出现点触摸屏校准画面,tslib 的安装和移植已经成功完成。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值