MACHINE_EXTRA_RDEPENDS 对比 MACHINE_ESSENTIAL_EXTRA_RDEPENDS

MACHINE_EXTRA_RDEPENDS vs MACHINE_ESSENTIAL_EXTRA_RDEPENDS

我写了一个 hello world 设备驱动程序配方,当我尝试将它安装在根文件系统中时,使用 qemux86 中的以下变量-64.conf

MACHINE_EXTRA_RDEPENDS = += " kernel-module-hello"

上面一行没有插入到根文件系统的模块中,但是下面一行插入了

MACHINE_ESSENTIAL_EXTRA_RDEPENDS += " kernel-module-hello"

谁能告诉我这两个变量之间有什么区别。什么时候应该用哪一个?

  • MACHINE_EXTRA_RDEPENDS : 要在正在构建的映像中安装的 machine-specific 软件包列表 不是必需的 用于机器启动。通常用于添加功能。并且,如手册所述:

    This variable affects all images based on packagegroup-base, which does not include the core-image-minimal or core-image-full-cmdline images.

  • MACHINE_ESSENTIAL_EXTRA_RDEPENDS : machine-specific 要在正在构建的映像中安装的软件包列表 essential让机器开机。并且,如手册所述:

    The impact of this variable affects images based on packagegroup-core-boot, including the core-image-minimal image.

您的图像很可能不是基于 packagegroup-base,而是基于 packagegroup-core-boot。此外,我想指出内核模块通常(这似乎是你的情况)包含在 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDSMACHINE_EXTRA_RRECOMMENDS 中而不是 MACHINE_ESSENTIAL_EXTRA_RDEPENDSMACHINE_EXTRA_RDEPENDS 中。

更多信息请参考https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS

PD:使用 += 运算符附加变量时不需要 Whitespace-separator。另外,你这里有错别字:

MACHINE_EXTRA_RDEPENDS = += " kernel-module-hello"