Layers FAQ: Difference between revisions
PaulEggleton (talk | contribs) |
PaulEggleton (talk | contribs) |
||
Line 41: | Line 41: | ||
== Can I overlay/append an inc file from another layer in my layer? == | == Can I overlay/append an inc file from another layer in my layer? == | ||
No, you can't; inc files aren't handled in the same manner as .bb and .bbappend files. The best way to handle this is to | No, you can't; inc files aren't handled in the same manner as .bb and .bbappend files. The best way to handle this is to bbappend each recipe that includes the inc file. | ||
[[Category:FAQ]] | [[Category:FAQ]] |
Revision as of 00:10, 23 March 2013
What is a layer?
In OpenEmbedded, a layer is just a collection of recipes and/or configuration that can be used on top of OE-Core. Typically each layer is organised around a specific theme, e.g. adding recipes for building web browser software.
Where do I find existing layers?
See LayerIndex.
How do I make use of a layer?
Clone / extract it somewhere (typically next to or within your OE-Core base directory, but the exact location is not critical) and then add the full path to it to the value of BBLAYERS
in your conf/bblayers.conf
in your build directory. Note that some layers depend on other layers; it is recommended that you consult the README file within the layer if one is included. Additionally, note that some layer repositories contain multiple layers - in this case there will be subdirectories in the repository corresponding to each layer.
How do I create a new layer?
See Creating a new Layer.
Is there any other documentation on layers?
Yes - the Yocto Project provides a set of manuals that cover layers in some detail.
- For general information see "Understanding and Creating Layers" in the Reference Manual.
- For creating a layer for supporting a machine, see the BSP Developer's Guide.
How do I include an inc file from another layer?
You need to specify the path from the base of the other layer to where the inc file is located; e.g:
require recipes-graphics/xorg-driver/xorg-driver-input.inc
I've bbappended a recipe in my layer to replace a file with my own version but it's not being picked up - why not?
Assuming your bbappend is extending FILESEXTRAPATHS (which it must do), the probable cause is that the directory you have added to FILESEXTRAPATHS and the directory in which you have placed the file aren't the same. For example, if you have the following in your bbappend:
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
then your file must be placed in a directory named ${PN} - i.e. if your recipe file is called "magicrecipe_1.0.bb then the directory would need to be named "magicrecipe". If you prefer, you can adjust the directory name added to FILESEXTRAPATHS as shown above to something else.
I've added a layer to my bblayers.conf and now the system is building an older version of some recipe - why?
The added layer likely has a higher layer priority than the one that contains the existing newer recipe. You can use PREFERRED_VERSION_recipename in your distro or local configuration to override the default selection and select the newer recipe.
Can I overlay/append an inc file from another layer in my layer?
No, you can't; inc files aren't handled in the same manner as .bb and .bbappend files. The best way to handle this is to bbappend each recipe that includes the inc file.