Versions Compared

Key

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

...

Setting up the Host Environment

...

RDK-V Emulator Build Instructions

Downloading Source Code & Building

...

RDK-V Emulator Build Instructions

Bringing up the Emulator on Virtual Box

...

Host Requirements

RequirementRemarks
Linux                           32/64 bit Ubuntu 16.04 operating system
Free HDD SpaceMinimum 100GB Free Memory
Oracle Virtual Box4.3.18 or higher

Install OS - Ubuntu 16.04

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

Install the following packages for setting up your host VM:

$     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

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”

Also install the below list of packages for Yocto build:

$     sudo apt-get install sed wget cvs subversion git-core coreutils unzip texi2html texinfo libsdl1.2-dev docbook-utils gawk python-pysqlite2 diffstat help2man make gcc build-essential g++ desktop-file-utils chrpath libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff

Configure Git:

Upgrade your Git version to 1.8.x or higher

On Ubuntu 12.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"

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.

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 login <gerrird_userid> password <gerrit_password>

Downloading Source Code & Building

The following commands fetches the source code of emulator using repo tool

Code Block
languagebash
themeRDark
titleyocto workspace setup
mkdir emulator && cd emulator
repo init -u https://code.rdkcentral.com/r/manifests -m rdkv-nosrc.xml
repo sync

...

The above step configures and sets up your directory to start an appropriate build for hybrid or media client.

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

Following options are just a sample guide:

For Mediaclient:

Code Block
languagebash
themeRDark
titlemediaclient image
MACHINE=qemux86mc-morty source meta-cmf/setup-environment
bitbake rdk-generic-mediaclient-wpe-image

For Hybrid:

Code Block
languagebash
themeRDark
titlehybrid image
MACHINE=qemux86hyb-morty source meta-cmf/setup-environment
bitbake rdk-generic-hybrid-wpe-image

On Successful build, the ROOTFS (in vmdk format) would be available at the following reference location based on whether your build type was Hybrid (qemux86hyb-morty) or Media Client (qemux86mc-morty):

-       ${HOME}/emulator/build-qemux86hyb-morty/tmp/deploy/images/qemux86hyb-morty or

-       ${HOME}/emulator/build-qemux86mc-morty/tmp/deploy/images/qemux86mc -morty

...

Note: The qt3d repo has changed and this causes older builds (10/24 and earlier) to fail while fetching qt. A fix can be applied by changing the repo in the qt3d recipe.

Before you build, you need to edit the file /meta-qt5/recipes-qt/qt5/qt3d_git.bb and set the QT_MODULE_BRANCH to "dev" instead of "master" as outlined below:

For more information regarding the change, please refer: https://github.com/meta-qt5/meta-qt5/commit/adeaa6128b665920eb98eb7c064f4aacbd74b873

...

Install Virtual Box and follow the following steps to bring up RDK Emulator on Virtual Box:

In the following steps, it is recommended to review the description and screenshot completely before proceeding with steps.

STEP 1: Create your new VM Instance:

...