[yocto] Navigating the layer labyrinth

Joshua Lock joshua.g.lock at linux.intel.com
Thu Oct 12 07:03:41 PDT 2017



On 12/10/17 10:34, Bernd wrote:
> I am a new user for a few weeks now, trying to make a customized image
> for a toradex colibri-vf module, so far I have succeeded in the
> following disciplines:
> 
> * adding the 3rd party layers that I need
> * making my own layers
> * using a .bbappend to patch the device tree
> * using a .bbappend to workaround a bug(?) in one of the freescale layers
> * writing my own recipe to install a python script
> * writing recipes for pulling additional python packages with pypi and
> setuptools3
> * writing my own image recipe
> * making it boot and run on the target platform
> 
> During this learning experience I have made the following observations
> of circumstances that made it especially hard for me to get things
> done, I'm not yet really sure if this is a documentation issue or if
> it is really a missing feature but I feel I could have had a much
> *much* easier time learning and understanding the concepts and
> relationships and the inner workings of existing layers upon which I
> want to build my system if the following things were possible (and/or
> if they are already possible they should be documented in the very
> first chapter of the documentation):
> 
> * Finding the *file path* of an existing recipe (or append file or
> class) *by its name* and also all existing .bbappends for it, i
> imagine something simple like bitbake --show-paths foo-bar would
> output me the small list of absolute paths of recipe files by the name
> foo-bar and all matching .bbappend files in the order in which they
> would be applied, it would show me only this small list of paths and
> not dump 100kb of unrelated information along with it. This would be
> incredibly helpful when I need to inspect an existing recipe in order
> to understand how I can bbappend it or even just to see and understand
> what it actually does.

bitbake-layers supports at least some of this functionality:

$ bitbake-layers -h
NOTE: Starting bitbake server...
usage: bitbake-layers [-d] [-q] [-F] [--color COLOR] [-h] <subcommand> ...

BitBake layers utility

optional arguments:
   -d, --debug           Enable debug output
   -q, --quiet           Print only errors
   -F, --force           Force add without recipe parse verification
   --color COLOR         Colorize output (where COLOR is auto, always, 
never)
   -h, --help            show this help message and exit

subcommands:
   <subcommand>
     add-layer           Add a layer to bblayers.conf.
     remove-layer        Remove a layer from bblayers.conf.
     flatten             flatten layer configuration into a separate output
                         directory.
     layerindex-fetch    Fetches a layer from a layer index along with its
                         dependent layers, and adds them to 
conf/bblayers.conf.
     layerindex-show-depends
                         Find layer dependencies from layer index.
     show-layers         show current configured layers.
     show-overlayed      list overlayed recipes (where the same recipe 
exists
                         in another layer)
     show-recipes        list available recipes, showing the layer they are
                         provided by
     show-appends        list bbappend files and recipe files they apply to
     show-cross-depends  Show dependencies between recipes that cross layer
                         boundaries.
     create-layer        Create a basic layer

Use bitbake-layers <subcommand> --help to get help on a specific command

Thanks,

Joshua



More information about the yocto mailing list