概述
Buildroot 路线将 Qt5 作为根文件系统的一部分整体编译,最终产出一个包含 Qt 运行库的最小化 Linux 镜像:
- 轻量:无桌面环境,系统资源全部留给应用
- 全屏 eglfs:Qt 应用直接通过 KMS/DRM 驱动显示,绕过 X11/Wayland
- 一体化:Qt 库、工具链、内核镜像在同一套构建系统中管理,版本一致性有保障
SDK 路径:/home/lckfb/TaishanPi-3-Linux Qt 版本:5.15.11(由 buildroot/package/qt5/qt5.mk 定义)
前置条件
- 已按照环境搭建完成依赖包安装
- 主机满足最低编译配置:8 核 CPU、16 GB 内存、150 GB 可用存储
在 Buildroot 中启用 Qt5
进入 menuconfig
# 进入 SDK 根目录
cd /home/lckfb/TaishanPi-3-Linux
# 交互式选择(推荐)
./build.sh lunch
# 选择 tspi_3m_rk3576_buildroot_defconfig
# 直接打开 menuconfig
./build.sh bconfig2
3
4
5
6
7
8
9
bconfig打开 Buildroot 的 menuconfig 配置界面。保存后会自动更新默认配置文件(buildroot/configs/rockchip_rk3576_defconfig)。
关键配置项
完整模块清单请参考 Buildroot Qt5 模块配置参考
在 menuconfig 中导航到:Target packages → Graphic libraries and applications (graphic/text) → Qt5
| 配置项 | 说明 | 是否必选 |
|---|---|---|
BR2_PACKAGE_QT5 | Qt5 总开关 | 必选 |
BR2_PACKAGE_QT5BASE | Qt5 核心库(QtCore/Network/Gui 等) | 必选 |
BR2_PACKAGE_QT5BASE_FONTCONFIG | Fontconfig 字体管理 | 必选 |
BR2_PACKAGE_QT5BASE_GUI | GUI 模块 | 必选 |
BR2_PACKAGE_QT5BASE_WIDGETS | Widgets 模块 | 必选 |
BR2_PACKAGE_QT5BASE_OPENGL | OpenGL 支持 | 必选 |
BR2_PACKAGE_QT5BASE_EGLFS | eglfs 后端(全屏应用必需) | 必选 |
BR2_PACKAGE_QT5BASE_DEFAULT_QPA | 设为 eglfs | 必选 |
BR2_PACKAGE_NFS_UTILS | NFS 工具 | 可选 |
BR2_PACKAGE_QT5BASE_LINUXFB | linuxfb 后端(备用,无 GPU 时可用) | 可选 |
BR2_PACKAGE_QT5DECLARATIVE | QML 支持 | 按需 |
BR2_PACKAGE_QT5QUICKCONTROLS2 | Quick Controls 2 | 按需 |
BR2_PACKAGE_QT5SVG | SVG 支持 | 按需 |
BR2_PACKAGE_QT5MULTIMEDIA | 多媒体支持 | 按需 |
建议同时启用 NFS 客户端
后续通信通道配置中推荐使用 NFS 进行开发迭代。为避免后续返工重新编译,建议在此阶段一并启用:
Target packages → Networking applications → nfs-utils(勾选 BR2_PACKAGE_NFS_UTILS)
eglfs_kms 后端依赖 Mali GPU 驱动,需同时确认:
Target packages → Hardware handling → Firmware → rockchip-mali
→ BR2_PACKAGE_ROCKCHIP_MALI=y2
编译 Qt5
全量编译(推荐首次使用)
cd /home/lckfb/TaishanPi-3-Linux
./build.sh all2
单独编译 Qt5 包
# 首次编译 Qt5
./build.sh bmake:qt5base
# 强制重新编译(修改配置后使用)
./build.sh bmake:qt5base-rebuild2
3
4
5
编译产物
编译完成后,产物分布在 buildroot/output/rockchip_rk3576/ 下:
| 路径 | 内容 |
|---|---|
host/bin/qmake | 交叉编译用 qmake |
host/bin/ | Qt host 工具(moc、rcc、uic 等)及 Buildroot 交叉编译器 |
host/share/buildroot/toolchainfile.cmake | Buildroot 自动生成的 CMake 工具链文件 |
staging/usr/include/qt5/ | Qt5 头文件 |
staging/usr/lib/libQt5*.so | Qt5 共享库(链接用) |
staging/usr/lib/cmake/ | Qt5 CMake 配置文件 |
target/usr/lib/libQt5*.so | 部署到板子上的 Qt5 运行库 |
staging/是host/aarch64-buildroot-linux-gnu/sysroot/的符号链接,是交叉编译器的 sysroot 目录。target/目录的内容会被打包进根文件系统镜像。
编译完成后必须重新烧录
如果板子当前运行的镜像不包含 Qt 运行库,必须将新编译的镜像烧录到开发板。跳过此步骤会导致后续 Qt 程序因缺少运行库而无法启动。烧录方法参见系统烧录。