最小可启动工程指南

本文对应 成长路径 高优先级:用 Buildroot 产出 可重复构建 的最小镜像(kernel + rootfs + dtb),并记录验证步骤。Yocto 路径见 Yocto 与内核子系统深入


学习目标

  • 固定 defconfig + 版本号,他人可 make 复现同一镜像。
  • 产出 可烧录 的 boot 分区 + rootfs,串口进 shell。
  • .configexternal tree、补丁 纳入 git 管理。

工程结构建议

my-board-bringup/
├── README.md
├── buildroot/              # 子模块或脚本指定 BR2_VERSION
├── board/myvendor/myboard/
│   ├── linux.config
│   ├── genimage.cfg
│   ├── post-build.sh
│   └── rootfs_overlay/
├── configs/myboard_defconfig
└── dl/                     # 可选本地 tarball 缓存(不提交)

Buildroot 快速流程

git clone https://github.com/buildroot/buildroot.git
cd buildroot
make myboard_defconfig    # 或使用 BR2_EXTERNAL
make

产物常见位置:

output/images/
  ├── Image 或 zImage
  ├── *.dtb
  ├── rootfs.ext4 / rootfs.tar
  └── sdcard.img          # 若配置 genimage

defconfig 要点

选项类建议
Toolchain内部 / 外部交叉工具链与 BSP 一致
Kernel固定 版本BR2_LINUX_KERNEL_CUSTOM_REPO
Rootfsext4 / tar;启用 getty on serial
Host toolsgenimagemtools(做 SD 镜像)

保存配置:

make savedefconfig BR2_DEFCONFIG=../configs/myboard_defconfig

与 U-Boot / 启动链衔接


可复现性清单

  • README 写明 Buildroot 版本 / commit
  • configs/myboard_defconfig 入 git
  • 记录 sha256sum output/images/*
  • CI 或脚本:make clean && make 一键构建
  • 新同事按 README 30 分钟内 出相同镜像

验证步骤

  1. 烧录 sdcard.img 或分区镜像。
  2. 串口见 U-Boot(若有)→ Linux bannerlogin prompt
  3. uname -amountip a 基本命令正常。
  4. 可选:启动后跑 自检脚本(写版本文件到 /etc/os-release)。

延伸阅读