In this page:



Overview

 RDK-8 is based on RDK-E layered architecture where layers can be independently built, tested and delivered. 

The different layers in RDK8 are Vendor, Middleware and Image Assembler.

Each layer can be built separately to provide versioned binaries.

In RDK8 there are some key differences to RDK 7

  • There is no separate OSS layer
    • Instead the OSS Consumption Model is used where open source packages are built as part of the vendor and middleware layers.
  • There is no separate Application layer
    • All applications are now Firebolt DAC applications and are built and signed separately to the RDK yocto build.
    • RDKShell is no longer used for Application management functionalities instead the RDK AppManagers framework is used.
  •  Each layer can be built separately to provide versioned binaries. Each of these layers contain components necessary to build that layer. 


For more information on the RDK 8 architecture please see <TODO>

Image Assembler serves as the final build which consumes the binary deliverables in form of IPK's from the vendor and middleware layers.



RDK8 Branch, Tags and Changelog Info


This section provides links to the layer RPI 4 manifests repos and meta layers it also documents and links to the TAGS used in the RDK8-1.0.0 release

Layer Manifest and Meta Layers

Manifest Layer Repository

support/rdk8-main

Initial TAG

RDK8-1.0.0 TAG

Meta Layer Repository

support/rdk8-main

Initial TAG

RDK8-1.0.0 TAG

vendor-manifest-raspberrypi

4.11.0

RDK8-1.0.0

meta-vendor-raspberrypi-release

4.11.0

RDK8-1.0.0

middleware-manifest-rdke

8.5.3.0

RDK8-1.0.0

meta-middleware-release-rdke

8.5.3.0

RDK8-1.0.0

image-assembler-manifest-rdke

2026-Q1

RDK8-1.0.0

meta-image-assembler-rdke

4.1.6

4.1.6

OSS Layer

The OSS Layer is common across all RDK-M platforms

Meta Layer

TAG

meta-rdk-oss-reference

4.12.0

Middleware Layers

The following are the meta and manifest layers that constitute the RDK-E middleware

Repo

Type

Branch

Created From 

RDK8-1.0.0 TAG

meta-rdk-video

meta-layer

support/1.17.0-community

1.17.0

1.17.0-community

meta-rdk

meta-layer

-

-

1.17.0

meta-middleware-generic-support

meta-layer

-

-

1.17.0

rdke-middleware-generic-manifest

sub manifest layer

support/1.1.0-community

1.17.0

1.17.0-community

Bolt Applications

In RDK-8 there is no application layer but the release was tested with the following bolt application versions.

Bolt Package

Version

base boltcom.rdkcentral.base+0.2.0.bolt
wpe boltcom.rdkcentral.wpe+0.3.1.bolt
refui boltcom.rdkcentral.refui+6.0.9.b

https://osspackages.code.rdkcentral.com/apps/bolt/1.0.3/factory_app_version.json contains the application configuration for RDK8 builds.

Layer Manifest Tags 

Component

Group

RPI Vendor

RDK8-1.0.0

RPI MW

RDK8-1.0.0

RPI IA

RDK8-1.0.0

buildscriptsbuildscripts1.0.11.0.31.0.3
meta-image-assembler-rdke
--4.1.6
meta-image-support-rdke
1.0.0--
meta-middleware-release-rdkelayers--RDK8-1.0.0
meta-openembeddedoerdk-4.0.0rdk-4.0.0rdk-4.0.0
meta-oss-common-configextention1.4.01.4.01.4.0
meta-oss-reference-releaselayers4.12.04.12.04.12.0
meta-oss-vendor-raspberrypiproducts4.1.5--
meta-product-raspberrypiproducts4.1.44.1.44.1.4
meta-python2oe

-

rdk-4.0.0-
meta-raspberrypilayers

ab5815a2ca0a460398878f77a7e39bc1a6dfe0bf" upstream="kirkstone

--
meta-rdk-auxiliarylayers1.8.01.8.01.8.0
meta-rdk-halif-headersrdk4.1.44.1.4-
meta-rdk-oss-referencelayers4.12.04.12.04.12.0
meta-stack-layering-supportstacklayering3.2.03.2.03.2.0
meta-vendor-raspberrypi-devlayers4.11.1--
meta-vendor-raspberrypi-releaserelease-RDK8-1.0.0RDK8-1.0.0
pokyoerdk-4.6.0rdk-4.6.0rdk-4.6.0
rdke-common-configconfigs1.0.201.0.201.0.20
rdke-middleware-generic-manifest
-1.17.0-community-
rdke-stb-configconfigs1.0.01.0.01.0.0



Host Setup & Build Instructions


As part of the RDK 8 release we are also releasing RDK Docker Builder which supports

  • Building the RDK8 Release 
    • Vendor
    • Middleware
    • Image Assemebler
      • Image Assembler can be built with:
        • no bolt applications
        • RDK8 prebuilt/signed bolt applications
        • User set of signed bolt applications 
  • Building the RDK 7 Release
    • OSS, VENDOR, MIDDLEWARE, APPLICATION and IMAGE-ASSEMBLER layers
    • Note OSS and APPLICATION layers are not relevant to RDK
  • RDK Docker Builder also supports building the opensource bolt applications (base bolt, wpe and refui)

Note RDK Docker Builder is currently not supported on MAC, we have tested it on Ubuntu Focal (20.04) and Noble (22.04)

If you do not wish to use docker please see the following page for host setup:

RDK-E Build Environment Host Setup

Note RDK 8 is based on kirkstone and as such you should use Ubuntu Focal 20.04

Note as the RPI is an opensource platform you do not need to create Personal Access Tokens (PAT) or configure your .netrc 

Step 2. Building the Vendor Layer

$ repo init -u "https://github.com/rdkcentral/vendor-manifest-raspberrypi/" -b refs/tags/RDK8-1.0.0 -m rdke-raspberrypi.xml
$ repo sync

Setup the IPK feed(s)
Please note for local IPK feed in local file system, the "file:/" prefix and the "/" suffix are important.

1, OSS IPK feed

   Modify this file:
   rdke/common/meta-oss-reference-release/conf/machine/include/oss.inc

   and set `OSS_IPK_SERVER_PATH` to the IPK feed location in the local file system, 
   e.g:
   OSS_IPK_SERVER_PATH = "file:/${HOME}/community_shared/rdk-arm64-oss/4.6.2-community/ipk/"

$ MACHINE=raspberrypi4-64-rdke source ./scripts/setup-environment

$ echo 'DEPLOY_IPK_FEED = "1"' >> conf/local.conf

$ bitbake lib32-packagegroup-vendor-layer (to build vendor layer IPK feed for other layers to consume)
OR
$ bitbake lib32-vendor-test-image (wrapper over packagegroup-vendor-layer to compile a bootable vendor layer test image)

At least either one of packagegroup or test-image is required to be successful to produce the IPK feed for the next layer. Ideally both should succeed.

The produced IPK objects that can be found here: ./build-raspberrypi4-64-rdke/tmp/deploy/ipk/raspberrypi4-64-rdke-vendor/

1, Copy or rsync the IPK feed into a location in the local file system, e.g.
   ->
   Rsyncing from ./build-raspberrypi4-64-rdke/tmp/deploy/ipk/raspberrypi4-64-rdke-vendor/* to ${HOME}/community_shared/raspberrypi4-64-rdke-vendor/RDK7-1.0.0/ipk/

Step 3. Building the Middleware Layer

$ repo init -u "https://github.com/rdkcentral/middleware-manifest-rdke/" -b refs/tags/RDK8-1.0.0 -m raspberrypi4-64.xml
$ repo sync

Setup the IPK feed(s)
Please note for local IPK feed in local file system, the "file:/" prefix and the "/" suffix are important.

1, OSS IPK feed

   Modify this file:
   rdke/common/meta-oss-reference-release/conf/machine/include/oss.inc

   and set `OSS_IPK_SERVER_PATH` to the IPK feed location in the local file system, 
   e.g. 
   OSS_IPK_SERVER_PATH = "file:/${HOME}/community_shared/rdk-arm64-oss/4.6.2-community/ipk/"

2, Vendor IPK feed

   Modify this file:
   rdke/vendor/meta-vendor-release/conf/machine/include/vendor.inc

   and set `VENDOR_IPK_SERVER_PATH` to the IPK feed location in the local file system, 
   e.g.
   VENDOR_IPK_SERVER_PATH = "file:/${HOME}/community_shared/raspberrypi4-64-rdke-vendor/RDK7-1.0.0/ipk/"

$ MACHINE=raspberrypi4-64-rdke source ./scripts/setup-environment

$ echo 'DEPLOY_IPK_FEED = "1"' >> conf/local.conf

$ bitbake lib32-packagegroup-middleware-layer (to build middleware layer IPK feed for other layers to consume)
OR
$ bitbake lib32-middleware-test-image (wrapper over packagegroup-middleware-layer to compile a bootable middleware layer test image)

At least either one of packagegroup or test-image is required to be successful to produce the IPK feed for the next layer. Ideally both should succeed.

The produced IPK objects that can be packaged into the Middleware IPK feed can be found here: ./build-raspberrypi4-64-rdke/tmp/deploy/ipk/raspberrypi4-64-rdke-middleware/

1, Copy or rsync the IPK feed into a location in the local file system, e.g.
   ->
   Rsyncing from ./build-raspberrypi4-64-rdke/tmp/deploy/ipk/raspberrypi4-64-rdke-middleware/* to ${HOME}/community_shared/raspberrypi4-64-rdke-middleware/RDK7-1.0.0/ipk/
  

Step 5. Building the Image Assembler or Full Stack Image Layer

$ repo init -u "https://github.com/rdkcentral/image-assembler-manifest-rdke/" -b refs/tags/RDK8-1.0.0 -m raspberrypi4-64.xml
$ repo sync

Setup the IPK feed(s)
Please note for local IPK feed in local file system, the "file:/" prefix and the "/" suffix are important.

1, OSS IPK feed

   Modify this file:
   rdke/common/meta-oss-reference-release/conf/machine/include/oss.inc

   and set `OSS_IPK_SERVER_PATH` to the IPK feed location in the local file system,
   e.g.
   OSS_IPK_SERVER_PATH = "file:/${HOME}/community_shared/rdk-arm64-oss/4.6.2-community/ipk/" 

2, Vendor IPK feed

   Modify this file:
   rdke/vendor/meta-vendor-release/conf/machine/include/vendor.inc

   and set `VENDOR_IPK_SERVER_PATH` to the IPK feed location in the local file system,
   e.g. 
   VENDOR_IPK_SERVER_PATH = "file:/${HOME}/community_shared/raspberrypi4-64-rdke-vendor/RDK7-1.0.0/ipk/" 

3, Middleware IPK feed

   Modify this file:
   rdke/middleware/meta-middleware-release/conf/machine/include/middleware.inc

   and set `MW_IPK_SERVER_PATH` to the IPK feed location in the local file system,
   e.g. 
   MW_IPK_SERVER_PATH = "file:/${HOME}/community_shared/raspberrypi4-64-rdke-middleware/RDK7-1.0.0/ipk/" 

4, Application IPK feed

   Modify this file:
   rdke/application/meta-application-release/conf/machine/include/application.inc

   and set `APPLICATION_IPK_SERVER_PATH` to the IPK feed location in the local file system, 
   e.g.
   APPLICATION_IPK_SERVER_PATH = "file:/${HOME}/community_shared/raspberrypi4-64-rdke-application/RDK7-1.0.0/ipk/"

$ MACHINE=raspberrypi4-64-rdke source ./scripts/setup-environment

$ bitbake lib32-rdk-fullstack-image (for full stack image)

(Final flash'able image will be present in ./build-raspberrypi4-64-rdke/tmp/deploy/images/raspberrypi4-64-rdke/<imagename>.wic.bz2

Building bolt applications 

For information and instructions on building bolt applications please see 

https://github.com/rdkcentral/bolt-pkg-build-scripts



RPI 4 RDK 8 Prebuilt Image


TODO




Flashing Instructions


The micro SD card should be formatted before writing the RPI image to it.  

The minimum SD card size recommended is 8GB. It is preferred to use more (16 or 32 GB) considering the downloadable apps support in RDK. After flashing, remove the SD card and insert it to the Raspberry Pi 4 device' SD card slot.


Option1: Using Linux

Using dd on linux/macOS:

bzcat <IMAGE_NAME>.wic.bz2 | sudo dd of=/dev/sdb bs=4M iflag=fullblock oflag=direct conv=fsync

Option 2: Using Windows

Using balenaEtcher:

To flash the image on an SD card, you will need to download the balenaEtcher application - https://www.balena.io/etcher/

Open the application → Select the image from your download folder → Select the drive containing your SD card → Click “Flash” to copy the image onto the SD card.

In some cases, we have seen an error where latest versions of BalenaEtcher gets stuck at 7% flashing:

In this case, try downgrading Balena Ether version to 1.18.11

Power on the Raspberry Pi:

  • TV screen will display the default RDK UI as shown below.


  •  To view the Raspberry Pi's IP address(referred as machineIP from now), Go to 'Settings → Network Configuration → Network Info → check for 'IP Address''.


  • For ssh, we can use ssh root@<ip-address>
  • For verifying the image details, we can use cat /version.txt command.



Licenses

The following tabs contain a document of all the licenses in each of the layer builds for the RPI 4 platform:








Test Coverage and Test Reports

RPI RDK8 test results are available at the following location: TODO

TDK Version used for RDK8 certification is TODO



Known Issues

Please login with your RDK Wiki credentials to see the JIRA Issues


All the known issues that are part of this release for this platform are available in RDK JIRA