tslib移植到arm(ubuntu 14)

前提:安装好了交叉编译环境,参照:安装arm-linux- 交叉编译工具(ubuntu 14)。
科普:Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。
下载 Tslib(此链接非我用的文件,但我看文件目录基本一致,差别不会大)。

  1. 安装依赖。
    root@linger-virtual-machine:/home/linger# apt-get install automake
    root@linger-virtual-machine:/home/linger# apt-get install autogen
    root@linger-virtual-machine:/home/linger# apt-get install autoconf
    root@linger-virtual-machine:/home/linger# apt-get install libtool
    root@linger-virtual-machine:/home/linger# tar xvzf ./tslib.tar.gz
    root@linger-virtual-machine:/home/linger# cd tslib
    root@linger-virtual-machine:/home/linger/tslib# tar xvzf ./tslib--src.tar.gz
    root@linger-virtual-machine:/home/linger/tslib# cd tslib
  • 修改配置文件。
    root@linger-virtual-machine:/home/linger/tslib/tslib# vim /etc/bash.bashrc
  • 最后加入下面几句,保存退出。
    export PATH=$PATH:/usr/local/arm/4.3.2/bin
    export TOOLCHAIN=/usr/local/arm/4.3.2
    export TB_CC_PREFIX=arm-linux-
    export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-linux
  • 使配置文件生效,交叉编译tslib。
 root@linger-virtual-machine:/home/linger/tslib/tslib# source /etc/bash.bashrc
   root@linger-virtual-machine:/home/linger/tslib/tslib# ./autogen.sh
   root@linger-virtual-machine:/home/linger/tslib/tslib# echo "ac_cv_func_malloc_0 _nonnull=yes" >arm-linux.cache 
   root@linger-virtual-machine:/home/linger/tslib/tslib# ./configure --host=arm--linux- --cache-file=arm-linux.cache --enable-inputapi=no PLUGIN_DIR=/usr/local/arm/tslib/plugins -prefix=/usr/local/arm/tslib/ -host=arm-linux --cache-file=arm-linux.cache 2>&1 | tee conf_log
   root@linger-virtual-machine:/home/linger/tslib/tslib# make 2>&1 | tee make_log
   root@linger-virtual-machine:/home/linger/tslib/tslib# make install

make的时候遇到这个error并找到了答案:undefined reference to rpl_malloc。

 root@linger-virtual-machine:/home/linger/tslib/tslib# cd /usr/local/arm/tslib/etc/
   root@linger-virtual-machine:/usr/local/arm/tslib/etc# gedit ts.conf

将module_raw 前面的“#”和“空格”去掉,保存退出。


tslib移植到arm(ubuntu 14)_第1张图片
  • 将编译完的文件夹拷贝到U盘。
  • 开发板插上电源,开启板子,连上串口线(如果是USB转串口,先装好驱动,我用的是驱动精灵装的)。

开启SecureCRT,连上板子,回车就会有命令行。
插上U盘。
[root@FORLINX6410]# mount /dev/sda4 /mnt/
[root@FORLINX6410]# cd /mnt/
[root@FORLINX6410]# tar xvzf tslib.tar
[root@FORLINX6410]# cd tslib/
[root@FORLINX6410]# cp bin/* /bin/
[root@FORLINX6410]# cp etc/* /etc/
[root@FORLINX6410]# cp lib/* /lib/ -rf
[root@FORLINX6410]# vi /etc/profile

  • 在开发板的/etc/profile文件中添加一下配置。
    export USER LOGNAME PS1 PATH
    export TSLIB_TSDEVICE=/dev/input/event2
    export TSLIB_CALIBFILE=/etc/pointercal
    export TSLIB_CONFFILE=/etc/ts.conf
    export TSLIB_PLUGINDIR=/lib/ts
    export TSLIB_CONSOLEDEVICE=none
    export TSLIB_FBDEVICE=/dev/fb0


    tslib移植到arm(ubuntu 14)_第2张图片
  • 重启开发板,运行命令:ts_test 会看到触屏矫正界面,测试成功就说明安装成功了。
 [root@FORLINX6410]# ts_test
tslib移植到arm(ubuntu 14)_第3张图片

另外:如果测试不成功,很有可能是配置的路径 /dev/input/event2 有错误。这个路径是因板子而异,有可能是/dev/event0之类的,自行ls /dev 和 ls /dev/input 把各个设备都测试一下。测试成功就说明OK了。

你可能感兴趣的:(tslib移植到arm(ubuntu 14))