RK3506 ARM-A7 32 位 Buildroot 系统编译配置教程(合众恒跃 HZ-RK3506-MiniEVM SDK 版) 📅 2026/7/13 8:50:26 摘要本文详细介绍了基于合众恒跃原厂 HZ-EVM-RK3506_MINI_SDK_v1.1.0 为 RK3506 Cortex-A7 32 位 ARM 平台定制 Buildroot 根文件系统的完整流程。内容涵盖编译主机环境搭建、SDK 导入与配置、Buildroot 系统裁剪包括目标架构选择、系统组件裁剪、业务依赖预装、业务文件 overlay 打包、三种编译方式整体/单独/清理、固件烧录与板端验证并总结了针对 32 位 A7 工控网关的专属踩坑点。本方案专为工业 PLC 采集网关场景设计实现系统极致轻量化与业务程序一键预装满足工控产品量产交付需求。一、前言本文基于合众恒跃原厂HZ-EVM-RK3506_MINI_SDK_v1.1.0完整 SDK针对RK3506 Cortex-A7 32 位 armhf 架构完整讲解 Buildroot 根文件系统编译、定制、固件打包全流程。本方案面向自研工业 PLC 采集网关场景系统极致裁剪预装 Python3、snap7、MQTT 相关依赖适配 S7-200-Smart 数据采集 自研物联网平台上云业务。 开发板合众恒跃 HZ-RK3506-MiniEVM3×A7 32 位 M0 实时核、双百兆以太网、Linux5.10 内核 SDK 版本HZ-EVM-RK3506_MINI_SDK_v1.1.0 根文件系统Buildroot放弃 Yocto/Debian轻量化、编译速度快、适合工控量产二、编译主机环境搭建2.1 软硬件要求宿主机系统Ubuntu 22.04 x86_6464 位推荐Ubuntu18.04 可兼容但需微调依赖硬件硬盘空闲≥40GCPU 多核i5-12400 及以上编译效率更佳网络全程联网SDK 编译需在线拉取第三方源码包2.2 一键安装全部编译依赖复制整条命令执行补齐 SDK 编译、设备树、Buildroot、交叉编译全套工具bash运行sudo apt-get update sudo apt-get install git ssh make gcc libssl-dev liblz4-tool expect expect-dev g patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g-multilib unzip device-tree-compiler ncurses-dev libgucharmap-2-90-dev bzip2 expat gpgv2 cpp-aarch64-linux-gnu libgmp-dev libmpc-dev bc python-is-python3 python2安装提示already the newest version直接忽略若编译时报缺失库根据报错补充对应包。三、SDK 导入与目录结构说明3.1 SDK 上传与解压通过 SFTP 将HZ-EVM-RK3506_MINI_SDK_v1.1.0.tar.gz上传至 Ubuntu/home/HZHY工作目录进入目录解压 SDK 压缩包bash运行cd /home/HZHY tar -zxvf HZ-EVM-RK3506_MINI_SDK_v1.1.0.tar.gz cd HZ-EVM-RK3506_MINI_SDK_v1.1.0解压完成生成完整 SDK 工程目录核心文件夹说明表格目录功能说明buildrootBuildroot 根文件系统源码本次教程核心kernelLinux5.10 内核源码、RK3506 设备树 dtsu-bootv2017.09 版本引导程序device/rockchip板级配置、编译打包脚本prebuilts官方预编译 armhf 交叉工具链无需手动编译rkbin瑞芯微固件二进制、ddr/loader 固件rockdev固件软链接目录映射 output/firmwareoutput编译输出镜像、中间文件、固件包toolsWindows/Linux 烧写、调试工具app官方 Demo可存放自研 PLC 采集 Python 程序external第三方库网络、安全、音视频驱动四、SDK 全局配置选择 Buildroot 根文件系统4.1 打开全局配置界面在 SDK 根目录执行全局配置命令bash运行make menuconfig界面提供全平台组件选择核心配置项说明Rootfs必须选择Buildroot不要选 Yocto/DebianLoader(u-boot)默认原厂配套 u-boot无需修改Kernel使用 RK3506 原厂 Linux5.10 defconfigAMP32 位 A7 工控网关可按需开启多核异构普通采集业务关闭Boot/Firmware/Update保持默认用于完整 update.img 打包Extra partitions可自定义分区存放业务配置文件、本地缓存。操作快捷键Y选中启用N取消/搜索配置项配置完成选择Save保存两次ESC退出配置界面持久化保存配置make savedefconfig防止配置丢失。4.2 内核单独配置开启以太网、TCP/IP、网络工具如需自定义内核网络、外设驱动执行内核配置命令bash运行./build.sh kernel-config工控网关必开内核选项完整 TCP/IP 协议栈、百兆以太网驱动tmpfs 内存文件系统关闭声卡、MIPI 显示、摄像头等无关外设放行 102 端口S7-200-Smart PLC 通信端口。五、Buildroot 内部定制配置32 位 ARM-A7 关键设置5.1 进入 Buildroot 配置界面两种方式全局编译时自动调用单独进入 buildroot 目录配置bash运行cd buildroot make menuconfig5.2 Target Options 目标架构重中之重避免 64 位段错误RK3506 为纯 32 位 Cortex-A7禁止选择 AArch64Target ArchitectureARMTarget Architecture Variantarmv7-aFloating point strategyHardware (NEON)硬件浮点ARM EABI versionEABIhfTarget CPUcortex-a7C 库推荐musl体积小、内存占用低适配低内存工控网关5.3 System 系统裁剪工控极简方案Hostnamerk3506-gatewayInit systemBusyBox init舍弃 systemd节省内存/dev 管理devtmpfs mdev开启 dropbear 轻量 SSH用于远程调试网关关闭 X11/Wayland 图形桌面、蓝牙、音频等无用组件。5.4 Target packages 预装业务依赖PLC 采集网关必备Python3 环境开启 python3、python3-threading、python3-json、python3-struct关闭 Python 多余编译模块缩减固件体积仅编译主机保留 pip开发板运行环境删除 pip无编译器禁止板端 pip 安装。网络与加密openssl、ca-certificatesMQTT TLS 加密上云必备iproute2、ping、telnet 网络调试工具。第三方底层库 snap7 将 snap7 源码添加为 Buildroot 本地 package交叉编译输出 armhf 架构libsnap7.so自动部署至/usr/lib。5.5 业务文件 overlay 打包一键预装采集程序在buildroot目录新建overlay文件夹所有文件编译时自动合并到 rootfsplaintextbuildroot/overlay/ ├── usr/bin/main.py # PLC采集MQTT上报主程序 ├── etc/config/.env # 自研云平台MQTT密钥 ├── etc/config/config.json # PLC全局配置 ├── etc/config/points.json # PLC点位映射表 └── etc/init.d/S99gateway # 网关开机自启脚本开机自启脚本S99gateway示例bash运行#!/bin/sh case $1 in start) echo Start RK3506 Industrial Gateway Service python3 /usr/bin/main.py ;; stop) killall -9 python3 ;; restart) $0 stop $0 start ;; esac添加可执行权限bash运行chmod 755 overlay/etc/init.d/S99gateway六、SDK 三种编译方式整体编译 / 单独编译 / 清理6.1 一键整体编译推荐自动打包完整 update.imgSDK 根目录直接执行自动编译 u-boot、kernel、buildroot 根文件系统、打包固件bash运行./build.sh编译耗时参考i5-12400 6 核 12 线程完整编译约 2 小时首次编译会在线下载源码包保证网络稳定。 编译完成固件输出路径output/firmware/update.img整机烧录完整镜像。6.2 单独分项编译仅编译 U-Bootbash运行./build.sh uboot输出镜像u-boot/uboot.img2. 仅编译 Kernel 内核bash运行./build.sh kernel输出镜像kernel/boot.img3. 仅编译 Buildroot 根文件系统bash运行./build.sh rootfs输出 rootfs 镜像output/buildroot/images/rootfs.ext46.3 清理编译缓存慎用全部重编译耗时久bash运行./build.sh cleanall该命令删除所有中间文件、固件镜像非必要不要执行仅修改架构、工具链时清理。七、固件烧录与板端环境验证烧写工具SDKtools/windows目录提供瑞芯微烧写工具将update.img完整烧入 RK3506 开发板上电 SSH 登录网关验证 32 位环境与依赖库bash运行# 校验Pythonsnap7库 python3 -c import snap7;print(snap7.__version__) # 网口连通PLC测试 ping 192.168.2.1 # 查看网关自启进程 ps aux | grep python3运行采集程序验证 S7-200-Smart 数据读取、MQTT 上报自研物联网平台功能。八、RK3506 32 位 A7 平台专属踩坑总结架构选错直接段错误SDK 全局配置 Buildroot 双处必须选择 ARM32 armv7-a误选 AArch64 会生成 64 位库Python、libsnap7 运行闪退 segment fault。开发板无法在线 pip 安装第三方库Buildroot 固件无 gcc、cmake 编译工具链所有底层库snap7、paho-mqtt必须在 Ubuntu 宿主机交叉编译提前放入 overlay 打包进固件。musl libc 编译兼容问题 若使用 musl 轻量 C 库编译 snap7 需添加适配 patch否则出现链接未定义符号报错。ARM32 内存资源限制 Buildroot 裁剪 Python 无用组件业务代码 MQTT 消息队列设置最大缓存上限长时间断网避免内存溢出。SDK 完整编译耗时巨大 调试阶段优先使用./build.sh rootfs单独编译根文件系统无需每次全量编译 u-boot、kernel大幅节省调试时间。九、总结本文基于合众恒跃原厂 RK3506 完整 SDK完整覆盖环境搭建、SDK 全局配置、Buildroot 32 位系统裁剪、业务程序预装、固件编译烧录全流程。整套系统面向工业 PLC 采集网关定制轻量化、无冗余组件完全满足工控产品量产交付标准上层 Python 业务代码与硬件架构解耦后续更换其他 ARM32 工控硬件仅替换内核与设备树配置即可复用。