RDK Resources

[*RDK Preferred*]

Code Management Facility

Code Releases

RDK Forums

[RDK Conferences]

RDK Support


Papers & Presentations Archive

In the News!

Skip to end of metadata
Go to start of metadata


RDK-B Emulator Build Instructions









Release version


Sept 04, 2018



1          Build Setup Instructions


1.1         Setting up the Host Environment





32 bit Ubuntu 16.04 OS

Fee HDD Space

Minimum 100GB Free Memory

Oracle Virtual Box

4.3.18 or higher

Wireless Adapter

Brand Name:

Tenda ralink & Model Number:W311MI

TPLink Archer T4U AC1200

USB to Ethernet Switch

To connect with Ethernet Switch & Multiple Clients


1.1.1          Install OS - Ubuntu-16.04

This step is for one time setup for downloading & building RDK-B Emulator in a standalone machine.

  • Download Ubuntu-16.04.

1.1.2          Install the following packages for setting up your host VM

The instructions provided below are meant to be executed via the command line on an Ubuntu machine:

$         sudo apt-get   install     build-essential gettext bison libfile-slurp-perl gawk libncurses-dev autoconf flex doxygen libtool automake   libpcre3-dev zlib1g-dev libbz2-dev subversion minicom putty libssl-dev rpm python-pexpect python-svn python-argparse vim tofrodos meld dos2unix cmake uuid-dev ruby transfig libglib2.0-dev xutils-dev lynx-cur gperf autopoint   python-dulwich   python-dev curl vim diffstat texinfo chrpath   openjdk-7-jre


1.1.3          Configure bash as default command interpreter for shell scripts

$         sudo dpkg-reconfigure dash

Select “No”
To choose bash, when the prompt asks if you want to use dash as the default system shell - select “No”


1.1.4          Configure Git

Upgrade your Git version to 1.8.x or higher

On Ubuntu 16.04 LTS, if you are unable to upgrade your git version using apt-get, then follow the below steps in order to upgrade  

$       sudo apt-get install python-software-properties

$       sudo add-apt-repository   ppa:git-core/ppa

$       sudo apt-get update

$       sudo apt-get install git

  Once git is installed, configure your name and email using the below commands

$ git config --global user.email " you@example.com "

$                 git config --global user.name "Your Name"


1.1.5          Configure repo

In order to use Yocto build system, first you need to make sure that repo is properly installed on the machine:

$                 mkdir ~/bin

$                 PATH=~/bin:$PATH

$                 curl   https://storage.googleapis.com/git-repo-downloads/repo   > ~/bin/repo

$                 chmod a+x ~/bin/repo

Trivia :   Repo is a repository management tool that is built on top of Git. Its main purpose is to help manage projects that consist of many Git repositories, it can also be used to manage uploads to the CMF Gerrit instance and automate aspects of the development workflow.

Repo does not replace Git, it simply aids management of projects that contain multiple Git repositories into a single local working directory. Git will still be used for local operation such as commits etc.

Repo manages this for you by means of an XML based Manifest file. The Manifest file defines which repositories the project uses and links to appropriate revisions of each git repository, i.e where the upstream repositories reside and where they should be cloned locally. It is the manifest.xml (or default.xml) that determines which Git repositories and revisions repo will manage. This manifest.xml file is hosted in a Git repository along with all the other git repositories.


1.1.6          Setting up .netrc for RDK emulator

CMF git uses https. This step prevents the password prompt every now and then during code checkout and build.

Create a file .netrc in home directory.

$ vi .netrc

The contents of the .netrc should be as follows:

machine code.rdkcentral.com


password <YOUR_PASSWORD>


1.2         Downloading Source Code & Building


1.2.1          Downloading Source Code

Following commands fetch the source code of emulator using repo tool

$ mkdir emulator && cd emulator

Please use the following repo init command


$ repo init -u https://code.rdkcentral.com/r/manifests -m rdkb.xml -b <branch_name>

(Example 1: repo init -u https://code.rdkcentral.com/r/manifests -m rdkb.xml -b rdkb-20180527

Example 2: repo init -u https://code.rdkcentral.com/r/manifests -m rdkb.xml -b master

Example 3: repo init -u https://code.rdkcentral.com/r/manifests -m rdkb.xml -b morty)


$ repo sync -j4 --no-clone-bundle


1.2.2          Building

$ source meta-cmf-bsp-emulator/setup-environment

The above step configures and sets up your directory to start an appropriate build for broadband.

There are different kinds of builds listed. Please read the options and select the number of the build you need.

1) meta-rdk-bsp-emulator/conf/machine/qemuarmbroadband.conf
2) meta-rdk-bsp-emulator/conf/machine/qemux86broadband.conf
3) meta-rdk-bsp-emulator/conf/machine/qemux86hyb.conf
4) meta-rdk-bsp-emulator/conf/machine/qemux86mc.conf
5) openembedded-core/meta/conf/machine/qemuarm.conf
6) openembedded-core/meta/conf/machine/qemux86-64.conf
7) openembedded-core/meta/conf/machine/qemux86.conf

  • Select option (option: 2) for qemux86broadband , if you need to build a RDK-B emulator.

Next, you would need to initiate the build using the following command:

$ bitbake rdk-generic-broadband-image

On Successful build,   the ROOTFS   (in vmdk format) would be available at the following reference location based on the build type:

-             ${HOME}/emulator/build-qemux86broadband/tmp/deploy/images/qemux86broadband/rdk-generic-broadband-image-qemux86broadband-<timestamp>.vmdk




  • No labels


  1. Please note openjdk-7-jre package is not available for Ubuntu-16.04 anymore. Presumably openjdk-8-jre should be used instead.
    While installing the package following error appears:
    "Package openjdk-7-jre is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source"

    1. If you don't mind the security issues (since Java 7 is no longer supported), you can install openjdk-7-jre on Ubuntu 16 by following the instructions in https://askubuntu.com/questions/761127/how-do-i-install-openjdk-7-on-ubuntu-16-04-or-higher .

  2. Am unable to download the source, getting following error.

    root@vtguser:/home/RDKB-Rpi# repo init -u https://code.rdkcentral.com/r/manifests -m rdkb.xml -b morty
    Username for 'https://code.rdkcentral.com': jpcleona
    Password for 'https://jpcleona@code.rdkcentral.com':
    fatal: remote error: access not permitted

    1. Yogomaya Maharana  Could you please check the access for the above user?

      1. Cleona Please not that you are using a personal email address. While most of the RDK components are available free, a handful of components are distributed under the free RDK License Agreement.
        To obtain the RDK License Agreement, please fill in the form on the right side of this page and click submit. Upon full execution of the agreement, you will be provided access to the RDK source code components. Please contact RDK Management at info@rdkcentral.com in case you need more information.

  3. Am getting following error while trying to sync emulator sources for RDK-B with new account. Please take a look and suggest the solution.

    Fetching project components/generic/rdk-oe/meta-rdk-broadband
    Username for 'https://code.rdkcentral.com':
    remote: Unauthorized
    fatal: Authentication failed for 'https://code.rdkcentral.com/r/components/asp/rdk-oe/meta-cmf-bsp-emulator/'
    error: Cannot fetch components/asp/rdk-oe/meta-cmf-bsp-emulator from https://code.rdkcentral.com/r/components/asp/rdk-oe/meta-cmf-bsp-emulator
    Fetching projects: 40% (38/93)
    Fetching project devices/intel-x86-pc/rdkemulator/tdk
    Username for 'https://code.rdkcentral.com':
    remote: Unauthorized

  4. Hi,
    I am not able to download rdkb-2019q3 and getting below errors.

    root@chauhan-pvf:/home/chauhan/emulator# repo init -u https://code.rdkcentral.com/r/manifests -m rdkb.xml -b rdk-2019q3
    fatal: remote error: access at least one ref not permitted

    I Tried to clone Utopia which I am able to clone properly.

    Please help me to fix this issue.

    My user name is digvijay.chauhan


    1. Hi Digvijay Singh Chauhan

      Did you tried logging in once to https://code.rdkcentral.com once before trying to checkout the code?


      1. Hi Digvijay Singh Chauhan

        Please try with rdkb-2019q3 instead of rdk-2019q3

        1. Hi Narayanaswamy Ramaiyer

          I tried both rdkb-2019q3 and rdkb-20180527 but got the same error, Is it related to some access?

          root@chauhan-pvf:/home/chauhan/emulator# repo init -u https://code.rdkcentral.com/r/manifests -m rdkb.xml -b rdkb-2019q3
          repo: warning: Python 2 is no longer supported; Please upgrade to Python 3.6+.

          ... A new version of repo (2.5) is available.
          ... You should upgrade soon:
          cp /home/chauhan/emulator/.repo/repo/repo /usr/bin/repo

          fatal: remote error: access at least one ref not permitted
          fatal: remote error: access at least one ref not permitted

          fatal: remote error: access at least one ref not permitted
          fatal: remote error: access at least one ref not permitted

          fatal: cannot obtain manifest https://code.rdkcentral.com/r/manifests