系统与软件 · D12
BSP 与 Yocto / Buildroot
拿到一块新 SoC 板,把 Linux 跑起来、裁剪到产品形态、维护多个机型,是嵌入式团队的日常。招聘 JD 里「有 Yocto/Buildroot 经验」是明确的加分项,因为这项能力只能在实际项目里长出来。
要学什么
- 交叉编译:工具链、sysroot,为什么不能在目标板上编译
- Buildroot:快、小、好上手,适合单一产品;Yocto:layer/recipe 体系与 sstate 缓存,适合多产品线的长期维护
- 内核裁剪、根文件系统定制、启动速度优化(systemd 耗时分析、按需加载驱动)
- 把自己的驱动和应用打成 recipe/package,编进镜像
四条路线需要多深
算法不需要
系统软件用过
嵌入式电控精通
机械结构不需要
「精通」= 能从零推导 / 能手写实现 / 能判断别人的方案对不对;「用过」= 能调起来、能改参数;「知道」= 能听懂、能提问。
怎么算学会了
能用 Buildroot 或 Yocto 从零产出目标板的可启动镜像,能说清「这个项目选哪个、为什么」,能把镜像从默认体积裁到产品目标。
常见错误
- 把 Yocto 当「更复杂的 Buildroot」,不理解 layer 边界与 sstate 缓存,全量重编几小时起
- 根文件系统带着 ssh/调试工具/完整编译器直接出货,体积和攻击面都失控