Skip to end of metadata
Go to start of metadata


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

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 > ~/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


Yocto Build Steps

To build, follow below instructions

Build Steps
$ mkdir <workspace dir>
$ cd <workspace dir>
$ repo init -u -b dunfell -m rdkb-extsrc.xml
$ repo sync -j`nproc` --no-clone-bundle
$ MACHINE=raspberrypi4-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>


$ 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




1LAN Connected Devices-Ethernet(tick)
2WAN Connected Devices-Wi-Fi(tick)
3Parental Control(tick)
4Firewall settings(tick)
5Advanced Config: Port Triggering(error)
6Advanced Config: Port Forwarding(tick)
7Advanced Config: Remote Management(tick)
8Advanced Config: DMZ(tick)
9Xfinity Wi-Fi 2.4/5 GHz – Public Hotspot(tick)
10Test and Diagnostics(tick)
11Local WebUI Configuration(tick)
12Factory Reset(tick)
13DHCP /Reserved IP(tick)
15Eth Agent(tick)
162.4 GHz Band Support(tick)
175 GHz Band Support(tick)
18Bridge Mode Support(tick)
19Persistent Storage Management(tick)
20WebPA for Comcast,community(tick)
21Lost and Found(error)
22Harvester Support(error)
27Boot time data measurement(error)
28Wireless Protection Setup(WPS)(tick)
29Captive Portal(tick)
30Wi-Fi MAC Filtering(error)
31Log Rotation Support(tick)
32Firmware Upgrade Support(tick)
33Multiboot Support(tick)
34Telemetry Support(tick)

Log level control through CcspLogAgent


Band Steering using RSSI


Backup and Restore



       40Password-Reset                (tick) 
       41WebUI JST                  (tick) 

  • No labels


  1. repo init -u -b dunfell -m rdkb-extsrc.xml

    The above command fails with the following error:

    fatal: remote error: access at least one ref not permitted

    Is that a permission issue?

    1. Hello Serhiy Chumak 

      While most of the RDK components are available free, a handful of components are distributed under the free RDK License Agreement.
      To obtain the RDK License Agreement, please fill in the form on the right side of this page and click submit. Upon full execution of the agreement, you will be provided access to the RDK source code components. Please contact RDK Management at in case you need more information.



  2. Hi, I'm following the steps in this procedure but when I bitbake the image, I got next error: 

    ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

    | Please set the JAVA_HOME variable in your environment to match the
    | location of your Java installation.

    I've tried to resolve it, doing 

    export JAVA_HOME=/usr/share/java , but it can't finish bitbake successfully, 

    may  you give me a hand with that? 

    thank u! 

    1. Hi Felipe Gómez Fonseca 

      Could you please share us the results of below commands?

      which java
      echo $JAVA_HOME

      Also, did you add the 'export JAVA_HOME' command in the terminal or in ~/.bash_rc file?