| Status | ||||
|---|---|---|---|---|
|
...
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 | ||
|---|---|---|
| ||
$ 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 | ||
|---|---|---|
| ||
$ 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 | ||
|---|---|---|
| ||
$ 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.
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 Name | MACHINE identifier | multiconfig nickname |
|---|---|---|
| Generic QEMU | armefi64-rdk-broadband | generic |
| Raspberry Pi 3/4 64-bit | raspberrypi64-rdk-broadband | raspberrypi |
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.
...
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:
...