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 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. 开始编译

    终端输入:

bash auto.sh
make -j4
make install
  1. 到–prefix指定的目录看看是否生成目标文件
    tslib ARM平台交叉编译记录_第1张图片
zzl@ubuntu:~/arm2/tslib2$ ls
bin  etc  include  lib
zzl@ubuntu:~/arm2/tslib2$ cd bin
zzl@ubuntu:~/arm2/tslib2/bin$ ls
ts_calibrate  ts_harvest  ts_print  ts_print_raw  ts_test
zzl@ubuntu:~/arm2/tslib2/bin$ file ts_calibrate 
ts_calibrate: ELF 32-bit LSB  executable, 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         测试触摸屏

你可能感兴趣的:(嵌入式)