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

Build setup
repo init -u https://code.rdkcentral.com/r/manifests -b dunfell -m rdkb-extsrc.xml
repo sync -j`nproc` --no-clone-bundle

Populate eSDK

  •   broadband RPi gateway
Image build
MACHINE=raspberrypi4-rdk-broadband source meta-cmf-raspberrypi/setup-environment
bitbake rdk-generic-broadband-image -c populate_sdk_ext -f

The 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 1.5 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

# 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.s(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@yyy-machine-003:~/RPi_esdk/build-raspberrypi-rdk-broadband/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 "/mnt/home/mgopal850/rdk_sdk". Proceed [Y/n]? Y
Extracting SDK.........................................................................................done
Setting it up...
Extracting buildtools...
Preparing build system...
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.
 $ . /mnt/home/mgopal850/rdk_sdk/environment-setup-cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi

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.

# 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

# way 1
# add a new recipe with URL
devtool add <recipe_name> <source URL>
devtool add mosquitto "http://mosquitto.org/files/source/mosquitto-1.6.10.tar.gz"

# way 2
# add a new recipe with external source directory
devtool add <recipe_name> <absolute path>
# eg. devtool add wireless-tools /path/for/source/directory

Modify Component

# modify existing recipe's URL or srctree or to add patches
devtool modify <recipe_name> <new URL>
devtool modify mosquitto "http://mosquitto.org/files/source/mosquitto-1.6.10.tar.gz"

Edit Component's recipe

# modify recipe from an editor
devtool edit-recipe <recipe_name>
# eg. devtool edit-recipe mosquitto

Build Components

# Pre-requisite: add a new recipe using devtool
devtool build <recipe_name>
# eg. devtool build mosquitto

Deploy binaries

# Pre-requisite: add a new recipe using devtool
devtool deploy-target <recipe_name> <target_path>
# eg. devtool deploy-target mosquitto 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.

# devtool command to build image from eSDK
# <IMAGE> - rdk-generic-broadband-image
devtool build-image <IMAGE>

Known Issues

  1. Taskhash mismatch error may appear while generating image from sdk, but that would not break the build.
  2. Below do_rootfs error may appear  while building image through devtool , we can fix through devtool upgrade  <recipe_name> and adding respective needed LDFLAGS and depends in the recipe in the workspace directory
      Problem 1/2:
     *   - nothing provides libbreakpadwrapper0 >= 5+git999 needed by ccsp-tr069-pa-5-r0.aarch64
     * 
     * Solution 1:
     *   - do not ask to install a package providing packagegroup-rdk-ccsp-broadband
    

    Reference ticket
    REFPLTB-2916 - Getting issue details... STATUS

  • No labels