保姆级教程:在Luckfox RV1106 Pro Max上,从SDK编译到Qt5应用部署全流程(Ubuntu 22.04)

张开发
2026/4/19 17:14:22 15 分钟阅读

分享文章

保姆级教程:在Luckfox RV1106 Pro Max上,从SDK编译到Qt5应用部署全流程(Ubuntu 22.04)
从零构建Luckfox RV1106 Pro Max的Qt5开发环境完整实战指南当一块搭载RV1106芯片的Luckfox开发板初次握在手中时许多开发者都会面临一个现实问题如何在这个资源受限的嵌入式平台上运行现代化的Qt图形界面本文将带你完整走通从Ubuntu环境配置到Qt应用部署的全流程特别针对Pro Max型号的SPI NAND版本解决那些官方文档未曾提及的坑。1. 开发环境准备与SDK获取在Ubuntu 22.04 LTS上搭建基础环境是第一步。不同于常规嵌入式开发Luckfox的Buildroot系统需要特定版本的依赖库。执行以下命令安装必备工具sudo apt update sudo apt install -y git ssh make gcc g gawk texinfo libssl-dev \ bison flex fakeroot cmake unzip gperf autoconf device-tree-compiler \ libncurses5-dev pkg-config bc python3 rsync特别注意如果之前安装过其他版本的工具链建议使用docker run -it ubuntu:22.04创建纯净环境避免库版本冲突。获取官方SDK推荐使用国内镜像源mkdir -p ~/luckfox_ws cd ~/luckfox_ws git clone https://gitee.com/LuckfoxTECH/luckfox-pico.git --depth1SDK目录结构关键部分说明luckfox-pico/ ├── project/ # 板级配置文件 ├── sysdrv/ # 内核与Buildroot源码 ├── tools/ # 交叉编译工具链 └── output/ # 编译输出目录2. Buildroot系统定制与Qt5配置进入Buildroot配置界面前需要先设置目标板型号cd ~/luckfox_ws/luckfox-pico vim project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk确认包含export LF_TARGET_ROOTFSbuildroot启动菜单配置cd sysdrv/source/buildroot/buildroot-2023.02.6/ make luckfox_pico_defconfig make menuconfigQt5相关配置路径及选项配置路径必选选项说明Target Packages → Graphic libraries → qt5qt5base基础框架qt5base子选项widgets, guiGUI组件支持qt5base → OpenGLeglfs, linuxfb显示后端支持Libraries → Graphicslibdrm, mesa3d硬件加速支持Libraries → Othertslib触摸屏支持关键技巧使用/键搜索st7735快速定位到屏幕驱动配置项确保以下选项启用Device Drivers → Staging drivers → Support for small TFT LCD display modules3. 设备树与显示驱动深度配置对于1.8寸ST7735S SPI屏幕需要修改rv1103g-luckfox-pico-plus.dts文件// 禁用冲突的UART3 uart3 { status disabled; }; // 配置SPI0控制器 spi0 { status okay; pinctrl-names default; pinctrl-0 spi0m0_pins; cs-gpios gpio1 RK_PC0 GPIO_ACTIVE_LOW; st7735s: st7735s0 { compatible sitronix,st7735r; reg 0; spi-max-frequency 48000000; reset-gpios gpio1 RK_PD0 GPIO_ACTIVE_LOW; dc-gpios gpio1 RK_PD1 GPIO_ACTIVE_HIGH; rotation 90; buswidth 8; fps 30; spi-cpol; spi-cpha; rgb; }; };配置完成后保存并编译内核cd ~/luckfox_ws/luckfox-pico/sysdrv/source/kernel make ARCHarm savedefconfig cp defconfig arch/arm/configs/luckfox_rv1106_linux_defconfig4. 系统编译与烧录实战完整编译流程需要分步执行# 安装工具链 source ~/luckfox_ws/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/env_install_toolchain.sh # 设置环境变量 echo export PATH$PATH:~/luckfox_ws/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin ~/.bashrc source ~/.bashrc # 完整编译 cd ~/luckfox_ws/luckfox-pico echo 8 | ./build.sh lunch ./build.sh编译完成后在output/image目录会生成以下关键文件luckfox-pico-pro-max-spi-nand-ipc.img系统镜像boot.img启动分区env.txt环境变量配置使用瑞芯微开发工具RKDevTool烧录时常见问题解决方案设备无法进入Loader模式按住BOOT键再插USB执行lsusb确认出现2207:350a设备烧录失败错误码7sudo apt install libusb-1.0-0-dev sudo chmod arw /dev/bus/usb/*5. Qt Creator交叉编译环境配置在Ubuntu主机上配置Qt Creator的完整流程工具链设置编译器路径~/luckfox_ws/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/bin/arm-rockchip830-linux-uclibcgnueabihf-gqmake路径~/luckfox_ws/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/bin/qmakeKit配置关键参数[Device] TypeGeneric NameLuckfox RV1106 [Build] SysRoot~/luckfox_ws/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot [Debug] Debugger~/luckfox_ws/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-gdb部署配置示例target.path /userdata INSTALLS target QMAKE_LFLAGS -Wl,-rpath-link,/usr/lib6. 实战部署analogclock示例在开发板上配置Qt运行环境vi /etc/profile添加以下内容export QT_QPA_PLATFORMlinuxfb:fb/dev/fb0 export QT_QPA_FONTDIR/usr/share/fonts export QT_QPA_GENERIC_PLUGINStslib:/dev/input/event0 export TSLIB_TSDEVICE/dev/input/event0 export TSLIB_CONFFILE/etc/ts.conf通过SCP部署程序scp analogclock root192.168.1.100:/userdata ssh root192.168.1.100 chmod x /userdata/analogclock性能优化技巧在main.cpp中添加qputenv(QT_LOGGING_RULES, qt.qpa.*false);禁用冗余日志使用-platform linuxfb:fb/dev/fb0:size160x128指定精确分辨率启用硬件加速时添加QT_OPENGLsoftware环境变量7. 高级调试与问题排查当遇到显示异常时按以下步骤排查检查帧缓冲区cat /dev/urandom /dev/fb0应该看到屏幕出现随机噪点验证输入设备evtest /dev/input/event0触摸屏幕应有事件输出Qt调试输出export QT_DEBUG_PLUGINS1 ./analogclock -platform linuxfb 21 | tee qt.log常见错误解决方案表错误现象可能原因解决方案黑屏无输出屏幕驱动未加载检查dmesg输出确认spi设备注册花屏/错位设备树rotation参数错误尝试0/90/180/270不同角度值触摸无响应tslib配置错误校准触摸屏ts_calibrate段错误库路径不匹配使用ldd检查依赖关系8. 扩展应用自定义Qt控件开发在资源受限的RV1106上开发Qt应用需要特别注意内存优化技巧在.pro文件中添加QMAKE_CXXFLAGS -Os DEFINES QT_NO_DEBUG_OUTPUT使用QWidget::setAttribute(Qt::WA_DeleteOnClose)高效绘图方案// 使用QPainter的硬件加速路径 QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing, false); painter.setRenderHint(QPainter::SmoothPixmapTransform, false);资源文件优化rcc -binary myres.qrc -o myres.rcc将生成的rcc文件放入开发板/usr/share/qt5/resources/目录通过完整的开发环境搭建、系统定制到应用部署的闭环实践Luckfox RV1106 Pro Max完全能够胜任各类工业级Qt应用场景。实际项目中建议将编译好的根文件系统制作为SDK供团队共享使用大幅提升后续开发效率。

更多文章