如何覆盖 Yocto 中的 .conf 文件
How to override a .conf file in Yocto
我知道如何使用自定义图层中的 .bbappend
文件覆盖 .bb
文件,复制原始文件的确切路径。
但是当要覆盖的文件是 .conf
时?我正在阅读大型手册,但我找不到这些信息(也许我看错了章节)。
更新
这是我想做的一个例子。
原始 .conf 文件包含此行:
IMAGE_FEATURES[validitems] += "qtcreator-debug"
我想删除它。如果它是一个 .bb 文件,我会创建一个 bbappend 文件:
IMAGE_FEATURES[validitems] -= "qtcreator-debug"
基本上,.conf 文件是从上到下评估的。因此,您始终可以覆盖任何内容,并且每当您 运行 bitbake -e
某些内容时都会列出准确的评估顺序,而且每个变量的评估顺序也很详细 运行。
所以,这就是一部分。另一个是,正确的 .conf 文件实际上设置了 meant 的变量,以使用 ?=
和 ??=
运算符进行调整,这使得覆盖更容易。因此,如果要覆盖的 .conf 是您正在维护的文件,请考虑重写它。如果不是,也想想为什么它可能没有那样写,如果覆盖它实际上是正确的解决方案或者只是胶带解决方案。
有多种方法可以做到这一点。
1) 你总是可以覆盖 local.conf 中的东西,它具有最高的评估优先级。但限制是 local.conf 需要手动编辑,并且更改仅适用于具有特定 local.conf 的构建。
2)如果有意义,您可以创建一个新的conf文件并使用"require"继承原始conf文件,然后覆盖一些东西。这在基于现有文件创建新机器配置文件时很有用。
3) 最后,一种覆盖完整conf文件的暴力破解机制是在自定义层内部创建一个新的同名conf文件,并将自定义层的层优先级设置为高于包含原始conf文件的层。这意味着您必须自己维护覆盖的 conf 文件。此方法也适用于覆盖 bbclasses。 4) 您也可以修改图像配方中的IMAGE_FEATURES(参见http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-sato/images/core-image-sato.bb)。
我知道如何使用自定义图层中的 .bbappend
文件覆盖 .bb
文件,复制原始文件的确切路径。
但是当要覆盖的文件是 .conf
时?我正在阅读大型手册,但我找不到这些信息(也许我看错了章节)。
更新
这是我想做的一个例子。 原始 .conf 文件包含此行:
IMAGE_FEATURES[validitems] += "qtcreator-debug"
我想删除它。如果它是一个 .bb 文件,我会创建一个 bbappend 文件:
IMAGE_FEATURES[validitems] -= "qtcreator-debug"
基本上,.conf 文件是从上到下评估的。因此,您始终可以覆盖任何内容,并且每当您 运行 bitbake -e
某些内容时都会列出准确的评估顺序,而且每个变量的评估顺序也很详细 运行。
所以,这就是一部分。另一个是,正确的 .conf 文件实际上设置了 meant 的变量,以使用 ?=
和 ??=
运算符进行调整,这使得覆盖更容易。因此,如果要覆盖的 .conf 是您正在维护的文件,请考虑重写它。如果不是,也想想为什么它可能没有那样写,如果覆盖它实际上是正确的解决方案或者只是胶带解决方案。
有多种方法可以做到这一点。 1) 你总是可以覆盖 local.conf 中的东西,它具有最高的评估优先级。但限制是 local.conf 需要手动编辑,并且更改仅适用于具有特定 local.conf 的构建。 2)如果有意义,您可以创建一个新的conf文件并使用"require"继承原始conf文件,然后覆盖一些东西。这在基于现有文件创建新机器配置文件时很有用。 3) 最后,一种覆盖完整conf文件的暴力破解机制是在自定义层内部创建一个新的同名conf文件,并将自定义层的层优先级设置为高于包含原始conf文件的层。这意味着您必须自己维护覆盖的 conf 文件。此方法也适用于覆盖 bbclasses。 4) 您也可以修改图像配方中的IMAGE_FEATURES(参见http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-sato/images/core-image-sato.bb)。