####准备
- 主机平台:Ubuntu 16.04 LTS(x64)
- 目标平台:ARM40-A5D3
- tslib github
- ARM-GCC编译工具链:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi
####1、git克隆tslib
在主机上安装git,从gitbub上克隆tslib到本地目录下。
$ sudo apt-get install git #安装git
$ git clone https://github.com/kergoth/tslib.git #克隆tslib
>>>
正克隆到 'tslib'...
remote: Counting objects: 5089, done.
remote: Total 5089 (delta 0), reused 0 (delta 0), pack-reused 5089
接收对象中: 100% (5089/5089), 2.39 MiB | 429.00 KiB/s, 完成.
处理 delta 中: 100% (3505/3505), 完成.
检查连接... 完成。
<<<
####2、交叉编译tslib
默认ARM40-A5 GCC交叉编译环境已经搭建完毕,参见ARM40-A5 GCC交叉编译环境搭建。
- 开始编译
$ sudo apt-get install automake libtool
$ sudo mkdir /opt/tslib
$ cd tslib
$ ./autogen.sh
$ ./configure CC=arm-linux-gnueabi-gcc \
CXX=arm-linux-gnueabi-g++ \
--prefix=/opt/tslib \
--host=arm-linux-gnueabi \
ac_cv_func_malloc_0_nonnull=yes
$ make&&sudo make install
- 解决报错
如果make源码的过程中出现如下所示的错误。
>>>
/home/jonny/tslib/libtool: line 10540: arm-linux-gnueabi-gcc: command not found
libtool: error: error: relink 'linear.la' with the above command before installing it
Makefile:755: recipe for target 'install-pluginexecLTLIBRARIES' failed
make[2]: *** [install-pluginexecLTLIBRARIES] Error 1
make[2]: Leaving directory '/home/jonny/tslib/plugins'
Makefile:1021: recipe for target 'install-am' failed
make[1]: *** [install-am] Error 2
make[1]: Leaving directory '/home/jonny/tslib/plugins'
Makefile:483: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1
<<<
原因:sudo命令使用的是root的环境变量,sudo就找不到ARM40-A5 GCC。
解决:添加ARM40-A5 GCC的绝对路径就可以了。
$ ./configure CC=/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc \
CXX=/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-g++ \
--prefix=/opt/tslib \
--host=arm-linux-gnueabi \
ac_cv_func_malloc_0_nonnull=yes
- 查看tslib
确认tslib安装成功。
$ ls /opt/tslib/ #查看
>>> bin etc include lib share
$ cd /opt #切换到/opt目录下
$ sudo tar cvf tslib.tar tslib #将tslib目录打包备用
####3、复制tslib到ARM40
将主机上打包好的tslib通过NFS,FTP或U盘等方式复制到ARM40板子上;
并将其释放到ARM40的/opt目录下。
root@ARM40:# tar xvf tslib.tar -C /opt #解压tslib到/opt目录下
- 配置环境变量
本教程默认采用7吋LCD,并且准备就绪。
测试tslib前,必须配置环境变量,重启ARM40使其生效。
root@ARM40:# vi /etc/profile #编辑profile文件,将下文添加到文件末尾
>>>
export TS_ROOT=/opt/tslib
export PATH=$TS_ROOT/bin:$PATH
export LD_LIBRARY_PATH=/lib:$TS_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=$TS_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TS_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
<<<
- 校准触摸屏
root@ARM40:# ts_calibrate #触摸屏校准
>>>
xres = 800, yres = 480
Took 1 samples...
Top left : X = 322 Y = 3336
Took 2 samples...
Top right : X = 3689 Y = 3385
Took 1 samples...
Bot right : X = 3746 Y = 656
Took 2 samples...
Bot left : X = 335 Y = 720
Took 5 samples...
Center : X = 2059 Y = 2016
-24.851858 0.206530 0.002746
528.144348 -0.000332 -0.142129
Calibration constants: -1628691 13535 179 34612468 -21 -9314 65536
<<<
root@ARM40:# ts_test #触摸屏测试
tslib成功移植,结束。
####参考引用