Versions Compared

Key

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

Table of Contents

Introduction

This manual describes  Yocto 3.1 (dunfell) build procedure for the Raspberry Pi Reference Platform. This will is an upgrade from the default RDK build system used in RDK Video, from morty(, Yocto 2.2 ) to dunfell(3.1(morty). In addition to upgrades to opensource packages, Yocto 3.1 also contain contains Long term Support release feature. The current version RDK build system lacks the variety of features available in the dunfell. The upgraded build tools will be used to generate different images for the target. 

Yocto 3.1 Upgradation support the following:

...

  • Linux kernel 4.19.
  • Version upgrades for bitbake, gstreamer GStreamer, and other oe/wpe recipes.OE components
  • Linux kernel 5.4 or above
  • Extensible SDK

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 Yocto meta 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:

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

Code Block
languagebash
themeRDark
titleRepo 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

Code Block
languagebash
themeRDark
title.netrc
machine code.rdkcentral.com
login YOUR_USERNAME
password YOUR_PASSWORD

Executing System

to avoid build failures.

Host Setup

How to Build#SettinguptheHostEnvironment

Executing System

Children Display

Migration Efforts

To tackle the build issues from moving one version to another, we have decided to split the problem into different subtasks. So instead of building a complete image at one go, we have planned for the generation of the following images:

  • core-minimal-image for Raspberrypi
  • wpe-westeros-image
  • rdk-generic-image for hybrid and mediaclient
  • rdk-generic-wpe-image for hybrid and mediaclient

...

Currently, all the changes are being pushed in these branches. Once it is merged, you will be able to follow the build instructions without any error.

Yocto Build Steps 

...