26 创建自己的发行版

使用 Yocto Project 构建镜像,并遵循 准备使用 Yocto Project 中展示的默认 设置时,使用的是 Poky 参考发行版。

Poky 明确定位为测试和开发用途的 参考 发行版。它启用大多数硬件和软件功能 以便测试,这也意味着其安全攻击面很大。此外,你很可能在某个阶段需要更深入地 控制软件包替代项选择、编译时选项及其他底层配置。基于这两个原因,如果将 Yocto Project 用于生产,强烈建议创建自己的发行版。

创建发行版的基本步骤是:创建自己的发行版层、创建发行版配置文件,再向层中 添加所需代码和元数据。具体步骤如下:

  • 为新发行版创建层: 创建发行版层,将其元数据和代码单独保存。强烈建议 使用自己的层存放配置和代码。与仅将配置放入 build/conf/local.conf 配置文件相比,独立的层更便于在 多台构建机器上复现相同配置。快速创建层的方法见 “创建自己的层” 一节。

  • 创建发行版配置文件: 在层的 conf/distro 目录创建配置文件,使用 发行版名称命名,例如 mydistro.conf。

    备注

    build/conf/local.conf 文件中的 DISTRO 变量 决定发行版名称,也可以使用 distro/ 配置片段。

    可以将部分配置拆分到包含文件中,再从发行版配置文件通过 "require" 引入。 包含文件应放在层的 conf/distro/include 目录。常见用途是将各配方所需 版本和修订版本的选择单独保存。

    配置文件必须设置以下变量:

    以下变量是可选的,通常也在发行版配置文件中设置:

    小技巧

    如果希望基于 OE-Core 的最基本配置创建发行版,可以参考 conf/distro/defaultsetup.conf,只设置与其不同的变量。也可以参考 defaultsetup.conf 或 Poky 等其他发行版的配置文件,从头编写新的 发行版配置文件。

  • 提供其他变量: 对于希望设置默认值或强制作为发行版配置一部分的其他变量, 都应作出定义。几乎可以包含 build/conf/local.conf 中的 任意变量,不限于上一项列出的变量。

  • 指定发行版配置文件: 在 Build Directory 的 build/conf/local.conf 文件中设置 DISTRO,使其 指向发行版配置文件。例如,配置文件名为 mydistro.conf 时,设置如下:

    DISTRO = "mydistro"
    

    也可以从命令行设置 distro/ 配置片段。

  • 按需向层中添加内容: 在层中保存发行版所需的其他信息:

    • 添加配方,安装其他配方尚未安装的发行版专用配置文件。如果配置文件已由 现有配方包含,则应为该配方添加追加文件(.bbappend )。向层中添加 配方的一般信息和建议,见 “创建自己的层” 和 “创建层的推荐实践” 两节。

    • 添加发行版专用镜像配方。

    • 添加 psplash 追加文件,通过 SPLASH_IMAGES 变量提供带有 品牌标识的启动画面。

    • 添加其他追加文件,为特定配方作出定制修改。

    追加文件的更多信息见 “通过自己的层追加其他层元数据” 一节。

26 复制和修改 Poky 发行版

除了按上述方式从头创建自定义发行版,也可以先复制 meta-poky 层提供的 Poky 发行版配置,再加以修改。这种方式可行,但需要注意:

  • 副本中对 Poky 的每处引用都需要更新,确保仍然适用,包括文件中的覆盖用法 (例如 :poky )和目录名称。也可以借此检查每项定制是否适合自己的用途。

  • 除非也打算使用,否则可以删除 poky-tiny、poky-altcfg 和 poky-bleeding 变体,以及对它们的所有引用。

  • 更一般地说,Poky 发行版配置启用的内容远多于生产场景通常所需。应逐一检查 副本中的 每项 配置选择,确定是否必要。