10_QT系统移植之在开发板上部署QT运行环境
QT系统移植之在开发板上部署QT运行环境
一.开始部署
1.我们在Ubuntu新创建一个文件夹,然后把我们用busybox做好的文件系统拷贝到这个文件下。如下图所示:
2.然后我们解压这个根文件系统到当前所在的路径下。
3.我们在这个解压出来的根文件系统下新创建一个opt的文件夹,如下图所示:
4.我们把上节课编译好的触摸和QT拷贝到我们在这个路径下新创建的opt目录下,如下图所示:
5.我们返回到解压根文件系统的目录下
6.然后我们打开根文件系统的etc/profile文件,并添加一下内容:
添加以下内容:
EVENT=$(cat /proc/bus/input/devices | grep -E 'TSC2007|ft5x0x_ts|goodix-ts' -A4 | tail -n1 | awk '{print $NF}')
export TSLIB_ROOT=/opt/tslib1.4
export TSLIB_TSDEVICE=/dev/input/$EVENT
export TSLIB_CONFFILE=/opt/tslib1.4/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_PLUGINDIR=/opt/tslib1.4/lib/ts
export TSLIB_CONSOLEDEVICE=none
export QT_ROOT=/opt/qt5.7.0
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:$TSLIB_ROOT/lib/
解释:
自动获取触摸的设备节点,变量EVENT的值可能是event0,event2.......等。
EVENT=$(cat /proc/bus/input/devices | grep -E 'TSC2007|ft5x0x_ts|goodix-ts' -A4 | tail -n1 | awk '{print $NF}')
触摸库所在的位置
export TSLIB_ROOT=/opt/tslib1.4
触摸屏设备文件
export TSLIB_TSDEVICE=/dev/input/$EVENT
tslib模块配置文件
export TSLIB_CONFFILE=/opt/tslib1.4/etc/ts.conf
指定触摸屏校准文件pintercal的存放位置
export TSLIB_CALIBFILE=/etc/pointercal
设定控制台设备为 none ,否则默认为 /dev/tty ,这样可以避免出现“ open consoledevice: No such file or directory KDSETMODE: Bad file descriptor ” 的错误
export TSLIB_CONSOLEDEVICE=none
qt库所在的路径
export QT_ROOT=/opt/qt5.7.0
qt字库的目录
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
qt插件的目录
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
指定帧缓冲设备/dev/fb0
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
添加QT和触摸库的环境变量
export LD_LIBRARY_PATH= /lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:$TSLIB_ROOT/lib/
7.把视频所在目录下的字库文件拷贝到根文件系统的qt库的/lib/fonts下,没有这个路径手动创建一个路径,如下图所示:
8.然后我们回到根文件系统的lib目录下,将视频目录下的libstdc.tar.gz拷贝到lib解压,并输入命令:
ln -s libstdc++.so.6.0.19 libstdc++.so.6
如下图所示:
9.然后我们把视频目录下的测试历程拷贝到根文件系统的opt目录下,并改成777权限,如下图所示:
10.然后我们打包这个文件系统,并烧写到开发板上测试。如下图所示:
测试:触摸不准
在profile文件下添加环境变量。
export QT_QPA_FB_TSLIB=1