RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
...
Note : - Repo commands will not fetch any of the source code. Instead fetch the recipes which will have the URIs of source code repositories.
To build a Yocto project, the following sample steps are necessary
...
Note: build-<machine> (e.g. build-oem-platform) - This is the object/build directory, all objects and intermediate files for all components are stored in this folder. if you want to do a clean build you can delete this folder, then run ./meta-cmf/setup-environment and rebuild. The build will be very fast since it will reuse the sstate (prebuilts) during this build, assuming the sstate-cache directory was populated with previous builds already.
The repo tool is used to set up the workspace and bitbake is used to facilitate builds. The following commands serve to illustrate the steps involved in building for a platform
$ repo init -u https://<URL>/r/<platform manifests> -b master -m oem-soc-platform.xml --no-repo-verify
$ repo sync
(patch qtwebsockets, jquery in generic subdirectory where externalsrc source trees are located)
$ MACHINE=oem-platform . ./meta-cmf/setup-environment
$ bitbake cmf-generic-mediaclient-image
...
Summary:
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.
The following sample manifest file assumes a Pace Broadcom platform :
<!-- Yocto OpenEmbedded build environment -->
<project path="build/workspace/platform/openembedded-core" remote="github" name="openembedded/openembedded-core" groups="oe,rdk" revision="daisy"/>
<project path="build/workspace/platform/openembedded-core/bitbake" remote="github" name="openembedded/bitbake" groups="oe,rdk" revision="1.22"/>
<project path="build/workspace/platform/meta-openembedded" remote="github" name="openembedded/meta-openembedded" groups="oe,rdk" revision="daisy"/>
<project path="build/workspace/platform/meta-qt5" remote="github" name="meta-qt5/meta-qt5" groups="oe,rdk" revision="daisy"/>
<project path="build/workspace/platform/meta-linaro" remote="linaro" name="openembedded/meta-linaro" groups="oe,rdk" revision="daisy"/>
<project path="build/workspace/platform/meta-browser" remote="github" name="OSSystems/meta-browser" groups="oe,rdk" revision="63963cc56c8d0291779693e62b66cb16e5c86883" upstream="master"/>
<project path="build/workspace/platform/meta-java" remote="yocto" name="meta-java" groups="oe,rdk" revision="master"/>
<!-- Yocto OpenEmbedded patches for CMF Yocto builds -->
<project path="build/workspace/platform/patches/rdk-oe" name="components/opensource/patches/rdk-oe"/>
<!-- Yocto RDK build environment -->
<project path="build/workspace/platform/meta-rdk" name="components/generic/rdk-oe/meta-rdk"/>
<project path="build/workspace/platform/meta-rdk-soc-broadcom" name="mirrors/yocto_oe/layers/meta-rdk-soc-broadcom" remote="mirrors"/>
<project path="build/workspace/platform/meta-rdk-oem-pace-broadcom" name="mirrors/yocto_oe/layers/meta-rdk-oem-pace-broadcom" remote="mirrors"/>
<!-- CMF override build environment -->
<project path="build/workspace/platform/meta-cmf" name="components/generic/rdk-oe/meta-cmf"/>
<project path="build/workspace/platform/meta-cmf-qt5" name="components/generic/rdk-oe/meta-cmf-qt5"/>
<project path="build/workspace/platform/meta-cmf-brcm" name="platforms/yocto/meta-cmf-brcm"/>
<project path="build/workspace/platform/meta-cmf-brcm-rdk" name="platforms/yocto/meta-cmf-brcm-rdk"/>
<project path="build/workspace/platform/meta-cmf-comcast" name="platforms/yocto/meta-cmf-comcast"/>
<project path="build/workspace/platform/meta-cmf-pacebrcm" name="platforms/yocto/meta-cmf-pacebrcm"/>
<project path="build/workspace/platform/meta-cmf-pacexi3v2" name="platforms/yocto/meta-cmf-pacexi3v2"/>