tslib ARM平台交叉编译记录

编译前准备工作

  1. 平台及资源
    主机环境:ubuntu 14.04
    开发板 :米尔科技 ARM 335X 系列
    tslib:tslib 1.4
    编译器:arm-linux-gnueabihf 交叉编译器,最好选择开发板厂商提供的交叉编译工具链
  2. 交叉编译器配置环境变量
    在~/.profile中添加环境变量指定到交叉编译器的bin目录下,例如:
    export PATH=$PATH:/home/linux/work/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin
    并执行 source ~/.profile 使配置生效
    使用 arm-linux-gnueabihf-gcc -v 命令查看当前版本号,同时检查环境变量配置是否生效。
    tslib ARM平台交叉编译记录
    文章图片
编译tslib 1.4
  1. 进入tslib目录 运行 ./autogen.sh 可能会有warning警告,但不用在意。
  2. ./autogen.sh运行完成后会生成 configure 文件,编写一个脚本执行configure文件:
mkdir auto.sh vi auto.sh

#!/bin/sh##make clean 清除错误编译后的可执行文件和配置文件 ##make distclean 清除错误编译生成的所有文件 make clean && make distclean ## tslib交叉编译时configure会出错,原因是ac_cv_func_malloc_0_nonnull检查引起的 ##为了不让它检查,我们新建一个arm-linux.cache的缓存文件,直接让ac_cv_func_malloc_0_nonnull=yes ##再让configure去识别这个缓存文件,达到欺骗configure的目的 echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache## host指定交叉编译的目标平台,prefix指定交叉编译目标文件的路径,CC指定交叉编译使用的编译器,cache-file指定为我们自己的缓存文件 ./configure --prefix=/home/zzl/arm2/tslib2 --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --cache-file=arm-linux.cache

  1. 【tslib ARM平台交叉编译记录】开始编译
    终端输入:
bash auto.sh make -j4 make install

  1. 到–prefix指定的目录看看是否生成目标文件
    tslib ARM平台交叉编译记录
    文章图片
zzl@ubuntu:~/arm2/tslib2$ ls binetcincludelib zzl@ubuntu:~/arm2/tslib2$ cd bin zzl@ubuntu:~/arm2/tslib2/bin$ ls ts_calibratets_harvestts_printts_print_rawts_test zzl@ubuntu:~/arm2/tslib2/bin$ file ts_calibrate ts_calibrate: ELF 32-bit LSBexecutable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=33905d56010cc4eab3f812205d0ddae8c3294b2f, not stripped

使用file命令可以看到编译出来的可执行文件以及是ARM架构的了
开始安装
  1. 将生成的目标文件拷贝至开发板(推荐使用scp上传至开发板)
  2. 开始配置环境变量
    ssh登录开发板
    打开profile:vi /etc/profile 添加:
export TSLIB_TSDEVICE=/dev/input/event1指定触摸屏设备 export TSLIB_CALIBFILE=/etc/pointercal指定触摸屏校准文件 pintercal 的存放位置 export TSLIB_CONFFILE=/arm/tslib/etc/ts.conf指定TSLIB配置文件的位置 export TSLIB_PLUGINDIR=/arm/tslib/lib/ts/指定触摸屏插件所在路径 export TSLIB_CONSOLEDEVICE=/dev/tty1设定控制台设备 export TSLIB_FBDEVICE=/dev/fb0指定帧缓冲设备

3.接下来可以测试tslib
进入tslib的bin目录:
cd /arm/tslib/bin ./ts_calibrate校准触摸屏 (该功能会生成一个pontercal的屏幕校准文件在TSLIB_CALIBFILE指定目录下) ./ts_test测试触摸屏

    推荐阅读