Tables of Contents
Yocto Build
Host Machine Setup
Hardware requirements:
- Ubuntu 18.04 desktop machine
- RAM - 8 GB or more
- Memory - a minimum of 100 GB free space
Refer to the link for host machine setup: Host Setup
Yocto workspace setup
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | build setup | Initialization/sync |
---|
|
Initialization:
$ repo init -u https://code.rdkcentral.com/r/manifests -b dunfell -m rdkvrdkc-nosrc.xml
repo sync -j `nproc` --no-clone-bundle --no-tags |
Code Block |
---|
language | bash |
---|
title | apply bug fixes |
---|
collapse | true |
---|
|
# fix to use eSDK from all supported images
(cd meta-rdk; git fetch " -b dunfell
( or )
$ repo init -u https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-rdk" refs/changes/37/51037/1 && git cherry-pick FETCH_HEAD) |
Note: The above bug fixes changes are temporary given as instructions. This is not required once the change is get merged into the appropriate layer.
Populate eSDK
...
manifests -m rdkc-extsrc.xml -b dunfell
Download/Sync:
$ repo sync -j `nproc` --no-clone-bundle --no-tag |
Populate eSDK
...
default | true |
---|
label | Media Client |
---|
title | Command to populate eSDK from mediaclient image |
---|
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | image build |
---|
|
MACHINE=raspberrypi-rdk-mc source meta-cmf-raspberrypi/setup-environment
bitbake rdk-generic-mediaclient-wpe-image -c populate_sdk_ext |
...
Code Block |
---|
|
theme | RDark |
---|
| image build | $ MACHINE= raspberrypiraspberrypi3-rdk- hybridcamera source meta-cmf-raspberrypi/setup-environment
$ bitbake rdk-generic- hybrid-wpecamera-image -c populate_sdk _extThe generated eSDK installer resides under the directory build-<MACHINE>/tmp/deploy/sdk/rdk-glibc-x86_ 64-arm-toolchain-ext -2.0.sh of the Yocto workspace.Note: The generated eSDK installer script usually occupies 2 to 2.5 GB |
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 |
---|
language | bash |
---|
themetitle | RDarkeSDK 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 |
Below is the result (terminal output) of the installation
xxxuser@yyymachine003rpihyb1712$ rpihybsdksdk$ ./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 |
---|
language | bash |
---|
themetitle | RDarkeSDK 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 |
---|
language | bash |
---|
themetitle | RDarkAdd Component |
---|
|
# way 1
# add a new recipe with URL
devtool add <recipe_name> <source URL>
# eg.
Example:
# devtool add westerossctplib httpsgit://github.com/rdkcmfrdkcteam/westerosusrsctplib
# way 2
# add a new recipe with external source directory
devtool add <recipe_name> <absolute path>
Example:
# eg. devtool add westerossctplib /path/for/source/directory |
Modify Component
Code Block |
---|
|
language | bash |
theme | RDark | # modify existing recipe's URL or srctree or to add patches
devtool modify <recipe_name> <new URL>
# eg. devtool modify westeros https://code.rdkcentral.com/r/rdk/components/generic/westeros |
Edit Component's recipe
Code Block |
---|
language | bash |
---|
title | Edit recipe's | theme | RDark |
---|
|
# modify recipe from an editor
devtool edit-recipe <recipe_name>
Example:
# eg. devtool edit-recipe westeros |
Upgrade Component
Code Block |
---|
|
# modify existing recipe's URL or srctree or to add patches
devtool upgrade --version <version number> <recipe_name>
# eg. devtool upgrade --version 1.0.21 westerossctplib |
Build Components
Code Block |
---|
language | bash |
---|
themetitle | RDarkBuild component |
---|
|
# Pre-requisite: add a new recipe using devtool
devtool build <recipe_name>
Example:
# eg. devtool build westerossctplib |
Deploy binaries
Code Block |
---|
language | bash |
---|
themetitle | RDarkDeploy binary |
---|
|
# Pre-requisite: add a new recipe using devtool
devtool deploy-target <recipe_name> <target_path>
Example:
# eg. devtool deploy-target westerossctplib 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 |
---|
language | bash |
---|
themetitle | RDarkBuild image |
---|
|
# devtool command to build image from eSDK
# <IMAGE> - rdk-generic-mediaclientcamera-wpe-image
devtool or rdk-generic-hybrid-wpe-image
build-image <IMAGE>
Example:
# devtool build-image <IMAGE>rdk-generic-camera-image |