我编写了一个hello world设备驱动程序配方,当我试图在根文件系统中安装它时,使用qemux86-64.conf中的以下变量
MACHINE_EXTRA_RDEPENDS = += " kernel-module-hello"
上面的一行没有插入到根文件系统的模块中,但是下面的一行插入了
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += " kernel-module-hello"
谁能告诉我这两个变量有什么不同吗。什么时候该用哪一个?
最佳答案
MACHINE-EXTRA-RDEPENDS:要在正在生成的映像中安装的计算机特定软件包的列表,这些软件包对计算机启动不是必需的。通常用于添加功能。如手册所述:
此变量影响基于packagegroup base的所有图像,packagegroup base
不包括core-ImageMinimal或core-ImageFull命令行
图像。
MACHINE-ESSENTIAL-EXTRA-RDEPENDS:要在正在生成的映像中安装的计算机特定软件包的列表,这些软件包对计算机启动至关重要。如手册所述:
此变量的影响影响基于
包组核心引导,包括核心映像最小映像。
很可能您的映像不是基于packagegroup base,而是基于packagegroup core boot。此外,我想指出的是,内核模块通常包含在MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS
或MACHINE_EXTRA_RRECOMMENDS
中,而不是包含在MACHINE_ESSENTIAL_EXTRA_RDEPENDS
或MACHINE_EXTRA_RDEPENDS
中。
有关更多信息,请参阅https://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS
PD:在用“+”运算符追加变量时,不需要空格分隔符。另外,这里还有一个拼写错误:
MACHINE_uextra_urdepends=+=“内核模块您好”
关于linux - MACHINE_EXTRA_RDEPENDS和MACHINE_ESSENTIAL_EXTRA_RDEPENDS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56862501/