RDK Resources

[*ASP Wiki*]

Code Management Facility

Code Releases

RDK Forums

[RDK Conferences]

RDK Support


Papers & Presentations Archive

In the News!

Skip to end of metadata
Go to start of metadata


The Raspberry Pi 3 Model B+ featuring a 64-bit quad core processor running at 1.4 Ghz. R-Pi3 B+ supports the dual band 2.4GHz and 5GHz IEEE 802.11.b/g/n/ac wireless LAN which provides an high edge for the broadband developer community to test the RDK-B stack with Router, WiFi functionalities. 

Build Instructions

Repo setup

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

machine code.rdkcentral.com

Yocto Build Steps

To build, follow below instructions

Build Steps
$ mkdir <workspace dir>
$ cd <workspace dir>
$ repo init -u https://code.rdkcentral.com/r/manifests -b rdk-next -m rdkb-extsrc.xml
$ repo sync -j4 --no-clone-bundle
$ source meta-cmf-raspberrypi/setup-environment (Select option raspberrypi-rdk-broadband.conf)
$ bitbake rdk-generic-broadband-image

Hardware and Setup Information

Note : RPI-3 B and B+ have same Build instructions and testing procedure

Flashing Procedure

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

Flash command
sudo dd if=<path to ImageName.rpi-sdimg> of=<path to SD card space> bs=4M
$ sudo dd if=rdk-generic-broadband-image-raspberrypi-rdk-broadband.rpi-sdimg of=/dev/sdb bs=4M

https://www.balena.io/etcher/ can be used to flash RPI image in sd card using windows 

RDK-B Bootup Sequence 

RDKB Boot sequence for Router Profile

  • GwProvApp-Ethwan is the entry point for RDK-B stack middleware. It does all gateway initialization as above
  • Responsible to initiate the registration of all services on boot -up. Responsible for all provisioning of LAN,FIREWALL(iptables),BRIDGE,etc
  • GwProvApp-EthWan is specifically designed for Ethernet only Input feed for WAN Network Connection(i,e erouter0)

Router Profile Test Bed using RPI

Router Profile Test Bed using R-Pi

Router Functionality Use Case - Internet connectivity for Wired and Wireless Client(s)

  1. Ethernet Port of RPI should be connected to WAN Network
  2. Connect WiFi Dongle to RPI ( Please refer to supported dongle here RDKB RPI Setup Information#DonglesInformationLinks )
  3. Client PC(s)  should be connected to RPI through Usb2Ethernet Adaptor which should be supported by RPI ( Please refer to https://elinux.org/RPi_USB_Ethernet_adapters for supported usb to ethernet adapter by RPI ). Ethernet switch is an optional in between usb2ethernet adapter and Client PC
  4. Once powered on, RPI should be able to list interfaces erouter0,brlan0 and wlan0 after boot up 
  5. Logs can be verified under /rdklogs/logs folder 
  6. Now, client pc should be able to get private ip in the rage 10.0.0.x range 
  7. Two radios are supported by RPI (2.4 and 5 GHz) respectively. By default following SSID's are broadcasted by RPI under respective radio 
    1. 2.4GHz (Private WiFi)
      1. SSID name - "RPI3_RDKB-AP0" 
      2. Password - "rdk@1234"
    2. 5 GHz (Xfinity WiFi)
      1. SSID name - "RPI3_RDKB-AP1" 
      2. Password - "rdk@1234"
  8. Connect mobile with above default SSID name and password for respective radio. Any one radio should be used for establishing connection in mobile
  9. Now, mobile should be able to get private ip in the rage 10.0.0.x range 
  10. To get Internet for both mobile and wired client pc , user should configure captive portal by accessing any url or from mobile browser or PC browser. When RPI image is flashed for the first time captive portal will be enabled which will auto redirect to captive portal page and asks user to re-configure the default SSID name and password of radio(s) . Please refer to Captive Portal in R-Pi User Manual for more information. 
  11. Client PC should be able to connect to internet now. Ping test can also be done by connecting gateway ip
  12. Since reconfiguration is done for default SSID username and password in webUI, provide the reconfigured SSID and password in mobile for reconnection with RPI
  13. Now, mobile and wired client pc should be able to browse the internet. Please refer to Clients Connection and its set up Diagram in RPI - User Manual for more information regarding the same for both wired and wireless connection information
  14. Connected client(s) PC and mobile information can be verified through webui by executing URL in Client PC Browser and login with following credentials 
    1. Username : admin
    2. Password : password
  15. Please refer to link Webui Functions for various features that can be controlled through webui 

Lists of Supported Features

  1. DHCP Gateway Configuration
  2. Connected Devices (Wired/Wireless)
  3. Private Wifi 2g/5g
  4. Xfinity-wifi 2g/5g
  5. Parental Control(Managed Devices,Managed Sites,Managed Services)
  6. Port Forwarding
  7. Remote Management ( Available only with http support )
  8. DMZ
  9. Factory-Reset
  10. Captive Portal 
  11. Password-Reset
  12. Test and Diagnostics
  13. Bridge Mode
  14. Webpa
  15. WPS
  16. Bootchart
  17. MAC Filtering
  18. Firewall Settings
  19. Log level control through CcspLogAgent
  20. Firmware Upgrade using Dual bank
  21. Log Rotation Support 

Supported Features User manual

Yocto Modification for RDK B+ Support

  1. Back port of Linux kernel from sumo branch(4.14.68) to morty branch in meta-raspberrypi layer
  2. Modified linux-firmware bbappend in meta-raspberrypi layer to bring up wireless interface
  3. Modified bcm2835-bootfiles bbappend and rdk-rpi.inc (added dtb files) in meta-cmf-raspberrypi layer to boot up  RPI B+ Board
  • No labels


  1. I followed these instructions, and the subsequent image on the RPi 3 B+ would not finish booting. systemd reported that npm failed to initialize, and networking was not operational (the eth0/eth1 interfaces had not been created). If anyone else has seen this or knows what's happening, can you tell me how to resolve these issues? I plan to build a generic RPi image for now and see if that works any better.

    Edited to add: I got syslogd up and running, and I see the following log lines repeated essentially forever:

    raspberrypi-rdk-broadband daemon.info CcspPandMSsp[288]: CosaDmlUIIPRangeGetEntry: Utopia_Init error
    raspberrypi-rdk-broadband daemon.info CcspPandMSsp[288]: CosaDmlUIIPRangeSetValues: Utopia_Init error

    1. Could you please paste the output of ps -ax ? Also please paste the bootlogs

  2. I've just registered and tried to pull RP3 version but I'm getting auth errors:

    tomasz@tomasz-UbuntuVirtualBox:~/projects/rdk_raspi$ repo init -u https://code.rdkcentral.com/r/manifests -b rdk-next -m rdkb-extsrc.xml
    fatal: remote error: access not permitted

    I've followed instructions and created .netrc file with credentials which I'm using to log into this page.

    What am I doing wrong?

    PS. Reposting in correct place.

    1. Please let us know the result of checking out any repo manually in your pc

      For eg:

      git clone "https://code.rdkcentral.com/r/rdkb/components/generic/CcspLogAgent"

      1. That works fine without issues.

        1. OK so it seems the basic access is OK. So now you have

          1. a .netrc file with details filled properly
          2. a public key posted in gerrit settings page( with the private key in .ssh folder in the linux machine )
          3. a .ssh/known_hosts file with the value you obtained from gerrit

          Could you please paste the complete output of the below command?

          git clone https://code.rdkcentral.com/r/manifests

          1. Hello, 

            I have same problem.

            curl: (22) The requested URL returned error: 404
            Server does not provide clone.bundle; ignoring.
            fatal: remote error: access not permitted
            fatal: remote error: access not permitted
            fatal: cannot obtain manifest https://code.rdkcentral.com/r/manifests

            When I click the URL above I am getting "Not Found" resoponse,

            1. Hello,

              Are you facing this issue when you do 

              git clone https://code.rdkcentral.com/r/manifests

              or when you do the repo init?

              1. While repo init, but I cannot clone this repository also. But I am cloning "https://code.rdkcentral.com/r/rdkb/components/generic/CcspLogAgent" this repository without issues.

                1. Hello,

                  We checked your account. Your account is not registered from a valid licensee email( maybe you registered with a personal email ID? ). For you to clone repo and build code, you need to register from a valid licensee email. If you are part of an organization who is a valid licensee, try signing up with your official mail ID

                  1. Sorry, I'm signed with my company mail, but I have the same issue.

                    There are some step to be done as organizzation? We need to perform some specific request?

        2. Hello,

          We checked your account. Your account is not registered from a valid licensee email( maybe you registered with a personal email ID? ). For you to clone repo and build code, you need to register from a valid licensee email. If you are part of an organization who is a valid licensee, try signing up with your official mail ID

  3. If you've already registered and  put your account in '.netrc',

    Check whether you've get git account and registered ssh-key.

    git config --global --list
    1. Where shall I put my .ssh key on rdkcentral?

  4. Probably you should make a git account first

    Follow this direction below....

    Register your SSH key on GitHub.
    cd ~; cd .ssh
    cat id_rsa.pub
    Log in to https://github.com/
    Go to settings, SSH and GPG keys. Add your SSH public key.

    Do additional configuration:

    git config --global user.email "you@example.com"
    git config --global user.name "Your Name"

    git config --global --list