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 input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module 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.测试
原因:发现是linux内核驱动不支持触摸屏硬件。
解决方法:在内核驱动的USB设备里添加触摸屏设备
再在内核目录下运行make menuconfig选择要配置的设备。
运行make uImage
原因:设备路径配置错误
解决方法:
1.查看设备是event几
cd /dev/
ls
2.打开配置 vi /etc/profile
export TSLIB_TSDEVICE=/dev/input/event0
解决办法:#export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
更多问题见:https://blog.csdn.net/xiaoyangger/article/details/5369961
本人参考博客: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/tslib
export TSLIB_TSDEVICE=/dev/event10
export QWS_MOUSE_PROTO=tslib:/dev/event10
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
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/event10
export LD_LIBRARY_PATH=/opt/wlj/Qt5.9/lib
export 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/fonts
export QT_PLUGIN_PATH=$QT_ROOT/plugins/
export QT_ROOT=/opt/wlj/Qt5.9
export 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