Versions Compared

Key

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

Status
colourBlue
titleIn Progress

introduction

...

 RDKM team in collaboration with  bringup RDK-B on ARM System Ready reference device and make it available for RDK-B community as a reference for RDK-B          

...

Yocto Build Instructiuons

NXP:

Code Block
titleBuild Instructions for NXP
$ mkdir rdkb-arm
$ cd rdkb-arm
$ repo init -u 'https://github.com/rdkcentral/meta-rdk-bsp-arm/' \
    -m "manifests/rdkb-bsp-arm.xml" \
    -b "main"
$ repo sync
$ source meta-rdk-bsp-arm/setup-environment
$ bitbake rdk-generic-broadband-image

RPI:

Code Block
titleBuild Instruction for RPI
$ mkdir rdkb-arm
$ cd rdkb-arm
$ repo init -u 'https://github.com/rdkcentral/meta-rdk-bsp-arm/' \
    -m "manifests/rdkb-bsp-arm.xml" \
    -b "main"
$ repo sync
$ MACHINE="raspberrypi64-rdk-broadband" source meta-rdk-bsp-arm/setup-environment
$ bitbake rdk-generic-broadband-image


QEMU:

Code Block
titleBuild Instruction for QEMU
$ mkdir rdkb-arm
$ cd rdkb-arm
$ repo init -u 'https://github.com/rdkcentral/meta-rdk-bsp-arm/' \
    -m "manifests/rdkb-bsp-arm.xml" \
    -b "main"
$ repo sync
$ MACHINE="armefi64-qemu-broadband" source meta-rdk-bsp-arm/setup-environment
$ bitbake rdk-generic-broadband-image

...

The default ARM build have been updated to include additional features such as  erouter0, Captive Portal and WebUI support.

The required PRs to be cherry-picked

 https://github.com/rdkcentral/ethernet-agent/pull/40
 https://github.com/rdkcentral/meta-rdk-bsp-arm/pull/4
 https://github.com/rdkcentral/meta-rdk-bsp-arm/pull/7
 https://github.com/rdkcentral/meta-rdk-bsp-arm/pull/8
 https://github.com/rdkcentral/webui/pull/81
 https://github.com/rdkcentral/meta-rdk-bsp-arm/pull/11


There are two types of build outputs:

...

Where possible, the same Linux kernel, firmware (U-Boot) and other relevant component versions will be used, with a strong preference for "mainline" versions.

Building platform firmware for different hardware types

Many development boards will not have a SystemReady-compatible firmware pre-loaded, or the pre-loaded firmware will be out of date.

To provide an easier developer experience, this meta-layer can build the platform firmware for several common developer boards.

Once you have deployed the SystemReady-compatible platform firmware to your board, you will not need to replace it and only need to consider updating your operating system image.

This meta layer can generate firmware for the following types of hardware, with more planned to be implemented.

Board NameMACHINE identifiermulticonfig nickname
Generic QEMUarmefi64-rdk-broadbandgeneric
Raspberry Pi 3/4 64-bitraspberrypi64-rdk-broadbandraspberrypi

The default MACHINE is armefi64-rdk-broadband (as explained above).

To generate an image for another machine, specify the MACHINE environment variable when sourcing setup-environment:

MACHINE="raspberrypi64-rdk-broadband" source meta-rdk-bsp-arm/setup-environment

...

Unless the machine configuration has specific overrides, the operating system image (kernel + rootfs + boot manager) generated by configurations like raspberrypi64-rdk-broadband will be identical to that of the generic machine. Only the platform firmware binaries will be different.

Configuring multiconfig for multiple target builds

...


 You can then run the build cycle for each target:

Code Block
$ bitbake mc:generic:rdk-generic-broadband-image && \
    bitbake mc:raspberrypi:rdk-generic-broadband-image

...

...

(Due to the way RDK-B components are built, it is not possible to do a "parallel" build for two targets at once, however, you will still save a significant amount of time and disk space by using multiconfig builds sequentially)

Build images for each target will be available in tmp/deploy:

...