Versions Compared

Key

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

...

Code Block
languagebash
titlebuild setupInitialization/sync
Initialization:
$ repo init -u https://code.rdkcentral.com/r/manifests -m rdkc-nosrc.xml -b dunfell
                                ( or )
$ repo init -u https://code.rdkcentral.com/r/manifests -m rdkc-extsrc.xml -b dunfell

Download/Sync:
$ repo sync -j `nproc` --no-clone-bundle --no-tag


Note: The below bug and eSDK fixes changes are temporary given as instructions. This is not required once the change is get merged into the appropriate layer.

Code Block
languagebash
titleApply bug fixes
$ cd meta-rdk-camera
$ git fetch "https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-rdk-camera" refs/changes/10/49510/2 && git cherry-pick FETCH_HEAD

$ cd meta-cmf-raspberrypi
git fetch "https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-cmf-raspberrypi" refs/changes/51/51451/1 && git cherry-pick FETCH_HEAD

...

Code Block
languagebash
titleeSDK fixes
$ cd meta-rdk-video
$ git fetch "https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-rdk-video" refs/changes/34/51434/1 && git cherry-pick FETCH_HEAD

$ cd meta-rdk
git fetch "https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-rdk" refs/changes/37/51037/1 && git cherry-pick FETCH_HEAD
git fetch "https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-rdk" refs/changes/35/51435/1 && git cherry-pick FETCH_HEAD

$ cd meta-cmf-raspberrypi
git fetch "https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-cmf-raspberrypi" refs/changes/36/51436/1 && git cherry-pick FETCH_HEAD

...

Populate eSDK

Code Block
languagebash
titleeSDK Population
$ MACHINE=raspberrypi3-rdk-camera source meta-cmf-raspberrypi/setup-environment
$ bitbake rdk-generic-camera-image -c populate_sdk_ext

...

Code Block
languagebash
titleApply repo bug fixes
$ cd build-raspberrypi3-rdk-camera/tmp/work/cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi/thumbnail/git-r0/git
$ git fetch "https://code.rdkcentral.com/r/rdkc/components/opensource/thumbnail" refs/changes/31/49531/1 && git cherry-pick FETCH_HEAD

eSDK Installation

The installer can be done on any x86_64 Linux machines.

Host Configuration

Refer to the RDKCentral's credential configuration to setup RDK Central's credentials in the machine where eSDK to be installed. This is to access repositories by the RDK Yocto recipes that reside in the eSDK installer.

Installation

Code Block
languagebash
titleeSDK Installation
# run the installer script file
# installer asks for a directory to install (default directory ~/rdk_sdk)
# installer asks permission to proceed
./rdk-glibc-x86_64-arm-toolchain-ext-2.0.sh

...

xxxxxxx@dvm-ch2g-yocto31-007:~/yyyyyy/31Jan21/build-raspberrypi3-rdk-camera/tmp/deploy/sdk$  ./rdk-glibc-x86_64-arm-toolchain-ext-2.0.sh
RDK (A Yocto Project based Distro) Extensible SDK installer version 2.0
=======================================================================
Enter target directory for SDK (default: ~/rdk_sdk):
You are about to install the SDK to "/home/xxxuser/rdk_sdk". Proceed [Y/n]? Y
Extracting SDK................................................................................................................done
Setting it up...
Extracting buildtools...
Preparing build system...

Parsing recipes: 100% |##################################################################| Time: 0:00:52

Initialising tasks: 100% |###############################################################| Time: 0:00:00

Checking sstate mirror object availability: 100% |#######################################| Time: 0:00:00

Loading cache: 100% |####################################################################| Time: 0:00:00

Initialising tasks: 100% |###############################################################| Time: 0:00:00

done

SDK has been successfully set up and is ready to be used. Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.

    $ . /home/xxxuser/rdk_sdk/environment-setup-cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi

SDK Installation Done.

Build from eSDK

This section covers how to use the eSDK for component build and image build

Environment Setup

The installer can be run on any x86_64 Linux based machines.

Code Block
languagebash
titleeSDK Environment setup
# change directory to the installed path
cd ~/rdk_sdk
# setup the eSDK environemnt
source environment-setup-cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi

New Components

Add Component

Code Block
languagebash
titleAdd Component
# way 1
# add a new recipe with URL
devtool add <recipe_name> <source URL>

Example:
# devtool add sctplib git://github.com/rdkcteam/usrsctplib

# way 2
# add a new recipe with external source directory
devtool add <recipe_name> <absolute path>

Example:
# devtool add sctplib /path/for/source/directory

Edit Component's recipe

Code Block
languagebash
titleEdit recipe's
# modify recipe from an editor
devtool edit-recipe <recipe_name>

Example:
# devtool edit-recipe sctplib

Build Components

Code Block
languagebash
themetitleRDarkBuild component
# Pre-requisite: add a new recipe using devtool
devtool build <recipe_name>

Example:
# devtool build sctplib

Deploy binaries

Code Block
languagebash
themetitleRDarkDeploy binary
# Pre-requisite: add a new recipe using devtool
devtool deploy-target <recipe_name> <target_path>

Example:
# devtool deploy-target sctplib root@192.168.xx.xx

Build Image

A complete RDK image can be generated from the eSDK installer.

Note: The same image where the eSDK populated can be generated here.

Code Block
languagebash
themetitleRDarkBuild image
# devtool command to build image from eSDK
# <IMAGE> - rdk-generic-camera-image
devtool build-image <IMAGE>

Example:
# devtool build-image rdk-generic-camera-image

...