Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

$ repo init -u https://YOUR_USERNAME@code.rdkcentral.com/r/manifests -b 2.1-20150629<release> 
$ repo sync --no-clone-bundle 

Note : The above commands illustrate how to access the specific CMF iteration (snapshot) RDK-2.1-20150629. Substitute the latest iteration currently available in RDKV-Releases page. If you want to get the very latest state of the code (i.e. current development), do not supply a branch, and master will be fetched: 

$ repo init -u https://YOUR_USERNAME@code.rdkcentral.com/r/manifests
$ repo sync --no-clone-bundle 

The first command will download the manifest, while the other command will fetch and checkout all the relevant git trees. Now you have a complete folder structure ready to build the RDK OpenEmbedded distro. The Manifest file(manifest.xml or default.xml) defines which repositories the project uses and links to appropriate revisions of each git repository. After completing "repo init", manifest files will be downloaded in ".repo/manifests/" path. 

...

repo init -u https://code.rdkcentral.com/r/manifests -b 2.1<release> -20160613 -m emulator.xml

Note : - Repo commands will not fetch any of the source code. Instead fetch the recipes which will have the URIs of source code repositories.

Note
  • Cloning the code before login once to code.rdkcentral.com, user would get the Authentication error, even though the account is in good standing and has all the required access.
  • Please login to code.rdkcentral.com before attempting to clone.

Initializing the Build Environment

To build a Yocto project, the following sample steps are necessarybuild OpenEmbedded we first need to initialize the build environment and to generate the build configuration files, namely:

  • <BUILDDIR>/conf/local.conf which contains build parameters, such as distro name, options to control build parallelism, ..
  • <BUILDDIR>/conf/bblayers.conf which contains the list of "OE Layers" that we want to use for the build.

A "helper" script has been created to facilitate the creation of these files. You can initialize the build environment with:

$ cd <workspace dir>
$ source meta-cmf/setup-environment

...

In a normal Yocto build build, the repo sync command would download the metadata and then bitbake, upon execution, would download the code and build. In this instance, the repo sync command downloads not just the recipes but also the code for individual components using a Yocto/OE feature called EXTERNALSRC.

Note: The RDKM CMF Gerrit does not distribute OEM/SoC specific meta layers or platform manifests. It is necessary to contact the SoC vendor for these packages and supporting information.

...

Example manifest file snippet

The following sample manifest file assumes a Pace Broadcom platform is taken from CMF stack :

Code Block
<!-- Yocto OpenEmbedded build environment -->

<project path="openembedded-core/bitbake" remote="github" name="openembedded/bitbake" revision="1.28" />
<project path="

...

meta-browser" remote="github" name="

...

OSSystems/

...

meta-

...

browser" 

...

revision="

...

63963cc56c8d0291779693e62b66cb16e5c86883" 

...

upstream="

...

master" />
<project path="meta-java" remote="yocto" name="meta-java" revision="66c97ae7461f4c1a13917131787bb76dc34e6b6f" upstream="master" />
<project path="

...

meta-linaro" remote="

...

linaro" name="openembedded/

...

meta-linaro" 

...

revision="

...

06008235ca752fea678953e85adaa29a491d246b" 

...

upstream="

...

daisy" />

...

<project path="

...

meta-openembedded" remote="github" name="openembedded/meta-openembedded" 

...

revision="

...

d3d14d3fcca7fcde362cf0b31411dc4eea6d20aa" 

...

upstream="daisy" />

...

<project path="

...

meta-qt5" remote="github" name="meta-qt5/meta-qt5" 

...

revision="

...

f6f2d16260ae5b35828264a553c05f065aa9d7e2" 

...

upstream="daisy" />

...

<project path="

...

meta-

...

raspberrypi" remote="

...

yocto" name="

...

meta-

...

raspberrypi" 

...

revision="

...

68634deeed2a930a15eedd02e6b1de7d1e014d3b" 

...

upstream="

...

master" />

...

<project path="

...

meta-

...

virtualization" remote="

...

yocto" name="

...

meta-

...

virtualization" 

...

revision="

...

a89c11a3d89601f6d8499bd7d0f265cf4512d772" upstream="master" />

...

<project path="

...

openembedded-core" remote="

...

github" name="

...

openembedded/openembedded-

...

core" 

...

revision="

...

e1a2540227250d854d5bba278634bcc9e7572cda" 

...

upstream="

...

daisy" />

...


<!-- Yocto OpenEmbedded patches for CMF Yocto builds

...

-->

...

<project 

...

name="

...

components/

...

opensource/patches/rdk-oe" 

...

path="

...

patches/rdk-oe" />

...


<!-- Yocto RDK build environment -->

...

<project

...

 name="components/generic/rdk-oe/meta-rdk"

...

 

...

path="

...

meta-rdk

...

" />
<project name="

...

components/generic/rdk-oe/

...

meta-rdk-

...

bsp-

...

raspberrypi" 

...

/>

...

<project 

...

name="

...

components/

...

generic/

...

rdk-oe/meta-rdk-

...

video" 

...

path="

...

meta-rdk-

...

video" 

...

/>


...

<!-- Yocto CMF 

...

build environment -->

...


<project name="components/generic/rdk-oe/meta-cmf"

...

 path="

...

meta-cmf

...

" />
<project name="components/generic/rdk-oe/meta-cmf-

...

raspberrypi"

...

 

...

path="

...

meta-cmf-

...

raspberrypi"/>

...

<project 

...

name="

...

components/

...

generic/rdk-oe/meta-cmf-

...

video"

...

 

...

path="

...

meta-cmf-

...

video" />