飞凌 RK3568 开发环境搭建与源码编译完全指南
本文详细介绍飞凌 OK3568-C 开发板的开发环境搭建、系统源码编译、Qt 应用程序开发等完整流程,适合嵌入式 Linux 开发者参考学习。
一、前言
RK3568 是瑞芯微推出的一款高性能、低功耗的 ARM64 架构处理器,广泛应用于工业控制、智能家居、边缘计算等领域。飞凌嵌入式推出的 OK3568-C 开发板,预装了基于 Ubuntu 22.04 的 Forlinx Desktop 系统,为开发者提供了便捷的开发体验。
本文将手把手教您完成以下内容:
-
开发环境搭建与配置 -
系统源码全编译流程 -
内核单独编译方法 -
Qt 应用程序开发与调试 -
QEMU 模拟环境使用技巧
二、开发环境说明
2.1 硬件要求
|
|
|
|---|---|
|
|
|
|
|
|
|
|
8GB 及以上
|
|
|
|
|
|
|
2.2 软件版本信息
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2.3 重要提示
注意: 源码编译对内存要求较高,请确保开发机内存不低于 8GB。如果使用飞凌提供的虚拟机镜像,请勿修改内存配置。
三、开发环境准备
3.1 安装 VMware 虚拟机(可选)
如果您使用 Windows 系统,推荐使用 VMware Workstation 运行 Ubuntu 开发环境。
下载地址: VMware 官网
安装步骤:
-
下载 VMware Workstation 安装包 -
双击安装,按提示完成安装 -
导入飞凌提供的 Ubuntu 虚拟机镜像
3.2 配置 Ubuntu 开发环境
如果需要自行搭建开发环境,请执行以下步骤:
# 更新软件源sudo apt update# 安装基础开发工具sudo apt install -y build-essential git vim net-tools# 安装交叉编译工具链sudo apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu# 验证工具链安装aarch64-linux-gnu-gcc --version
aarch64-linux-gnu-gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0Copyright (C) 2021 Free Software Foundation, Inc....
3.3 安装 QEMU 模拟工具
QEMU 用于在 x86 主机上模拟 ARM64 环境,方便进行应用开发和调试:
# 安装 QEMU 用户态模拟器sudo apt update && sudo apt install qemu-user-static# 验证安装qemu-aarch64-static --version
四、源码编译流程
4.1 准备源码
步骤 1:创建工作目录
# 创建工作目录mkdir -p /home/forlinx/3568# 切换到工作目录cd /home/forlinx/3568
步骤 2:拷贝源码文件
从飞凌提供的资料中拷贝源码文件到虚拟机:
源码位置:用户资料\Linux\源码\OK3568-linux-source.tar.bz2
如果源码是分卷压缩格式(.tar.bz2.00、.tar.bz2.01 等),需要先合并:
# 合并分卷压缩包cat OK3568_Linux_fs.tar.bz2.0* > OK3568_Linux_fs.tar.bz2
步骤 3:解压源码
# 解压源码(需要较长时间,请耐心等待)tar -xvf OK3568_Linux_fs.tar.bz2# 查看解压结果ls -la
解压后会生成 OK3568_Linux_fs 目录,包含完整的系统源码。
4.2 全编译流程
步骤 1:进入源码目录
cd /home/forlinx/3568/OK3568_Linux_fs
步骤 2:选择编译配置
# 运行配置脚本./build.sh defconfig
Which would you like? [1]:1. OK3568-C-BUILDROOT-DEFCONFIG2. OK3568-C-DEBIAN11-DEFCONFIG3. OK3568-C-UBUNTU22-DEFCONFIG4. OK3568-C-LINUXRT-DEFCONFIG...
输入 3 选择 Ubuntu 22.04 配置,按回车确认。
步骤 3:执行全编译
# 开始全编译(首次编译约需 1-2 小时)./build.sh
编译过程中会显示进度信息,请耐心等待。
步骤 4:查看编译结果
编译成功后,镜像文件位于 rockdev 目录:
# 查看编译输出ls -la rockdev/
主要文件说明:
|
|
|
|---|---|
update.img |
|
boot.img |
|
MiniLoaderAll.bin |
|
parameter.txt |
|
4.3 单独编译内核
如果只修改了内核配置,可以单独编译内核,节省编译时间:
# 进入内核源码目录cd /home/forlinx/3568/OK3568_Linux_fs/kernel# 配置内核(可选,修改内核配置时执行)make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig# 编译内核make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j$(nproc)# 编译设备树make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dtbs
编译完成后,内核镜像位于:
arch/arm64/boot/Image
– 内核镜像 arch/arm64/boot/dts/rockchip/*.dtb
– 设备树文件
重要提示: 单独编译的内核不会自动更新到
update.img中,需要使用分步烧写方式烧录boot.img。
4.4 清除编译文件
如需重新编译,可以清除之前的编译结果:
# 清除内核编译文件cd /home/forlinx/3568/OK3568_Linux_fs/kernelmake ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- distclean# 清除所有编译文件./build.sh clean
五、Qt 应用程序开发
5.1 开发环境搭建
飞凌提供的系统已移植 Qt 5.15.3,支持在开发板上直接编译和运行 Qt 程序。
方法一:使用 QEMU 模拟环境(推荐)
步骤 1:挂载 ARM Ubuntu 文件系统
# 进入源码目录cd /home/forlinx/3568/OK3568_Linux_fs/ubuntu# 创建挂载目录mkdir -p ubuntufs# 挂载 rootfs 镜像sudo mount jammy-rootfs.img ubuntufs/# 查看文件系统内容ls ubuntufs/
bin boot camera_engine_rkaiq_rk3568_arm64.deb dev etc homelib lost+found media mnt opt proc qopenglwidgetrknpu2-v1.5.0.tar root run sbin snap srv sys tmp usr var
# 将 Qt 程序源码拷贝到文件系统sudo cp -r /path/to/your/qt_project ubuntufs/home/forlinx/
# 进入 chroot 环境sudo chroot ubuntufs/# 此时已进入 ARM64 环境,可以执行 ARM 程序
# 在 ARM 环境中编译cd /home/forlinx/qt_projectqmakemake
# 退出 chroot 环境exit# 解挂文件系统sudo umount ubuntufs/
方法二:开发板本地编译
步骤 1:传输源码到开发板
# 使用 SCP 传输源码scp -r qt_project forlinx@192.168.x.x:/home/forlinx/
# SSH 连接到开发板ssh forlinx@192.168.x.x# 进入项目目录cd /home/forlinx/qt_project# 编译程序qmakemake
5.2 Qt OpenGL 示例程序
飞凌提供了 Qt OpenGL 示例程序 qopenglwidget,可用于验证 Qt 环境:
在开发板上运行:
# 配置动态链接库路径export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu/# 运行示例程序./fltest_qt_qopenglwidget
5.3 Qt 环境验证
验证 Qt 安装状态:
# 查看 Qt 版本qmake --version# 查看已安装的 Qt 模块dpkg -l | grep qt5# 查看 Qt 插件ls /usr/lib/aarch64-linux-gnu/qt5/plugins/
六、镜像烧写说明
6.1 完整烧写(update.img)
适用于首次烧写或需要完全重置系统的情况:
-
将 update.img拷贝到 Windows 电脑 -
使用 RKDevTool 工具连接开发板 -
开发板进入 Loader 模式(按住 Recovery 键上电) -
选择镜像文件,点击”升级”
6.2 分步烧写
适用于单独更新内核或某个分区:
-
将开发板进入 Loader 模式 -
使用 RKDevTool 选择对应的分区镜像 -
分别烧写 boot.img、rootfs.img等
七、常见问题与解决方案
7.1 编译相关
问题 1:编译报错 “virtual memory exhausted”
原因: 内存不足
解决方案:
# 增加 swap 空间sudo fallocate -l 8G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfile
问题 2:找不到交叉编译工具链
解决方案:
# 安装工具链sudo apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu# 或使用源码中提供的工具链export PATH=/home/forlinx/3568/OK3568_Linux_fs/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin:$PATH
7.2 Qt 相关
问题 1:Qt 程序运行报错 “cannot find -lQt5Core”
解决方案:
# 配置库路径export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH# 更新链接库缓存sudo ldconfig
问题 2:Qt 程序无法显示图形界面
解决方案:
# 设置 Qt 平台插件export QT_QPA_PLATFORM=eglfs # 嵌入式设备export QT_QPA_PLATFORM=xcb # X11 桌面export QT_QPA_PLATFORM=wayland # Wayland
7.3 QEMU 相关
问题:chroot 报错 “cannot execute: Exec format error”
原因: 未正确配置 QEMU
解决方案:
# 确保 qemu-user-static 已安装sudo apt install qemu-user-static# 注册 binfmtsudo update-binfmts --enable qemu-aarch64
八、开发技巧与最佳实践
8.1 提高编译效率
# 使用多核编译make -j$(nproc)# 使用 ccache 加速编译sudo apt install ccacheexport USE_CCACHE=1
8.2 版本管理
# 为修改的文件创建补丁diff -u original_file modified_file > my_patch.patch# 应用补丁patch -p1 < my_patch.patch
8.3 调试技巧
# 内核调试信息dmesg | tail -100# 查看系统日志journalctl -f# 网络调试tcpdump -i eth0 -w capture.pcap
九、总结
本文详细介绍了飞凌 OK3568-C 开发板的开发环境搭建、源码编译和 Qt 应用开发流程。通过本文的学习,您应该能够:
-
搭建完整的 Ubuntu 开发环境 -
完成系统源码的全编译和内核单独编译 -
使用 QEMU 模拟环境进行应用开发 -
在开发板上编译和运行 Qt 程序
RK3568 作为一款高性能 ARM 处理器,在工业控制、边缘计算等领域有着广泛的应用前景。掌握其开发流程,将为您的嵌入式开发之路打下坚实基础。
参考资料
-
飞凌嵌入式官方文档 -
瑞芯微 RK3568 技术手册 -
Ubuntu 22.04 官方文档 -
Qt 5.15 官方文档
作者: 李江军
日期: 2026-04-14
平台: 飞凌 OK3568-C 开发板
关注公众号,获取更多嵌入式开发教程!
夜雨聆风