1. 部署Qt应用到板卡¶
在“Buildroot根文件系统的构建”章节中,我们构建出了最基础的根文件系统,默认没有勾选编译Qt的配置项,那么如何运行Qt程序呢? 当然重新勾选Qt的配置项重新编译根文件系统也是一种方法,但是这种方法不能自由选择Qt版本,一些配置编译选项也可能没有。 因此,对于Buildroot系统往往更倾向于自己下载Qt源码,交叉编译源码后部署到板卡。
本章节将结合 《嵌入式Qt应用开发实战指南——基于LubanCat-i.MX6ULL开发板》 内容进行说明。
1.1. Qt环境搭建¶
野火提供了搭建好Qt环境的虚拟机,如果不想自己搭建可直接使用野火搭建好的。
百度云链接:https://pan.baidu.com/s/1pXiC0HtTfcQiDN073PyXlA 提取码:hosd ,该虚拟机使用参考链接中的“虚拟机说明.md”。
如果需要自行搭建以下结合Qt应用开发实战指南作简要步骤说明。
1.1.1. Qt环境搭建–X86¶
参考Qt应用开发实战指南的 Qt环境搭建–X86 章节, 在虚拟机中安装 Qt Creator。
1.1.2. Qt环境搭建–交叉编译¶
参考Qt应用开发实战指南的 Qt环境搭建–交叉编译 章节, 在虚拟机中安装交叉编译工具链。
1.1.3. Qt环境搭建–ARM¶
参考Qt应用开发实战指南的 Qt环境搭建–ARM 章节, 在交叉编译Qt源码前需要交叉编译tslib和alsa:
交叉编译tslib和alsa后,再交叉编译Qt源码
以上三者编译成功后,编译生成的产物位于/opt/目录下:
tslib:/opt/tslib-1.21
alsa:/opt/alsa-lib-1.2.2
Qt:/opt/qt-everywhere-src-5.11.3
1.1.4. Qt环境搭建–板卡¶
将前面编译出的编译产物分别压缩,传到板卡,再进行解压,也可以访问资料网盘/6-开发软件/QT章节脚本与软件/交叉编译好的文件,获取对应编译好的产物。
在“外设接口使能”章节的“开启屏幕接口”小节已经讲解如何开启屏幕显示和触摸,可自行修改设备树,编译并重新烧录来开启屏幕接口。
1.1.4.1. 安装tslib¶
拷贝tslib-1.21.tar.gz到板卡并解压到/opt目录:
1 | tar xvf tslib-1.21.tar.gz -C /opt
|
配置环境变量,修改/etc/profile文件,在文件末尾添加以下内容:
1 2 3 4 5 6 7 8 | export TSLIB_ROOT=/opt/tslib-1.21
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export LD_PRELOAD=$TSLIB_ROOT/lib/libts.so
|
以上环境变量指定使用/opt/目录下的tslib,避免与系统原有的tslib冲突,然后执行以下命令重新加载配置文件并进行测试:
1 2 3 4 5 | #重新加载环境配置
source /etc/profile
#运行测试
/opt/tslib-1.21/bin/ts_test
|
如果屏幕出现测试界面则配置成功。
1.1.4.2. 安装Qt¶
拷贝qt-everywhere-src-5.11.3.tar.gz到板卡并解压到/opt目录:
1 2 3 4 5 6 7 | #解压
tar xvf qt-everywhere-src-5.11.3.tar.gz -C /opt
#查看文件
ls /opt/qt-everywhere-src-5.11.3
bin examples lib plugins qtvirtualkeyboard
doc include mkspecs qml translations
|
examples:该目录包含了大量的Qt示例代码,建议删除。
doc:该目录包含Qt的说明文档,建议删除。
mkspecs:该目录包含不同平台和编译器的配置文件,用于指导Qt的构建过程,建议删除。
translations:目录包含了Qt界面的多语言翻译文件,按需删除。
其他目录需要保留。
配置环境变量,修改/etc/profile文件,在文件末尾添加以下内容:
1 2 3 4 5 6 7 8 9 | export QT_ROOT=/opt/qt-everywhere-src-5.11.3
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1
export QT_QPA_FONTDIR=/opt/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export LD_LIBRARY_PATH=$QT_ROOT/lib:$QT_ROOT/plugins/platforms
export QML2_IMPORT_PATH=$QT_ROOT/qml
export QT_QPA_FB_TSLIB=1
|
值得注意的是QT_QPA_FONTDIR指定了字体文件目录,可自行添加字体到/opt/fonts目录,
此处提供作者提前下载好,可免费商用的 思源宋体
方便大家测试,也可自行下载其他字体。
环境配置好后可在虚拟机交叉编译Qt程序传到板卡运行,作者此处提供编译好的Qt官方例程供大家测试:
将字体和测试程序传到板卡,然后运行测试:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #解压字体文件
tar xvf fonts.tar.gz -C /opt/
#重新加载环境配置
source /etc/profile
#给测试程序加运行权限
chmod 777 analogclock
chmod 777 basiclayouts
#运行测试
./analogclock
./basiclayouts
|
效果如下:

