Qt5.9+tslib1.4移植

先移植TSLIB

1、安装前的准备工作:
再root模式下安装下面软件。

# apt-get install autoconf# apt-get install automake# apt-get install libtool

2、下载tslib源码

3、配置

# ./autogen-clean.sh# ./autogen.sh# echo "ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache# ./configure --host=arm-none-linux-gnueabi  --cache-file=arm-none-linux-gnueabi.cache --enable-inputapi=no  --prefix=/opt/qt/juan/tslib

其中prefix下面配置的是你的安装路径

./autogen.sh 时,所出现一下提示:

解决方法:

添加红框内的语句。

4、编译
在终端里以root用户的身份进入tslib目录里面

执行make

执行make install

5.修改con内容

vi /opt/qt/juan/tslib/etc/ts.conf

将配置文件改为

module_raw inputmodule pthres pmin=1module variance delta=30module dejitter delta=100module linear

6.移动到开发板

将安装路径下的整个tslib文件夹,下载至开发板的上.

8、 设置开发板环境变量
通过超级终端, 打开环境变量文件/etc/profile

vi /etc/profile

添加如下内容:

export TSLIB_ROOT=/opt/sendinfo/tslib export TSLIB_TSDEVICE=/dev/input/event0 export QWS_MOUSE_PROTO=tslib:/dev/input/event0 export TSLIB_CALIBFILE=/etc/pointercal export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_CONSOLEDEVICE=none export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib

其中,TSLIB_ROOT更换为自己实际存放的路径;
另外,TSLIB_TSDEVICE 和QWS_MOUSE_PROTO这两项需要查看自己的板子的触摸屏设备对应/dev/input/下哪个文件

9.测试

小问题汇总:

1.测试时发现输出的x,y轴的值相等

原因:发现是linux内核驱动不支持触摸屏硬件。

解决方法:在内核驱动的USB设备里添加触摸屏设备

再在内核目录下运行make menuconfig选择要配置的设备。

运行make uImage

2.ts_open: No such file or directory

原因:设备路径配置错误

解决方法:

1.查看设备是event几

cd /dev/ls

2.打开配置  vi /etc/profile

export TSLIB_TSDEVICE=/dev/input/event0 

3.Couldnt open tslib config file: No such file or directory ts_config: Illegal seek
  

解决办法:#export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf

更多问题见:https://blog.csdn.net/xiaoyangger/article/details/5369961

 

再移植QT5.9

本人参考博客:https://blog.csdn.net/vickycheung3/article/details/82182136

1.官网下载源码包 qt-everywhere-opensource-src-5.9.5.tar.xz

2.解压

3.进入root模式,配置交叉编译器的路径,输入(arm + Tab键)看是否有交叉编译器显示

4.修改qmake.conf配置

cd qt-everywhere-opensource-src-5.9.5

vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

5.根据需求添加配置

./configure \    -v \    -prefix /opt/sendinfo \    -sysroot /opt/chain/arm-2014.05/arm-none-linux-gnueabi \    -release \    -static \ -make libs \    -xplatform arm-linux-gnueabi-g++ \    -optimized-qmake \    -pch \    -qt-zlib \    -no-opengl \    -no-sse2 \    -no-openssl \    -no-cups \    -no-separate-debug-info \    -nomake examples -nomake tools \-tslib \-I/opt/wlj/tslib-transplant/juan/tslib/include \-L/opt/wlj/tslib-transplant/juan/tslib/lib

static为静态库,若要使用电容触摸屏需要添加最后三行。

configure命令执行完毕后会出现如下界面,查看自己选择的需要编译的功能。

6.make&&make install  此过程需要大约两个小时

7.将编译安装得到的lib、plugins拷贝到开发板中,lib中存放的是QT程序运行所需的动态库文件,plugins中存放的应该是所需的插件。

8.配置开发环境并运行程序。vi /etc/profile

#export LD_LIBRARY_PATH=/lib                                                                                     export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0                                              export QT_QPA_FONTDIR=/lib/fonts                                                        export LD_PRELOAD=/system/lib/preloadable_libiconv.so                                   export PATH=/opt/wlj/Qt5.9/bin:$PATH export TSLIB_ROOT=/opt/wlj/tslibexport TSLIB_TSDEVICE=/dev/event10export QWS_MOUSE_PROTO=tslib:/dev/event10export TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.confexport TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport TSLIB_FBDEVICE=/dev/fb0export TSLIB_CONSOLEDEVICE=noneexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/libexport QT_QPA_GENERIC_PLUGINS=tslib:/dev/event10export LD_LIBRARY_PATH=/opt/wlj/Qt5.9/libexport QT_QPA_PLATFORM_PLUGIN_PATH=/opt/wlj/Qt5.9/plugins#export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0#export QT_QPA_FONTDIR=opt/wlj/lib/fontsexport QT_PLUGIN_PATH=$QT_ROOT/plugins/export QT_ROOT=/opt/wlj/Qt5.9export LD_PRELOAD=$TSLIB_ROOT/lib/libts.so export QT_QPA_GENERIC_PLUGINS=evdevmouse:/dev/event1 

注意:export  LD_PRELOAD=$TSLIB_ROOT/lib/libts.so 特别重要

          export QT_QPA_GENERIC_PLUGINS=evdevmouse:/dev/event1  鼠标

原因:初始tslib会动态加载tslib的一些模块,这四个模块pthres、variance、dejitter、linear会用到libts.so这个库里的一个函数tslib_parse_vars;

而tslib的测试程序已经动态链接了libts.so,加载 tslib的上速模块时能够正确识别函数tslib_parse_vars。

所以需要在 /etc/profile中动态链接到库libts.so
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值