Introduction

This manual describes the rdk-generic-broadband-image build procedure for Yocto 4.0 builds. Yocto 4.0 contain Long term Support release feature. The upgraded build tools from Yocto 4.0 will be used to generate rdk-generic-broadband-image for BananaPi reference platform.

Yocto 4.0 support the following:

Each component in RDK is a standalone repository with its own individual build tools producing a library or set of binaries. 

Host Setup

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

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


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

$ 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

To generate the HTTP_CREDENTIALS 


machine code.rdkcentral.com login usermail@company.com password HTTP_CREDENTIALS


Note:
For futher SSO authentication details please go through this RDKM Managed Applications Migration

Yocto Build Steps

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

Note: For sd card build, in case of not having access to artifactory repository , follow the below link to generate bl2.img and fip.bin
SD Monolitic image build and flashing steps for BPI R4.#Buildingbl2.imgandfip.binincaseofnothavingaccesstoartifactoryrepository

mkdir <workspace dir>
cd <workspace dir>
repo init -u https://code.rdkcentral.com/r/manifests -b kirkstone -m rdkb-bpi-extsrc.xml
repo sync -j `nproc` --no-clone-bundle --no-tags
MACHINE=bananapi4-rdk-broadband BPI_IMG_TYPE=nand source meta-cmf-bananapi/setup-environment-refboard-rdkb
bitbake rdk-generic-broadband-image


Flashing Procedure for sd card

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

bzip2 -d <path to ImageName.wic.bz2>
sudo -E bmaptool copy --nobmap <path to ImageName.wic> <path to SD card space>

Example:

$ bzip2 -d rrdkb-generic-broadband-image_rdk-next_20250130114818.bin.wic.bz2
$ sudo -E bmaptool copy --nobmap rdkb-generic-broadband-image_rdk-next_20250130114818.bin.wic /dev/sdb


Flashing Procedure for Nand image

Pre-requirements: Install tftp server in you local machine and copy the image to tftp server location

Step 1: Power on the BPi board
Step 2:You will see U-Boot Boot Menu procedure (ie, startup system, upgarde firmware, ...)
Step 3:Select the second option upgrade firmware -> Run image after upgrading? (Y/n): Y
Step 4:Next on Available load methods select 0 which is TFTP client.
Step 5:Setup device network
Input U-Boot's IP address: (same network as tftp server, eg:192.168.2.1)
Input TFTP server's IP address: (tftp server IP address)
Input IP netmask: 255.255.255.0
Input file name: rdk-generic-broadband-image-bananapi4-rdk-broadband-sysupgrade.bin (BPI image in bin format)
Step 6:Then enter, image will be downloaded from tftp server to BPI and will start flashing the image to BPI device if success.


Validated Functionalities

S.NoFeatures tested onSupported
1

WebPa get and set should work, query device.

(tick)
2

LogUpload/Logrotation 

(tick)
3

RFC 

(tick)
4

Webconfig

(tick)
5

Telemetry 2

(tick)
6

Usppa get and set are working through DM’s

(tick)
7

Cellular Mode

(tick)
8

Local WebUI

(tick)
9

Firewall

(tick)
10

OneWiFi Triband

(tick)
11

CPU Proc Analyser

(tick)
12

WAN Connectivity (i,e Ipv4)

(tick)
13WAN Connectivity (i,e Ipv6)(tick)
14

WiFi Connectivity

(tick)
15

LAN Connectivity

(tick)
16

SNMP

(tick)
17

Bridge Mode 

(tick)
18DAC(tick)
19OneWifi with Single WiPhy Design (tick)
20TR069(tick)
21eSDK(tick)
22PopulateSDK(tick)
23SelfHeal(tick)
24Test and Diagnostic(tick)
25Crash Upload(tick)
26SD card support(tick)
27Factory reset(tick)