一、开始部署
1.我们在 Ubuntu 新创建一个文件夹qt_system,然后把我们用 busybox 做好的文件系统rootfs.tar.bz2拷贝到这个文件夹下
mkdir qt_system
cd qt_system
2.解压rootfs.tar.bz2,如下图
tar -xvf rootfs.tar.bz2
3.我们在这个解压出来的根文件系统下新创建一个 opt 的文件夹
mkdir opt
4.我们把之前编译好的触摸和 QT 拷贝到我们在这个路径下新创建的 opt 目录下
cp -rf /opt/qt5.7.0/ .
cp -rf /opt/tslib1.4/ .
5. 我们返回到解压根文件系统的目录下,然后我们打开根文件系统的 etc/profile 文件,并添加一下内容
vi 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=noneexport 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/fb0export 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/$EVENTtslib模块配置文件
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=noneqt库所在的路径
export QT_ROOT=/opt/qt5.7.0qt字库的目录
export QT_QPA_FONTDIR=$QT_ROOT/lib/fontsqt插件的目录
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/
6.把字库文件wenquanyi.ttf 拷贝到根文件系统的qt库的/lib/fonts下,没有这个路径手动创建一个路径
7.然后我们回到根文件系统的lib目录下,将 libstdc.tar.gz 拷贝到lib目录下解压,并输入以下命令:
ln -s libstdc++.so.6.0.19 libstdc++.so.6
8.把我们的测试历程 fingerpaint 拷贝到根文件系统的opt目录下,并改成777权限,如下图所示:
chmod 777 fingerpaint
9.然后我们打包这个文件系统,并烧写到开发板上测试
tar -cjf rootfs.tar.bz2 ./*
这里对tar命令要了解一下,我们打包的是 .tar.bz2 ,所以加了-j的参数,使用 bzip2 方式进行处理;而-z,使用 gzip 方式进行处理,打包的是 .tar.gz
二、测试
1.烧写完毕之后,进入到文件系统的 /opt/tslib1.4/bin 目录下
cd /opt/tslib1.4/bin
2. 运行程序
./ts_calibrate
即可看到屏幕,有5个小点,分别点击进行测试
3.其他程序测试
和上面类似的其他程序,./ts_test
回到/opt目录下,测试fingerpaint程序,./fingerpaint
4.测试完毕我没有问题,如果有触摸不准,则在profile文件底下添加环境变量
export QT_QPA_FB_TSLIB=1
重启后删除校准文件:rm /etc/pointercal