yocto jethro:是否可以动态设置 DEFAULTTUNE

yocto jethro: Is it possible to set DEFAULTTUNE dynamically

我有两个机器配置文件,我从元层添加所需的配置文件。如下: # mymachine32.conf require conf/machine/include/tune-cortexa7.inc

# mymachine64.conf require conf/machine/include/arm/arch-armv8.inc

以上工作正常,但我正在尝试合并到一个 conf 文件中,如下所示:

方法 #1

# mymachine.conf DEFAULTTUNE ?= "${@base_contains('MYTUNE', 'arm', 'armv7a-neon', 'aarch64', d)}" require conf/machine/include/arm/arch-armv8.inc

在我的 conf 文件中使用 方法 #1,我看到以下错误:

ExpansionError: Failure expanding variable DEFAULTTUNE, expression was ${@base_contains('MYTUNE', 'arm', 'armv7a-neon', 'aarch64', d)} which triggered exception NameError: name 'base_contains' is not defined

方法 #2

# mymachine.conf DEFAULTTUNE ?= "${@bb.utils.contains('MYTUNE', 'arm', 'armv7a-neon', 'aarch64', d)}" require conf/machine/include/arm/arch-armv8.inc

而使用 方法 #2 我总是将 'falsevalue'(即 aarch64)设置为 DEFAULTTUNE

请注意,在这两种情况下,我都在 shell

中导出 MYTUNE

export MYTUNE=arm

你能指出我做错了什么吗?在此先感谢您的帮助。

对于方法 #1,代码在 base.bbclass 之前被解析和执行,因此 base_contains 不可用。

对于方法 #2,我怀疑在计算表达式时未设置 MYTUNE。我认为这是因为当你在环境中设置它时,你没有指示 bitbake 它应该允许它进入数据存储区。尝试添加:

导出BB_ENV_EXTRAWHITE=MYTUNE

这应该允许 MYTUNE 进入数据存储。您可以通过对 MYTUNE 的 bitbake -e 的输出进行 greping 来测试它,以检查它是否按预期设置。