meta-guacamole overlay for Poky/Yocto
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Guacamayo is a customizable platform for multimedia appliances, based on the
Yocto framework (what else?).

At present images are known to work with Intel Atom based devices such as Zotac
ZBox, the Beagleboard/Beaglebone boards and Raspberry Pi (though not all image
types are available for all of these). Please see the board-specific READMEs in
the doc directory.


  git clone git://
  cd meta-guacamayo
  git submodule update --init

  source init-build-env

  # Now edit build/conf/local.conf to suit your needs; among other things,
  # please pay attention to the LICENCSE_FLAGS_WHITELIST variable
  # discussed below.

  # Beagleboard: you will need to download Texas Instruments Code Generation
  # Tools: see meta-guacamayo/recipes-graphics/ti-appends/ti-cgt6x_*.bbappend
  # for details of what to do.

  bitbake guacamayo-image-<type>

  (For the image types, see below.)

The resulting images are located in the tmp/deploy/images directory; image type
and subsequent installation is, naturally, depended on the device.

By default, Guacamayo uses only packages with non-restrictive licenses, but some
useful packages do not fall into this category (e.g., codecs). You can enable
the use of these by appropriately setting the variable LICENSE_FLAGS_WHITELIST
in your local.conf. Currently two types of restrictions are in place:

'commercial':      packages with this license flag require the purchase of a
                   license for commercial deployment (e.g., Fluendo codecs for
                   GStreamer), but are free for non-commercial use.

'non-commercial':  packages in this category can *only* be used non-commercially
                   and must not be commercially deployed (e.g., the package
                   connman-guacamayo-ntp containing configuration for the NTP
                   pool, in this case commerical users must use their own NTP

Documentation on working with Poky in general can be found at;
the following is specific to Guacamayo:

Image Types
Guacamayo provides several different image recipes aimed at different types
of appliance:

guacamayo-image-mediaserver: an image for network attached UPnP/DLNA media
                             server (no rendering capabilities); this is the
                             most minimal of Guacamayo images.

guacamayo-image-audioplayer: a small image for an audio player; works on Atom,
                             Raspberry Pi, Beaglebone and Beagleboard ; good
                             place to start at.

guacamayo-image-mex:         An image with MediaExplorer shell. Depending on
                             the machine, the shell is running under either
			     under X11 or under native EGL.

NB: The MEX elg and x11 packages sets are not parallel installable, use if you
    want to experiment with switching from the default for the given machine,
    make sure to build in a different tmp directory.

Audio Codecs
Out of the box you get support for Ogg and Flac; Mp3 support in Guacamayo images
is facilitated by the Fluendo GStreamer plugin, but as this requires a license
for commercial use, it is disabled by default; you can enable it by whitelisting
commercial licenses in your build/conf/local.conf as discussed above.

The git repository contains the build system for the guacamayo images, with the
following sub directories:

meta-guacamayo: the Guacamayo layer for Poky; the aim is to keep this as thin
          as possible, using upstream Yocto packages where possible and

upstream: this is where the upstream meta layers go; to add a new meta layer:
           1. add git submodule into a subdirectory of upstream
           2. link the meta-whatever directory into the layers directory
           3. update meta-guacamayo/conf/bblayers.conf.sample accordingly
           4. rm build/conf/bblayer.conf so it gets regenerate in the next step
           5. source init-build-env

layers:   this directory holds all the layers into a single whole; it should
          contain no real files, only symlinks