我想爲新機器添加一些從上游獲取的圖層(稱爲A),主要是爲了使用機器從這些圖層提供的配置文件,內核和u-boot。但是,新圖層有幾個bbappend文件(也包含bb文件),該版本與我的yocto項目中其他機器的圖層不同。yocto中的機器特定圖層
例如,機器A都有自己gstreamer1.0_1.8.1.bb和bbappend文件。 其他機器正在使用gstreamer1.0_1.6.1.bb。當我爲另一臺機器構建映像時會發生什麼,因爲它會構建版本1.8.1,因爲Yocto會一直尋找最新的兼容版本的軟件包並構建它。但是,gstreamer1.0_1.8.1.bbappend文件專門爲機器A編寫,不適用於其他機器並導致錯誤。不僅gstreamer,還有更多。
我喜歡在bblayers.conf文件BBLAYERS_A += "new_layers \ ..."
想法,但不幸的是它不工作,我希望它的方式。
另一個想法我就像是:
BBMASK_B = "new_layers \ ..."
BBMASK_C = "new_layers \ ..."
BBMASK_D = "new_layers \ ..."
BBMASK_E = "new_layers \ ..."
BBMASK_F = "new_layers \ ..."
BBMASK_G = "new_layers \ ..."
BBMASK_H = "new_layers \ ..."
BBMASK_I = "new_layers \ ..."
...
它看起來並不對我好,我懷疑它不會正常工作。我認爲構建過程是首先加載bblayers.conf文件,然後加載local.conf。因此,在知道將要構建的機器之前,會部署這些圖層。
我的問題是如何讓那些以機只有一個工作新增加的層,但不會得到由其他機器使用。
COMPATIBLE_MACHINE是有意義的。然而,我的道歉,我的情況是大多數層(不僅是機器)從上游取(我修改了一下問題),我不想在本地更改上游bbappend文件。我怎麼能實現它?有沒有像local.conf,我可以在全局進行更改,而不是修改層中的文件? –
那麼,層是通用層,但您希望它們僅應用於單臺機器?還是他們是機器特定的層,即上游聲稱是機器特定的層? – Anders