3使用高级元数据 ( yocto-kernel-cache)

3使用高级元数据 ( yocto-kernel-cache)

目录

3使用高级元数据 ( yocto-kernel-cache)

3.1概述

3.2在配方中使用内核元数据

3.3内核元数据语法

3.3.1配置

3.3.2补丁

3.3.3特点

3.3.4内核类型

3.3.5 BSP 说明

3.4内核元数据位置

3.4.1配方空间元数据

3.4.2配方空间外的元数据

3.5组织您的来源

3.5.1封装补丁

3.5.2机器分支

3.5.3特征分支

3.6 SCC 描述文件参考


3.1概述

除了支持配置片段和补丁之外,Yocto Project 内核工具还支持丰富的 元数据,您可以使用这些元数据来定义复杂的策略和板级支持包 (BSP) 支持。元数据和管理它的工具的目的是帮助您管理用于支持多个 BSP 和 Linux 内核类型的配置和源的复杂性。

内核元数据存在于许多地方。Yocto 项目源存储库 中的一个区域 是yocto-kernel-cacheGit 存储库。您可以在Yocto 项目源代码库中的“Yocto Linux 内核”标题下找到此存储 

内核开发工具(“kern-tools”)也可以在yocto-kernel-toolsGit 存储库中“Yocto Linux 内核”标题下的 Yocto 项目源存储 库中找到。构建这些工具的方法meta/recipes-kernel/kern-tools/kern-tools-native_git.bb位于源目录中(例如 poky)。

3.2在配方中使用内核元数据

正如介绍中提到的,Yocto 项目包含内核元数据,它位于yocto-kernel-cacheGit 存储库中。此元数据定义了与 linux-yocto 配方中相应 BSP 的定义相对应的板级支持包 (BSP)。BSP 由内核策略和启用的特定于硬件的功能的聚合组成。可以从 linux-yocto 配方中影响 BSP。

注意

包含内核元数据(例如从linux-yocto.inc文件继承)的 Linux 内核配方被称为“linux-yocto 风格”配方。

每个 linux-yocto 风格的配方都必须定义 KMACHINE变量。此变量通常设置为与BitBake使用的MACHINE变量相同的值。但是,在某些情况下,该变量可能会改为引用MACHINE的底层平台。

如果多个 BSP使用相同的 BSP 描述构建,则它们可以重用相同的KMACHINE名称。多个基于 Corei7 的 BSP 可以为KMACHINE共享相同的“intel-corei7-64”值。重要的是要认识到KMACHINE仅用于内核映射,而MACHINE 是 BSP 层中的机器类型。然而,即使有这种区别,这两个变量也可以保持相同的值。有关更多信息,请参阅“ BSP 说明”部分。

每个 linux-yocto 风格的配方还必须指明用于构建 Linux 内核的 Linux 内核源代码库分支。该 KBRANCH变量必须设置指示分支。

注意

您可以使用KBRANCH值定义一个备用分支,通常具有机器覆盖,如下所示从meta-yocto-bsp层:

KBRANCH:edgerouter = "standard/edgerouter"

linux-yocto 风格的配方可以选择定义以下变量:

LINUX_KERNEL_TYPE 定义了用于组装配置的内核类型。如果您不指定LINUX_KERNEL_TYPE,则默认为“标准”。加上KMACHINE LINUX_KERNEL_TYPE定义内核使用工具来找到内核元数据与该范围内的适当的描述打造出来的来源和配置搜索参数。linux-yocto recipes 定义了“standard”、“tiny”和“preempt-rt”内核类型。有关内核类型的更多信息,请参阅“内核类型”部分。

在构建期间,kern-tools 搜索与 从配方传入的KMACHINELINUX_KERNEL_TYPE变量最匹配的 BSP 描述文件。这些工具使用他们找到的与两个变量匹配的第一个 BSP 描述。如果工具找不到匹配项,则会发出警告。

这些工具首先搜索KMACHINE,然后 搜索LINUX_KERNEL_TYPE。如果工具无法找到部分匹配,他们将使用来自来源KBRANCH,并在指定的任何配置SRC_URI

您可以使用 KERNEL_FEATURES 变量来包含KMACHINE和 LINUX_KERNEL_TYPE变量组合尚未包含的功能(配置片段、补丁或两者)。例如,要包含指定为“features/netfilter/netfilter.scc”的功能,请指定:

KERNEL_FEATURES += "features/netfilter/netfilter.scc"

要包含仅用于qemux86机器的名为“cfg/sound.scc”的功能,请指定:

KERNEL_FEATURES:append:qemux86 = " cfg/sound.scc"

KERNEL_FEATURES中条目的值取决于它们在内核元数据本身中的位置。此处的示例取自 yocto-kernel-cache存储库。该存储库的每个分支都包含顶级的“features”和“cfg”子目录。有关更多信息,请参阅“内核元数据语法”部分。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值