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 来测试它,以检查它是否按预期设置。
我有两个机器配置文件,我从元层添加所需的配置文件。如下:
# 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
中导出 MYTUNEexport MYTUNE=arm
你能指出我做错了什么吗?在此先感谢您的帮助。
对于方法 #1,代码在 base.bbclass 之前被解析和执行,因此 base_contains 不可用。
对于方法 #2,我怀疑在计算表达式时未设置 MYTUNE。我认为这是因为当你在环境中设置它时,你没有指示 bitbake 它应该允许它进入数据存储区。尝试添加:
导出BB_ENV_EXTRAWHITE=MYTUNE
这应该允许 MYTUNE 进入数据存储。您可以通过对 MYTUNE 的 bitbake -e 的输出进行 greping 来测试它,以检查它是否按预期设置。