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

时间:2017-05-28 16:03:34

标签: yocto bitbake openembedded

我有两个机器配置文件,我从元层添加所需的配置文件。如下: # 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:扩展变量DEFAULTTUNE失败,表达式为$ {@ base_contains('MYTUNE','arm','armv7a-neon','aarch64',d)},触发了异常NameError:name'base_contains'未定义

方法#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

  

导出MYTUNE = arm

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

1 个答案:

答案 0 :(得分:1)

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

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

导出BB_ENV_EXTRAWHITE = MYTUNE

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