RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
A tutorial to set up your environment and Download Source Code
...
Table of Contents
...
Pre-Requisites
Requirement | RemarksYocto 2.2 (Morty) | Yocto 3.1 LTS (Dunfell) |
---|---|---|
Linux | 32/64 bit Ubuntu 16.04 OS.04 LTS Precise supported distributions and versions are here | 64 bit Ubuntu 18.04 LTS Precise supported distributions and versions are here |
Free Fee HDD Space | Minimum 100GB Free Memory | Minimum 100GB Free memory space |
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 | |
Host Tools version |
|
...
|
|
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
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
# essential packages installation # super user mode is required # major essential packages sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib g++-multilib build-essential chrpath socat bison curl # supportive packages sudo apt-get install libfile-slurp-perl |
...
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 openjdk-7-jre |
Card | ||||||
---|---|---|---|---|---|---|
| ||||||
Note : Please note openjdk-7-jre package is not available for Ubuntu-16.04 anymore. Presumably openjdk-8-jre should be used instead. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
# essential packages installation
# super user mode is required
# major essential packages
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib g++-multilib build-essential chrpath socat bison curl cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm |
...
...
Code Block | ||||
---|---|---|---|---|
| ||||
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
Code Block | ||||
---|---|---|---|---|
| ||||
sudo apt-get install |
...
software-properties |
...
-common 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
...
Code Block | ||||
---|---|---|---|---|
| ||||
# review your existing configuration
git config --list --show-origin
# configure user name and email address
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
# configure git cookies. Needed for Gerrit to only contact the LDAP backend once.
git config --global http.cookieFile /tmp/gitcookie.txt
git config --global http.saveCookies true |
$ 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
Code Block | ||||
---|---|---|---|---|
| ||||
# create a bin directory mkdir ~/bin |
...
export PATH=~/bin:$PATH |
...
# Download the repo tool and ensure that it is executable curl http:// |
...
commondatastorage.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 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.
...
Note: it is also recommended to put credentials in .netrc when interacting with the repo.
A sample .netrc file is illustrated below
machine code.rdkcentral.com login <YOUR_USERNAME> password <YOUR_PASSWORD> |
---|
...
...
Following commands fetch the source code using repo tool
...
repo init -u https://code.rdkcentral.com/r/manifests -m rdkb.xml -b morty
$ repo sync -j4 --no-clone-bundle
Note |
---|
|
...
$ source <setup-environment>
...