yocto jethro:可以动态设置DEFAULTTUNE吗

yocto jethro:可以动态设置DEFAULTTUNE吗,yocto,bitbake,openembedded,Yocto,Bitbake,Openembedded,我有两个机器conf文件,其中我从元层添加了所需的conf文件。详情如下: #mymachine32.conf 需要conf/machine/include/tune-cortexa7.inc 及 #mymachine64.conf 需要conf/machine/include/arm/arch-armv8.inc 上面的方法很好,但我正试图将其整合到一个conf文件中,如下所示: 方法#1 #mymachine.conf DEFAULTTUNE?=“${@base_包含('MYTUNE','a

我有两个机器conf文件,其中我从元层添加了所需的conf文件。详情如下:
#mymachine32.conf
需要conf/machine/include/tune-cortexa7.inc

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

上面的方法很好,但我正试图将其整合到一个conf文件中,如下所示:

方法#1
#mymachine.conf
DEFAULTTUNE?=“${@base_包含('MYTUNE','arm','armv7a neon','aarch64',d)}”
需要conf/machine/include/arm/arch-armv8.inc

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

ExpansionError:扩展变量DEFAULTTUNE失败,表达式为${@base_contains('MYTUNE','arm','armv7a neon','aarch64',d)},触发异常名称错误:未定义名称'base_contains'

进近#2
#mymachine.conf
DEFAULTTUNE?=“${@bb.utils.contains('MYTUNE','arm','armv7a neon','aarch64',d)}”
需要conf/machine/include/arm/arch-armv8.inc

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

请注意,在这两种情况下,我都在shell中导出MYTUNE

导出MYTUNE=arm

你能指出我做错了什么吗?提前感谢您的帮助。

对于方法1,代码是在base.bbclass之前解析和执行的,因此base#u contains不可用

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

导出BB_ENV_EXTRAWHITE=MYTUNE


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

谢谢Richard。我尝试导出BB_ENV_EXTRAWHITE=“$BB_ENV_EXTRAWHITE MYTUNE”,这似乎对我很有效。现在,我将尝试使用相同的conf文件为这两种体系结构构建。