RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
Pre-Requisites
Requirement | Remarks |
Linux | 32 bit Ubuntu 16.04 OS |
Fee HDD Space | Minimum 100GB Free Memory |
Oracle Virtual Box | 5.0.40 or higher |
Wireless Adapter | Brand Name:Tenda ralink & Model Number:W311MI TP-Link Archer T4U AC 1200 |
USB to Ethernet Switch | To connect with Ethernet Switch & Multiple Clients |
The instructions provided below are meant to be executed via the command line on an Ubuntu machine:
$ sudo apt-get install build-essential get text 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
$ 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”
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"
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.
Following commands fetch the source code using repo tool
$ mkdir <Directory-Name> && cd <Directory-Name>
Please use the following repo init command
$ repo init -u https://user@code.rdkcentral.com/r/manifests -m manifest.xml -b <branch_name>
Examples :
repo init -u https://code.rdkcentral.com/r/manifests -m rdkb.xml -b rdkb-20180527
repo init -u https://code.rdkcentral.com/r/manifests -m rdkb.xml -b master
repo init -u https://code.rdkcentral.com/r/manifests -m rdkb.xml -b morty
$ repo sync -j4 --no-clone-bundle
$ source <setup-environment>
The above step configures and sets up your directory to start an appropriate build.
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
Next, you would need to initiate the build using the following command:
$ bitbake <image-name>
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
Example :
…/build-qemux86broadband/tmp/deploy/images/qemux86broadband/rdk-generic-broadband-image-qemux86broadband-20160217080610.vmdk