转向定制的系统开发环境


备注

如果已经完成 Yocto Project 快速构建,并浏览了 希望在使用 Yocto 项目前就知道的事 中其他用户总结的重要经验, 就已经具备了良好的基础。不过,真正开始自己的项目时, 下一步该做什么未必显而易见,庞大的文档也可能令人望而却步。 下面的建议可以帮助你开始。

  1. 列出项目涉及的处理器、目标开发板、技术和功能。 随后需要寻找包含相应配方及元数据的层,并将它们加入配置,见第 3 步。

  2. 配置开发板支持。 即使使用定制硬件,也通常更适合从已有目标开发板入手, 选择使用相同处理器或至少相同架构的开发板。 项目中已经可用的 BSP 能帮助你更容易地熟悉相关概念。

  3. 为目标寻找并获取合适的 BSP。 可以使用 Yocto Project Compatible 层列表 或 OpenEmbedded 层索引 查找合适的 BSP。Yocto 项目层索引中的 BSP 会定期验证。 获取首个 BSP 时,最好先联系芯片厂商或开发板供应商, 他们通常能够推荐自己验证最充分的实现。 例如,Intel 芯片通常使用 meta-intel,Texas Instruments 使用 meta-ti。 应选择已经针对当前下载的 Yocto 版本测试过的 BSP。 某些 BSP 可能不会立刻支持最新版本,但通常会逐步跟进。

    可以从参考嵌入式发行版 Poky 提供的构建配置开始, 再加入选定的层。添加层的方法见 理解和创建层。

  4. 根据选定的层修改必要配置。 例如,选定机器并加入相应 BSP 层后,需要通过 machine/ 配置片段设置 MACHINE, 使其指向相同机器类型。某些层还需要其他专用设置, 使用说明可在该层的 README 中查找。

  5. 为自定义配方和元数据创建新层。 使用 bitbake-layers create-layer。 bitbake-layers 还提供许多实用的层管理命令, 详情见 创建自己的层。

  6. 为准备使用的 BSP 创建自己的层。 除非设备十分特殊,通常不必从零实现整个 BSP。 即使采用已有 BSP,也应 为其创建自己的层。 例如,对 64 位 x86 机器,可以复制 conf/intel-corei7-64 定义, 并给机器取一个合适的名称,优先使用开发板名称而不是产品名称。 确保层配置依赖 meta-intel,或至少让 meta-intel 保留在 build/conf/bblayers.conf 中。 这样就可以将定制 BSP 设置放在自己的层中,并在不同应用间复用。

  7. 为还没有现成配方的软件编写配方。 对于需要在设备上运行的定制应用,这尤其重要。 新配方通常需要逐步完善:先让获取源码、构建直到打包的各步骤运行起来, 再在目标上运行软件,并按需继续调整。 更多信息见开发任务手册的 编写新配方。

  8. 创建镜像配方。 实现方式不止一种,但强烈建议创建自己的镜像配方, 不要通过 append 修改现有镜像配方。 镜像配方很容易创建,而镜像内容通常需要全面定制。

  9. 构建镜像并逐步完善。 加入缺少的内容,修复存在的问题,并利用对 工作流 的理解定位问题发生的位置。

  10. 考虑创建自己的发行版。 定制达到一定程度后,可以考虑创建自己的发行版,而不再直接使用默认参考发行版。

    发行版设置决定打包后端(例如 rpm)、软件包源,以及可能使用的更新方案。 可以在新层中创建继承 Poky 的发行版,并覆盖需要修改的设置。 如果 build/conf/local.conf 中除了路径和常见本地设置之外, 还出现了大量配置,就应该 考虑创建自己的发行版。

    其他层可以按需添加用于定制发行版的产品规格或产品专用功能。 但如果要更新发行版本身而不是某个产品,应通过发行版层修改相关特性。

  11. 恭喜,你已经迈出了坚实的一步。 欢迎加入 Yocto 项目社区。


Yocto 项目中文文档

允许按照 Creative Commons 发布的 知识共享署名—相同方式共享 2.0 英国:英格兰及威尔士许可 条款复制、分发和/或修改本文档。

如发现本手册或其他 Yocto 项目手册存在不准确之处或问题,或希望提交补充和修改, 请向 Yocto 项目文档邮件列表 docs@lists.yoctoproject.org 发送邮件或补丁, 也可以加入 Libera Chat 的 #yocto 频道。