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
The OpenEmbedded build system should be able to run on Ubuntu 20.0 distribution/other compatible linux distribution with the following versions for Git, tar, and Python.
Note: You should also have about 50 Gbytes of free disk space for building images.
The essential packages you need for a supported Ubuntu or Debian distribution are shown in the following command:
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \ xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \ pylint3 xterm bmap-tools $ sudo apt-get install git cmake autoconf texinfo openjdk-8-jdk openjdk-8-jre \ m4 libtool libtool-bin curl pkg-config lib32z1 doxygen |
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 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
# review your existing configuration # configure user name and email address # configure git cookies. Needed for Gerrit to only contact the LDAP backend once. |
In order to use Yocto build system, first you need to make sure that repo is properly installed on the machine:
# create a bin directory # Download the repo tool and ensure that it is executable |
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.
Note: it is also recommended to put credentials in .netrc when interacting with the repo. (Here in login we need to give public user id which created to login code.rdkcentral.com)
A sample .netrc file is illustrated below
machine code.rdkcentral.com login <YOUR_USERNAME> password <YOUR_PASSWORD> machine github.com login <YOUR_USERNAME> password <YOUR_PASSWORD> |
Below is the hardware for RPI4 , Here this contains the package of power adaptor , HDMI cable , sd card and usb card holder
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://code.rdkcentral.com/r/rdkcmf/manifests -b kirkstone -m rdkv-nosrc.xml repo sync -j `nproc` --no-clone-bundle --no-tags |
MACHINE=raspberrypi4-64-rdk-android-ipstb-oss source meta-cmf-raspberrypi/setup-environment bitbake lib32-rdk-ipstb-oss-image |
The above step configures and sets up your directory to start an appropriate build. And bitbake <image-name> is used to initiate the build
On Successful build, the ROOTFS (in vmdk format) would be available at the following reference location based on the build type :
build-raspberrypi4-64-rdk-android-ipstb-oss/tmp/deploy/images/raspberrypi4-64-rdk-android-ipstb-oss/imagename.wic.bz2
The micro SD card should be formatted (FAT) before writing the RPI image to it. The minimum SD card size that can be used is 2GB.
Using dd on linux/macOS:
bzcat <IMAGE_NAME>.wic.bz2 | sudo dd of=/dev/sdb bs=4M iflag=fullblock oflag=direct conv=fsync |
Using bmaptool:
bzip2 -d <path to ImageName.wic.bz2> sudo -E bmaptool copy --nobmap <path to ImageName.wic> <path to SD card space> Example: $ bzip2 -d rdk-ipstb-oss-image_rdk-next_20241208053801.rootfs.wic.bz2 $ sudo -E bmaptool copy --nobmap rdk-ipstb-oss-image_rdk-next_20241208053801.rootfs.wic.bz2 /dev/sda |
You can also use applications like BalenaEtcher to flash a micro SD card with the RPI image.