Yocto KMACHINE 设置的正确值

Correct value for Yocto KMACHINE setting

我正在尝试为 KMACHINE 设置找到正确的值,定义为“内核已知的机器”。

当我手动配置内核(在 Yocto 之外)时,我没有输入机器类型。我确实设置了 ARCH=arm,选择了 CONFIG_ARCH_LPC32XX=y 之类的“系统类型”配置选项,或者加载了 lpc32xx_defconfig 之类的 defconfig,但我不知道这些是否是 KMACHINE 应该是。

例如,Yocto 文档给出了 intel-core2-32,它没有出现在 Linux 5.15 来源的任何地方。

KMACHINE 用于 select 用于构建内核的 Yocto 特定元数据,不会传递给内核构建系统。默认情况下,它在 kernel-yocto.bbclass 中设置为 ${MACHINE},如果机器不需要自己的元数据 selection,可以覆盖它,并且可以使用现有的元数据。

手册LINUX_KERNEL_TYPE下有更好的描述(转述):

The KMACHINE and LINUX_KERNEL_TYPE variables define the search arguments used by Yocto's kernel tools to find the appropriate description within Yocto's kernel metadata with which to build out the kernel sources and configuration.

kernel metadata 由 Yocto 项目维护,位于 yocto-kernel-cache 存储库中。它是可选的,仅在 selected 内核配方是“linux-yocto”样式配方(即它继承 linux-yocto.inc)时使用。

如果您使用内核外树 defconfig 来配置您的内核,您不太可能需要 Yocto 的内核元数据,因此不需要覆盖 KMACHINE.