Versions Compared

Key

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

...

This manual describes the rdk-generic-broadbandextender-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-extender-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:

Host Setup

NOTE: Observing fetch errors in VMs with Ubuntu14.x. Thus, suggesting to use VMs with Ubuntu16.x or higher.

Building

Note: Cloning the code before login once to code.rdkcentral.com, user would get the Authentication error, even though the account is in good standing and has all the required access. Please login to code.rdkcentral.com before attempting to clone.

To build, follow below instructions

Create workspace directory

Code Block
languagebash
themeDJango
$ 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

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 <workspace dir>
cd <workspace dir>

Follow below instructions to create build with external sources

Code Block
languagebash
themeDJango
$ mkdir ~/bin
$ PATH=~/bin:$PATH
Download the repo toolinit and ensure that it is executable
$ curl http-u https://commondatastoragecode.googleapisrdkcentral.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

Code Block
languagebash
themeDJango
machine code.rdkcentral.com
login YOUR_USERNAME
password YOUR_PASSWORD

Yocto Build Steps

/r/manifests -b dunfell -m rdkb-pod-extsrc.xml
repo sync -j4 --no-clone-bundle
MACHINE=raspberrypi-rdk-extender-rpi4 source meta-cmf-raspberrypi/setup-environment
bitbake rdk-generic-extender-image

Else, follow below instructions to create build with no external sourceTo build, follow below instructions
Build Steps

Code Block
languagebash
themeDJango
$ mkdir <workspace dir>
$ cd <workspace dir>
$ repo init -u https://code.rdkcentral.com/r/manifests -b dunfell -m rdkb-pod-extsrcnosrc.xml
$ repo sync -j4 --no-clone-bundle
$ MACHINE=raspberrypi-rdk-extender-rpi4 source meta-cmf-raspberrypi/setup-environment
$ bitbake rdk-generic-extender-image

Note. The kernel Image and root filesystem will be placed under <workspace dir>/build-*/tmp/deploy/images/*extender/ directory


Info
titleOpenSync Backhaul credential
NOTE: Need to get patch for meta-turris layer from Plume to apply backhaul credential(SSID:PSK). Please check Cloud Access Guide for more details.