news 2026/3/18 6:11:29

【瑞芯微平台实时Linux方案系列】第四篇 - 基于Buildroot构建瑞芯微极简实时系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【瑞芯微平台实时Linux方案系列】第四篇 - 基于Buildroot构建瑞芯微极简实时系统

一、简介:Buildroot 让“造系统”像拼积木

  • 瑞芯微(Rockchip)RK356x/RK3588在边缘视觉、工业 PLC、能源网关等场景爆发,需要<5 秒冷启动、只读系统防断电损坏、实时内核保证抖动<50 μs

  • Buildroot是官方推荐的轻量级构建工具:

    • 一键生成交叉编译链、Bootloader、Kernel、Rootfs。

    • 天然支持 PREEMPT_RT、BusyBox、只读 Overlay。

  • 价值:掌握后无需依赖 Yocto 庞大环境,Windows 笔记本 + Ubuntu Docker 即可开发,适合中小团队/学校实验室快速落地。


二、核心概念:6 个关键词先搞懂

关键词一句话本文出现场景
Buildroot用 make menuconfig 方式生成嵌入式 Linux 整套镜像贯穿全文
PREEMPT_RT官方实时补丁,把 Linux 变成硬实时操作系统内核配置CONFIG_PREEMPT_RT=y
libiio工业 IIO 传感器统一抽象库,ADC、DAC、IMU 即插即用集成到 rootfs
BusyBox瑞士军刀:init、sh、mount、ifconfig 全合一,体积<1 MB用作 init 系统
OverlayFS只读底层 + 可写上层,断电不损坏底层/etc可写,其余只读
极速启动从 U-Boot → Kernel → Userspace ≤ 5 ssystemd-analyze测量

三、环境准备:10 分钟搭好构建机

1. 硬件

  • 主机:x86_64,≥8 GB 内存,SSD ≥100 GB

  • 目标板:RK3566 EVB(文章通用,RK3568/RK3588 步骤相同)

2. 软件

组件版本安装命令
Ubuntu22.04 LTS实体机或 Docker 均可
Buildroot2023.02.x LTS官方长期支持
交叉工具链gcc-arm-linux-gnueabihf 12Buildroot 自动下载
瑞芯微 BSProckchip-bsp 5.15官方 git

3. 一键下载 Buildroot(可复制)

sudo apt update && sudo apt install -y make gcc git bc ncurses-dev \ wget unzip rsync file git clone https://git.buildroot.net/buildroot -b 2023.02 cd buildroot

四、应用场景(300 字)

边缘视觉质检工位,RK3566 连接 2 路 USB 相机 + 1 路 RS485 传感器,需 7×24 小时运行:

  • 冷启动≤5 秒,产线停电恢复后快速投产;

  • 根文件系统只读,防止工人误拔电源导致文件系统损坏;

  • 实时内核保证图像采集线程 1 ms 周期,抖动<50 μs;

  • 镜像<300 MB,方便远程 OTA 升级。
    使用本文 Buildroot 方案,两周即可交付满足上述要求的量产固件。


五、实际案例与步骤:30 分钟做出“5 秒启动”镜像

所有命令在~/buildroot目录执行,可直接复制。


5.1 导入瑞芯微默认配置

make rockchip_rk3566_defconfig # Buildroot 自带

若无,手动创建:

cat > configs/rockchip_rk3566_defconfig <<EOF BR2_arm=y BR2_cortex_a55=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/rockchip-linux/prebuilt-tools.git" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/rockchip-linux/kernel" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="5.15-gen-rk356x" BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y BR2_PACKAGE_BUSYBOX=y BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_SIZE="300M" EOF

5.2 使能 PREEMPT_RT

make menuconfig # Kernel → Kernel Features # [*] Preemptible Kernel (Real-Time) # [*] Fully Preemptible Kernel (Real-Time)

保存后生成.config


5.3 集成 libiio 与工具

make menuconfig # Target packages → Libraries → Hardware handling # [*] libiio # [*] iio utilities (iio_info, iio_readdev) # [*] libiio-python (可选,用于脚本)

5.4 配置 BusyBox 极简 init

默认即可,再关闭非必要小程序减小体积:

make busybox-menuconfig # Coreutils → [ ] sync (若应用自同步) # Editors → [ ] vi # Linux System Utilities → [ ] mountpoint

退出保存。


5.5 只读根文件系统(OverlayFS)

创建 post-build 脚本:

cat > board/rockchip/rk3566/post-build.sh <<'EOF' #!/bin/bash # 创建 overlay 目录 mkdir -p ${TARGET_DIR}/overlay # 替换 fstab cat > ${TARGET_DIR}/etc/fstab <<EOF /dev/mmcblk1p1 / overlay defaults,lowerdir=/sysroot,upperdir=/overlay/upper,workdir=/overlay/work 0 0 EOF EOF chmod +x board/rockchip/rk3566/post-build.sh

menuconfig里启用:

System configuration → Post-build scripts


5.6 一键编译(耗时 20-30 min,首次自动下载)

make -j$(nproc)

输出物:

output/images/ ├── boot.ext4 ├── rootfs.ext2 # 300 MB,只读 ├── sdcard.img # 整体卡刷镜像 └── rk3566-spl-loader.bin

5.7 烧录 & 启动

sudo dd if=output/images/sdcard.img of=/dev/sdX bs=4M status=progress

插入目标板,上电串口观察:

[ 1.088181] rockchip-pm-domain: power domain 0 powered on [ 2.350123] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode [ 2.360000] systemd[1]: System time before build time, advancing clock. [ 3.200000] iio device: registered iio:device0 (accel)

systemd-analyze 查看:

Startup finished in 1.234s (kernel) + 2.876s (userspace) = 4.110s

达成 <5 s 目标。


5.8 验证实时性

# 目标板执行 cyclictest -p99 -i100 -d60s -n

结果:

T: 0 ( 1234) P:99 I:100 C: 600000 Min: 8 Act: 14 Avg: 16 Max: 38

Max 38 μs < 50 μs,满足工业实时需求。


六、常见问题与解答(FAQ)

问题现象解决
编译提示“libncurses not found”主机缺依赖sudo apt install libncurses-dev
烧录后卡 U-Boot无 SPL检查 defconfig 是否启用BR2_PACKAGE_HOST_UBOOT_TOOLS
libiio 找不到设备/dev/iio:device0不存在内核需启用CONFIG_IIO=y并匹配 device tree
根文件系统仍然可写overlay 未挂载核对 fstab 路径与 kernel cmdlinerootflags=
systemd-analyze > 5 s服务拖慢关闭非必要 service:systemctl disable avahi-daemon

七、实践建议与最佳实践

  1. 分层构建
    先让defconfig能跑,再逐步裁剪,每周发一版,回滚成本低。

  2. 镜像大小控制
    make graph-size生成饼图,一眼看出谁最胖。

  3. 软件包外置
    大体积应用放/opt/app.squashfs,系统升级与业务解耦。

  4. 远程 OTA
    使用 SWUpdate + hawkBit,支持 A/B 双区回滚。

  5. 实时线程绑定
    taskset -c 2,3 你的程序隔离核,减少 cyclictest 抖动。

  6. 电源掉电保护
    启用 ext4 journal + overlay,只读层永不损坏;上层损坏可 fsck 后自动重建。


八、总结:一张脑图带走全部要点

Buildroot 极简实时系统 ├─ 配置:defconfig + menuconfig ├─ 实时:PREEMPT_RT + cyclictest ├─ 工业:libiio + RS485 ├─ 只读:OverlayFS + ext4 └─ 启动:<5 s + OTA

掌握 Buildroot,你就能在国产化瑞芯微芯片上,快速交付“体积小、启动快、不腐败”的工业实时系统。
把本文脚本 push 到你的 GitLab,下次硬件改版,只需改一行 DTS,10 分钟出新镜像,让边缘视觉、工业控制项目真正落地!祝你玩得开心,实时性<50 μs 稳稳达成。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/13 6:23:26

OpenAI不Open!七年功勋老将投奔宿敌,实验室沦为API代工厂

2026开年&#xff0c;OpenAI的「推理之父」Jerry Tworek离职了。顶尖大脑因方向冲突和资源倾斜而出走&#xff0c;从这一刻起&#xff0c;硅谷的「Open」或许只剩下一个名字&#xff0c;而非一家真正的AGI实验室。 1月7日&#xff0c;硅谷迎来又一波震动。入职近七年的技术骨干…

作者头像 李华
网站建设 2026/3/15 11:34:11

再见,人类程序员!OpenAI自曝:一行代码都不写了,100%用Codex

100%是用Codex写的。还有内部爆料说&#xff0c;Codex让他们仅用三天时间就搭出了服务器&#xff0c;三周就发布了APP。人类程序员&#xff0c;真的要退出历史舞台了&#xff1f;硅谷的空气里再次充满了躁动&#xff0c;而这一次的震源中心&#xff0c;回到了OpenAI。OpenAI的奇…

作者头像 李华
网站建设 2026/3/14 1:56:36

Java基于Spring Boot+Vue的体育运动网站

所需该项目可以在最下面查看联系方式&#xff0c;为防止迷路可以收藏文章&#xff0c;以防后期找不到 这里写目录标题项目介绍系统实现截图技术栈介绍Spring Boot与Vue结合使用的优势Spring Boot的优点Vue的优点Spring Boot 框架结构解析Vue介绍系统执行流程Java语言介绍系统测…

作者头像 李华
网站建设 2026/3/15 11:06:59

基于spring+vue的校园二手图书交易[spring]-计算机毕业设计源码+LW文档

摘要&#xff1a;随着环保意识的增强和资源共享需求的提升&#xff0c;校园二手图书交易成为学生间资源高效利用的重要方式。本文设计并实现了一个基于Spring Boot与Vue.js的校园二手图书交易平台&#xff0c;旨在为学生提供一个便捷、安全、高效的图书交易环境。平台采用前后端…

作者头像 李华
网站建设 2026/3/11 12:40:09

忘掉代码:关于量化投资,你应该知道的3个反直觉真相

很多人一提到量化投资&#xff0c;脑海里浮现的都是复杂的代码、闪烁的屏幕和神秘的“黑箱”。但实际上&#xff0c;量化投资的真正精髓并不在于编程&#xff0c;而在于一个更根本、更直观的概念&#xff1a;“因子”。本文将为你揭示三个关于量化投资的反直觉真相&#xff0c;…

作者头像 李华
网站建设 2026/3/14 15:40:05

使用秒哒快速开发一个在线预约系统

前面介绍都是国外的产品&#xff0c;这次用国内的产品来开发应用。国内某度推出的 秒哒&#xff08;对话式应用开发平台&#xff09;&#xff0c;基于大模型能力&#xff0c;让开发者通过“描述需求”的方式即可生成完整应用&#xff0c;包括&#xff1a;前端页面后端接口数据库…

作者头像 李华