如何在 local.conf 中包含另一个 local.conf

问题描述 投票:0回答:1

我想根据图像类型(发布或调试)更改一些配方的行为。最好的方法似乎是在 local.conf 中设置一个标志。它正在工作,但我必须创建两个构建目录,一个用于发布,另一个用于调试模式。因为所有变量和配置都是相同的,所以我认为最好将其余配置写入一个 local.conf 并让另一个仅包含它,但到目前为止似乎包含/要求不起作用:

我的本地.conf:

include './meta-switch/recipes-protocols/routing/routing.inc'

...

Bitbake 结果:

ERROR: ParseError in 'build/conf/local.conf': not a BitBake file
yocto
1个回答
0
投票

除非您自动进行设置,否则不建议包含相关文件。

让我介绍另一种处理您需要的方法。

使用新功能

multiconfig
您可以实现这一目标。
multiconfig
功能通常用于不同的
MACHINE
构建,但您可以根据自己的情况尝试一下。这可能适合您,因为定义新的配置文件将添加到默认配置文件,即
local.conf
,这就是您想要的,这里是一个示例:

  1. 在自定义层下创建具有不同配置的
    multiconfig
    文件夹:
`-- meta-custom/
   `-- conf/
      `-- multiconfig/
         |-- release.conf
         `-- debug.conf

例如,在

release.conf
中:

SOME_VARIABLE = "release"

对于

debug.conf

SOME_VARIABLE = "debug"

现在,在您的

local.conf
中添加:

BBMULTICONFIG = "release debug"

这样 Bitbake 就会知道有 3 种可能的配置:

  • 默认为
    local.conf
  • 发布一个
    release.conf
  • 调试一个
    debug.conf

现在,假设您有一个依赖于

custom-image
的图像
SOME_VARIABLE
,以便了解要应用于某些包的配置,或者根据该变量或新
.conf
中可以拥有的其他变量执行您想要执行的操作文件,或者说您根据每个配置配置一些食谱,例如:

  • release.conf
SOME_VARIABLE = "release"
SOME_OTHER_VARIABLE:append:pn-some-package = " some_var"

你说出它的名字。

现在,您可以为每个配置构建图像,如下所示:

bitbake mc:release:custom-image
bitbake mc:debug:custom-image

您可以测试每个配置的

SOME_VARIABLE
是否发生变化:

bitbake-getvar -r mc:release:custom-image --value SOME_VARIABLE
bitbake-getvar -r mc:debug:custom-image --value SOME_VARIABLE

这样您就实现了以下目标:

  • 将所有多个配置保留在自定义层中
  • 还可以添加其他配置
  • 维护起来更容易
  • 摆脱你正在做的亲戚
  • 用一个变量让
    local.conf
    变得更简单
    BBMULTICONFIG
© www.soinside.com 2019 - 2024. All rights reserved.