[yocto] Is it possible to add machine specific changes in a separate custom layer?

Paul Eggleton paul.eggleton at linux.intel.com
Tue Sep 24 01:52:00 PDT 2013


Hi Felix,

On Monday 23 September 2013 18:40:19 Felix01 Fischer wrote:
> My goal is to build a custom-layer which supports 2 devices building on
> top of the meta-intel and meta-ivi layer without changing anything except
> my meta-custom layer.
> 
> Is it possible to have machine specific changes in a separate layer
> building on top of  another layer?
> I want to costumise meta-intel/meta-crownbay and
> meta-intel/meta-chiefriver without changing something inside the
> meta-intel layer.
> My goal is to have modifications for the meta-intel layer in a meta-custom
> layer, which only get considered if a certain MACHINE ?= "XXXX"  (crownbay
> or chiefriver) from the meta-intel layer is set.
> Is this possible?

This is definitely possible - the key is to make use of bbappends and machine
overrides. Append files are covered here:

http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#using-bbappend-files

Overrides effectively make an assignment statement apply only when the
specified override appears in the value of the OVERRIDES variable. For
example:

VARIABLENAME = "the default value"
VARIABLENAME_crownbay = "value specific to crownbay machine"

You can use append/prepend to add to the variable value instead of just
setting it:

ANOTHERVARIABLE_append_chiefriver = " appended only for chiefriver"
ANOTHERVARIABLE_prepend_crownbay = "prepended only for crownbay "

By default, the value of OVERRIDES includes the value of MACHINE, DISTRO, etc.
If you run bitbake -e | less and then search (with /) for OVERRIDES= you can
see how how OVERRIDES is constructed.

> I have the same question regarding DISTRO. I want some changes to be
> considered if DISTRO = poky and some other changes when DISTRO =
> poky-ivi-systemd.

Same as above only you'd be using the distro name as the override e.g.

SOMETHING_append_poky = " whatever poky-specific additions are needed"

> Is it possible to maintain these modifications in ONE custom layer or do I
> need to have seperate layers (one for poky, one for poky-ivi-systemd and
> machine specific changes inside the meta-intel layer)?

You don't have to, but generally we recommend keeping the machine
customisations separate from policy (distro) customisations. This can make
things easier if you have to change the machine later.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the yocto mailing list