返回所有文章
工程 / TSENGCHEN BLOG

RK3576-Industrial-Minimal-Buildroot-Guide

09_Engineering/RK3576 system trimming · RK3576-Industrial-Minimal-Buildroot-Guide

09_Engineering · 第 3 / 7 篇

保留原笔记正文与技术内容,仅脱敏敏感信息。配图按作者要求保留原样。

RK3576 Industrial 最小 Buildroot 系统裁剪指南

本文以 rockchip_rk3576_industry_evb_v10_defconfig 为基线,建立不修改默认配置的最小 Buildroot rootfs。当前结果已完成主机侧构建与镜像检查,尚未刷机或完成板端启动验证。

适用范围与目标

SDK 位于 /home/user/workspace/RK3588,内核为 Rockchip BSP Linux 6.1。目标板 DTS 是 rk3576-industry-evb-v10,根文件系统为 ext4。

最小系统的第一阶段只裁剪用户态 rootfs,保留启动与恢复链:

Loader -> U-Boot -> Kernel + DTB -> ext4 rootfs -> BusyBox shell

内核驱动裁剪不在本阶段进行。

SDK 文件关系

device/rockchip/.chips/rk3576/
  rockchip_rk3576_industry_evb_v10_minimal_defconfig
        -> output/.config
        -> RK_BUILDROOT_CFG=rockchip_rk3576_industry_minimal

buildroot/configs/
  rockchip_rk3576_industry_minimal_defconfig
        -> Buildroot .config
        -> rootfs.ext4

output/firmware/rootfs.img
        -> 当前构建的 rootfs.ext2(实际文件系统格式为 ext4)

defconfig 表示期望选择的功能;Kconfig 展开依赖和默认值后生成完整 .config。使用 olddefconfig 可以在不进入交互式菜单的情况下更新和校验该完整配置。

独立配置

不要修改 SDK 默认文件。复制并使用以下两个独立文件:

buildroot/configs/rockchip_rk3576_industry_minimal_defconfig
device/rockchip/.chips/rk3576/rockchip_rk3576_industry_evb_v10_minimal_defconfig

板级 defconfig 的关键内容如下:

RK_UBOOT_SPL=y
RK_BUILDROOT_BASE_CFG="rk3576_industry_minimal"
RK_KERNEL_DTS_NAME="rk3576-industry-evb-v10"
# RK_ROOTFS_PREBUILT_TOOLS is not set
# RK_ROOTFS_PREFER_PREBUILT_TOOLS is not set
# RK_ROOTFS_DEBUG_INFO is not set

这会保持 RK3576 Industrial DTS 不变,并将 rootfs 切换到独立的最小配置。

保留与删除项

必须保留

内容来源原因
Loader、U-Boot、parameter.txtSDK 板级配置下载、分区与引导链
Kernel 和 Industrial DTBSDK 板级配置初始化硬件与挂载 rootfs
RecoveryRK_RECOVERY=y恢复入口
USB gadget 和 ADBRK_USB_GADGET=y、RK_USB_ADBD=y目标板调试入口
BusyBox、eudev、挂载工具、ext4base/base.configshell、设备节点和根文件系统
RK3576 架构与板级 overlaychips/rk3576_aarch64.configAArch64、RK3576 包和基础板级文件

第一阶段保守保留

bus/can.config、bus/pci.config 以及 exFAT、NTFS、VFAT 配置不属于通用启动必需项,但适合 Industrial 板的外设与维护介质场景。后续应依据实际硬件和产品需求决定是否删除。

已删除

从 Buildroot defconfig 中删除了中文字体、Mali、音频/相机/GStreamer/MPP、Wi-Fi/蓝牙、benchmark、测试工具、Chromium、NPU2、Weston、OTA 与 tools/common.config。

同时在板级 defconfig 中关闭预编译工具和调试信息,因此不会再由 post-rootfs 阶段复制 gdb、perf、ltrace、updateEngine 或 /info。

最终最小 Buildroot defconfig 为:

#include "base/base.config"
#include "bus/can.config"
#include "bus/pci.config"
#include "chips/rk3576_aarch64.config"
#include "fs/exfat.config"
#include "fs/ntfs.config"
#include "fs/vfat.config"

配置与构建流程

切换到独立板级配置:

cd /home/user/workspace/RK3588
./build.sh rockchip_rk3576_industry_evb_v10_minimal_defconfig

仅验证 Buildroot 配置,不编译也不刷机:

make -C buildroot O=/tmp/rk3576-industry-minimal-check rockchip_rk3576_industry_minimal_defconfig
make -C buildroot O=/tmp/rk3576-industry-minimal-check olddefconfig

构建 rootfs:

./build.sh buildroot

更改或取消软件包后,必须进行干净重建;增量构建不会自动删除旧 target/ 中已安装的文件:

./build.sh clean-rootfs
./build.sh buildroot

构建结果与验证

干净重建后的结果:

项目结果
rootfs.ext4约 48 MB
Buildroot target/约 45 MB
旧 rootfs.ext4约 166 MB
已确认移除gdb、perf、updateEngine、rockchip-test、/info、strace

验证 rootfs 链接:

readlink -f output/firmware/rootfs.img
ls -lhL output/firmware/rootfs.img

生成可刷镜像

仅构建 rootfs 不足以刷机。必须先重新生成与当前 RK3576 配置匹配的 Loader、Kernel、DTB、Recovery 和 rootfs:

./build.sh all

然后在主机侧打包:

./build.sh updateimg

预期产物为 output/firmware/update.img。updateimg 只打包,不会写入开发板。刷机前必须确认 output/firmware/ 中的所有分区镜像均由当前 RK3576 minimal 配置构建,不能混用遗留目标的镜像。

常见问题

Make 提示目标名前有空格

换行续写时,反斜杠必须是行尾最后一个字符;反斜杠后面的空格会被传给 Make,导致目标名带前导空格。最简单的方式是先使用单行命令。

配置已经关闭,但 rootfs 中文件还在

这是增量构建残留。执行 ./build.sh clean-rootfs 后重新构建,不要手工删除 SDK 源码或固件分区文件。

rootfs.ext2 文件名是否代表 ext2

不是。本 SDK 的 Buildroot 使用 BR2_TARGET_ROOTFS_EXT2_4=y 生成 ext4 文件系统,rootfs.ext2 是历史文件名;rootfs.ext4 指向同一镜像。

09_Engineering · 文档目录
上一篇RK182x 系统资源下一篇RV1126B-NPU-Temperature-Frequency-Control-Guide