Versions Compared

Key

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

<work in progress>

Before you begin

Data available partially

Basic skills expected, relevant RDK links,hardware requirements etc

Environment Rpi 3b+

Data available partially

build VM, pre requisites etc. for Dunfell builds

RPI 3B/3B+ Model Reference Platform

Introduction

This manual describes the rdk-generic-broadband-image build procedure for Yocto 3.1 builds. This will upgrade the default build system used in RDKB, from morty(2.2) to dunfell(3.1). In addition to upgrades to opensource packages, Yocto 3.1 also contain Long term Support release feature. The current version lacks the variety of features available in the dunfell. The upgraded build tools will be used to generate rdk-generic-broadband-image for Raspberrypi reference platform. 

Yocto 3.1 Upgradation support the following:

  • Yocto BSP layer for meta-raspberrypi.
  • OpenEmbedded and Yocto Dunfell.
  • Linux kernel 5.4.72.
  • Version upgrades for bitbake, and other oe/python recipes.

Each component in RDK is a standalone repository with its own individual build tools producing a library or set of binaries. When we upgrade the OE layers to the newer versions, we need to make necessary changes in the RDK layers which use these components, to avoid build failures.

Host Setup

The OpenEmbedded build system should be able to run on Ubuntu 18.04 distribution/other compatible linux distribution with the following versions for Git, tar, and Python.

  • Git 1.8.3.1 or greater
  • tar 1.27 or greater
  • Python 3.4.0 or greater
  • Coreutils(E.g realpath)

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


Existing source : https://wiki.rdkcentral.com/display/RDK/Join+RDK

Relevant RDK Links: https://wiki.rdkcentral.com/display/RDK/Important+Links

Hardware requirements: https://wiki.rdkcentral.com/display/RDK/How+to+Build#HowtoBuild-BuildSetupInstructions - Prerequisites


Environment Rpi 3b+

Data available partially

build VM, pre requisites etc. for Dunfell builds

https://wiki.rdkcentral.com/display/RDK/RDK-V+rdk-next+Yocto+3.1+dunfell+build+for+Raspberrypi

Environment  IPSTB ref box

Data available partially

build VM, pre requisites etc. for Dunfell builds


Build basic image for Rpi

Data available

Basic build commands


Build basic image IPSTB ref box

Data available

Basic build commands


Flash image and bring up Rpi

Data available partially

Current flash image steps + screenshots


Flash image and bring up IPSTB ref box

Data available partially

Current flash image steps + screenshots


Yocto recipe structure of relevant components - wpeframework and RDKservices

Data not available

Explain layer structures in RDK-V  build.Refers both Rpi & Ref platform


Setup the Thunder plugin template

Data not available

Check whether the Thunder plugin template earlier created and shared by team is sufficient for this. 


Develop a sample thunder plugin 

Data not available

Explain how to develop based on the Thunder plugin template


Interface with other RDK services

Data not available

Thunder Interfaces, COMRPC


Interface with Lightning apps

Data not available

ThunderJS



ItemData Exist?Remarks
Before you beginPartiallyBasic skills expected, relevant RDK links,hardware requirements etc
Environment Rpi 3b+Partiallybuild VM, pre requisites etc. for Dunfell builds
Environment  IPSTB ref boxPartially

Repo Setup

In order to use Yocto build system, the repo tool must be properly installed on the machine.

To install Repo make sure you have a /bin directory in your home directory and that it is included in your path
Repo Setup Steps

...

$ mkdir ~/bin
$ 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

Note: it is also recommended to put credentials in ~/.netrc when interacting with repo.

A sample ~/.netrc file is illustrated below
.netrc

machine code.rdkcentral.com login YOUR_USERNAME password YOUR_PASSWORD

Yocto Build Steps

To build, follow below instructions
Build Steps

...

$ mkdir <workspace dir>
$ cd <workspace dir>
$ repo init -u https://code.rdkcentral.com/r/manifests -b dunfell -m rdkb-extsrc.xml
$ repo sync -j`nproc` --no-clone-bundle
$ MACHINE=raspberrypi-rdk-broadband source meta-cmf-raspberrypi/setup-environment
$ bitbake rdk-generic-broadband-image

 

Flashing Procedure

Following command can be used to flash the RPI image to sd card using linux machine . bmap tool should be available in linux
Flash command

...

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-generic-broadband-image-raspberrypi-rdk-broadband.wic.bz2
$ sudo -E bmaptool copy --nobmap rdk-generic-broadband-image-raspberrypi-rdk-broadband.wic /dev/sdb

Validated Functionalities

...

No

...

Feature

...

Supported

...

No

...

Feature

...

Supported

...

Log level control through CcspLogAgent

...

Band Steering using RSSI

...

Backup and Restore

...

SelfHeal

...

Environment  IPSTB ref box

...

build VM, pre requisites etc. for Dunfell builds
Build basic image for Rpi

...

YesBasic build commands
Build basic image IPSTB ref box

...

YesBasic build commands
Flash image and bring up Rpi

...

PartiallyCurrent flash image steps + screenshots
Flash image and bring up IPSTB ref box

...

PartiallyCurrent flash image steps + screenshots
Yocto recipe structure of relevant components - wpeframework and RDKservices

...

NoExplain layer structures in RDK-V  build.Refers both Rpi & Ref platform
Setup the Thunder plugin template

...

NoCheck whether the Thunder plugin template earlier created and shared by team is sufficient for this. 
Develop a sample thunder plugin 

...

NoExplain how to develop based on the Thunder plugin template
Interface with other RDK services

...

NoThunder Interfaces, COMRPC
Interface with Lightning apps

...

NoThunderJS