2017-05-28 121 views
0

我有兩個機器conf文件,我從meta層添加了所需的conf文件。具體如下: # mymachine32.conf require conf/machine/include/tune-cortexa7.incyocto jethro:是否可以動態設置DEFAULTTUNE

# 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

With 方法#1在我的conf文件,我看到以下錯誤:

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

請注意,在這兩種情況下,我都在我的外殼中導出MYTUNE

export MYTUNE=arm

你能指出我做錯了什麼嗎?先謝謝您的幫助。

回答

1

對於方法#1,代碼在base.bbclass之前被解析並執行,因此base_contains不可用。

對於方法#2,我懷疑在評估表達式時未設置MYTUNE。我認爲這是因爲當你在環境中設置它時,你不會指示它應該允許它進入數據存儲區。嘗試添加:

出口BB_ENV_EXTRAWHITE = MYTUNE

這應該允許MYTUNE到數據存儲。您可以通過對MYBUNE的bitbake -e的輸出進行grep來檢查它是否按預期設置。

+0

謝謝理查德。我嘗試導出BB_ENV_EXTRAWHITE =「$ BB_ENV_EXTRAWHITE MYTUNE」,這似乎適用於我。我現在將嘗試爲兩個具有相同conf文件的體系結構構建。 – sob

相關問題