oe 2.6 for dreambox


  • opendreambox 2.6


    This is the build system of the opendreambox distribution, an embedded Linux distribution for Set-Top-Boxes manufactured by Dream Property GmbH.

    It is based on the OpenEmbedded build framework, which uses BitBake to transform build instructions into distributable firmware images and software packages.

    The current version is based on the Yocto Project release 2.3 „Pyro“, an umbrella project for OpenEmbedded and related tools.

    We highly recommend taking a look at the Yocto Project Reference Manual.


    Contributions


    Maintainers of this release are:

    https://github.com/opendreambox/opendreambox#license

    Bug reports


    Please use GitHub's issue tracker to create bug reports, or send a mail to bugs@opendreambox.org or one of the maintainers listed above.


    Patches


    We accept pull-requests on GitHub as well as patches submitted by mail to patches@opendreambox.org or one of the maintainers listed above.

    When sending patches by mail, please use something like git send-email -M -1 --to patches@opendreambox.org to let git send it, or git format-patch -M -1 and send the resulting file as attachment, after all changes have been committed to your local copy of the repository.


    Supported products


    This release includes support for the following products:

    Product name Environment variable
    Dreambox One MACHINE=dreamone


    License



    Obtaining the source code


    To initially download the source into the current directory, issue the following command:

    git clone -b pyro https://github.com/opendreambox/opendreambox.git


    Quick start


    For the impatient:

    make -C opendreambox image

    If this command fails, prerequisites may be missing. See section „Prerequisites“ below.


    Directory structure


    Currently, these layers are used:

    • meta-dreambox
    • meta-games
    • meta-golang
    • meta-opendreambox
    • meta-openembedded/meta-filesystems
    • meta-openembedded/meta-multimedia
    • meta-openembedded/meta-networking
    • meta-openembedded/meta-oe
    • meta-openembedded/meta-python
    • meta-openembedded/meta-webserver
    • meta-qt5
    • openembedded-core/meta

    If a recipe for the same package exists in multiple layers, then the higher priority layer takes precedence over the lower priority layer.

    For example, if libmad_0.15.1b.bb existed in both meta-openembedded and openembedded-core, the recipe in meta-openembedded would be used, because openembedded-core has lower priority. Priority values are determined by the variable BBFILE_PRIORITY in conf/layer.conf of each layer.

    NOTE: This would still be true even if the version of libmad in openembeded-core was higher than the version in meta-openembedded, unless PREFERRED_VERSION_libmad was set to the version in openembedded-core. There is currently no way to prefer a version of a lower priority layer, if the same version is present in a higher priority layer.


    openembedded-core and meta-openembedded


    These directories contain copies of Git repositories from git.openembedded.org, including the OpenEmbedded-Core layer and the (Meta-)OpenEmbedded layers. They get created automatically when building the distribution for the first time.

    Throughout this document, the combination of these directories will be referred to as OpenEmbedded.

    The latest changes to these Git repositories can be seen at:


    meta-opendreambox


    This directory contains:

    • Recipes for packages written specifically for the opendreambox distribution
    • Modifications to recipes from OpenEmbedded
    • Recipes for different software versions than those available from OpenEmbedded


    meta-dreambox


    The directory meta-dreambox contains Board Support Packages (BSP) for the supported Dreambox models. This includes:

    • Hardware drivers
    • Machine specific overrides
    • The Linux kernel
    • The boot loader
    • Splash images


    Prerequisites


    The OpenEmbedded project provides a general list of prerequisites for many Linux distributions and also for some other operating systems.

    It is highly recommended to use Linux to build opendreambox. In theory, any recent distribution will do, but not many distributions have been verified to build opendreambox without errors. Tested distributions include:


    Major changes since previous public release (2.5)


    • Added support for Dreambox One.
    • Moved from Yocto „Krogoth“ to „Pyro“.
    • OpenEmbedded switched to recipe-specific sysroots, which mandates passing an additional parameter to cross-compile.env, to specify the sysroot to be used.
    • You may pass a machine name to bitbake.env, which allows tools like devtool to be used.


    Known issues


    • Machines other than Dreambox One are not supported yet.


    Building opendreambox


    In the top level directory, there is a Makefile, which is used to set up build directories and to fetch or update all used repositories. The Makefile can be influenced by environment variables, either by specifying them on the command-line or by storing them in a file called conf/make.conf. It is not recommended to edit the Makefile directly in order to avoid conflicts with future updates.

    When the Makefile is run for the first time, the following steps will be executed:

    • Creation of configuration files
      • bitbake.env
      • conf/opendreambox.conf
      • build/${MACHINE}/conf/bblayers.conf
      • build/${MACHINE}/conf/local.conf
    • Update or checkout of Git repositories
      • opendreambox
      • BitBake
      • OpenEmbedded


    Makefile targets


    Run make help to get a list of targets of the top level Makefile, together with a brief description.



    INHERIT


    INHERIT specifies bbclasses to include from a configuration file. Usually, this variable gets appended to by using the +=operator.

    The opendreambox distribution automatically appends "buildhistory recipe_sanity" to INHERIT.

    Default: INHERIT = ""

    Some examples:

    Always build the latest versions of opendreambox-related projects from Git:

    INHERIT += "opendreambox-autorev"


    Setting up a build directory


    To set up a build directory for e.g. DM920 run make MACHINE=dm920. If MACHINE=dm920 has been set in conf/make.conf(default: dreamone), you can simply run make with no arguments instead. This will create and initialize the directory build/dm920.


    Building a firmware image


    To build a firmware image for e.g. DM920 run make MACHINE=dm920 image. If MACHINE=dm920 has been set in conf/make.conf(default: dreamone), you can simply run make image instead.


    Building a package


    To build a single package, BitBake has to be used directly. First, the environment has to be set up, in order to make BitBake available to the shell. This can be done with the following command:

    source bitbake.env dm920

    You can omit the last parameter, in which case you need to change to the build directory of your target machine before starting a build (cd build/dm920).

    In order to build enigma2, run:

    bitbake enigma2.


    https://github.com/opendreambox/opendreambox#license

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!