)
Yocto 的 BitBake 引擎在解析 Layer 时本质上只是按照bblayers.conf指定的顺序去遍历每个 Layer 里的conf/layer.conf然后把里面所有的.bbRecipe、.bbappend追加配置、.conf配置文件和.bbclass类文件全都加载到同一个全局作用域中。对于 BitBake 来说不管你是分 30 个 Layer 还是合成 1 个巨无霸 Layer只要语法和配置正确编译出来的镜像结果是完全一模一样的。一个 Layer 内部并没有死板的硬性限制但通常包含以下四大类文件配置文件 (conf/)layer.confLayer 自身的定义、machine/*.conf硬件配置、distro/*.conf发行版策略。构建配方文件 (recipes-*/)定义怎么下载、编译、安装软件如bash_5.2.bb。类文件 (classes/)抽取出来的通用构建逻辑如cmake.bbclass。源码与补丁 (files/或补丁文件)本地用到的源码、配置文件如sysctl.conf或内核 Patch。在大型企业中芯片/硬件团队专门维护meta-hardwareBSP。系统/架构团队专门维护meta-distro策略、安全策略、软件包格式。业务/应用团队专门维护meta-app业务逻辑。大家各自维护自己的 Git 仓库最后通过bblayers.conf组合在一起。层级Layer 名称结构谁提供的作用基础核心层meta-openembedded/openembedded-coreYocto 官方社区提供基础的 Linux 软件库与构建工具芯片厂商 BSP 层meta-freescale/meta-ti/meta-raspberrypiNXP/TI/树莓派官方提供特定芯片的 Kernel、Bootloader 和 GPU 驱动公司公共层meta-mycompany-distro你们公司的系统组定义你们公司统一的 Linux 策略如开启安全加密、固定的镜像格式业务产品层meta-myproduct你们公司的应用组放置特定产品的 UI、业务应用程序和配置文件