Skip to end of metadata
Go to start of metadata


RDK-V IP Client is a IP based Client Set-Top-Box (STB) with RDK 4.0 features which connnects directly with Network Gateways. Targets on Accelerator platforms and utilizes only open-sourced RDK components.

Host Setup

Refer to the below link for Host Machine Setup

How to Build#SettinguptheHostEnvironment

Yocto Build Setup

All RPi based RDK images with the latest features are from the rdk-next branch

Initializing the Build Environment

To build RDK images from ipstb_bringup branch, follow the below build procedure

    mkdir workspace

    cd workspace

    # initialize the manifest with repo tool

    repo init -u -b dunfell -m rdkv-extsrc.xml

    repo sync -j `nproc` --no-clone-bundle --no-tags

    mkdir workspace

    cd workspace

    # initialize the manifest with repo tool

    repo init -u -b rdk-next -m rdkv-extsrc.xml

    repo sync -j `nproc` --no-clone-bundle --no-tags

    generic image
    MACHINE=raspberrypi-rdk-ipmc source meta-cmf-raspberrypi/setup-environment
    bitbake rdk-generic-ipclient-image

    Image build

    • Note. The kernel Image and root filesystem will be created under the ./tmp/deploy/images/raspberrypi-rdk-ipmc folder

    Flashing Procedure

    The micro SD card should not have any partition while flashing the image. The complete memory of the card should be free.

    # Insert the micro SD card to the host system and mention the card's device file name
    # of - output file (the device file for the inserted micro SD card
     bzcat <image name> | sudo dd of=/dev/<sd file> bs=4M iflag=fullblock oflag=direct conv=fsync

    System View

    JIRA Tracker

    Key Summary T Created Updated Due Assignee Reporter P Status Resolution

    Compilation Errors(Now all are resolved)

    S.NoComponentRecipeDependent onRemarks
    1sysintNo bb fileIt is not yet opensourcedIf added in meta-rdk it is fixed
    2sysint-confNo bb fileRemoving from package oss fileBuild is proceeding further
    7tr69hostif-devmeta-rdk-video/recipes-thirdparty/tr69hostif/tr69hostif_git.bbBluetooth-mgr -> audiocapture -> iarmargs
    8Netsrvmgr-pni-controller, netsrvmgr-pni-settings-loader, netsrvmgr-devmeta-rdk-video/recipes-extended/networkmgr/netsrvmgr_git.bbiarmmgrs
    14bluetooth-mgr-devmeta-rdk/recipes-connectivity/bluetooth/bluetooth-mgr_git.bbAudiocapturemgr -> iarmargs
    15aampmeta-rdk-video/recipes-extended/aamp/, meta-rdk-ext/recipes-extended/webkitbrowser-plugin/, meta-rdk-video/recipes-extended/injectedbundle/injectedbundle.bbiarmmgrs

    17Wpe-webkit-dev, wpe-webkit-web-inspector-plugin, wpe-webkitmeta-rdk-ext/recipes-extended/wpe-webkit/

    18audiocapturemgr, audiocapturemgr-devvirtual/media-utils iarmbus iarmmgrsiarmmgrsvirtual/mfrlib
    19ttsmeta-cmf-video/recipes-graphics/tts/tts.bbappendwpeframework-clientlibrariessecurity agent library is added to LD flag to fix the issue

    removed mediautils

    Testing Procedure

    •  Controller UI : For connecting Controller UI, use URL: http://<machineip>:9998
    • Enabling / Disabling the Plugins from controller UI. 
    • Wi-Fi Services: Wifi related services can be triggered from Wi-Fi tab in controller UI. We can scan and select from available networks.
    • R-Pi Board Console Access : Execute ssh root@machineip from your host PC
    • Image Details Verification: For verifying the image details, we can use cat /version.txt command.     

    root@raspberrypi-rdk-ipmc:~# cat /version.txt 





    BUILD_TIME="2021-09-02 10:19:30"

    Generated on Thu Sep 02  10:19:30 UTC 2021


                 eg :- gst-launch-1.0 playbin uri=aamp:// video-sink=westerossink 

    • Playback through Youtube Application : For launching youtube from controller UI, enable cobalt plugin, youtube page will be loaded in TV UI.


    UI Navigation

    For details on UI page, visit RDK Accelerator Home UI - Version 2.0#ControllerUI

    Cobalt lifecycle using terminal:

    Launching cobalt using RDK Shell : execute below command from ssh terminal

       curl --data-binary '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.RDKShell.1.launch", "params":{"callsign": "Cobalt", "type":"", "uri":""}}' -H 'content-type:text/plain;'

     Setting a video URL using deeplink method.

        curl --data-binary '{"jsonrpc":"2.0", "id":3, "method":"Cobalt.1.deeplink","params": "<videoURL>"}' -H 'content-type:text/plain;'

    Sending enter key to proceed video playback

        curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.RDKShell.1.generateKey", "params":{"keys":[ {"keyCode": 13,"modifiers": [],"delay":1.0}]}}'

    Suspending the plugin using RDKShell

       curl --data-binary '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.RDKShell.1.suspend", "params":{"callsign": "Cobalt"}}' -H 'content-type:text/plain;'

    Resuming the plugin

       curl --data-binary '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.RDKShell.1.launch", "params":{"callsign": "Cobalt", "type":"", "uri":""}}' -H 'content-type:text/plain;'


        curl --data-binary ' {"jsonrpc":"2.0", "id":3, "method":"org.rdk.RDKShell.1.destroy", "params":{"callsign":"Cobalt"}}' -H 'content-type:text/plain;'

    Trouble Shooting

    • Overcoming build time fetch errors: 
      • If fetch failure occurs for libinput, comment SRC_URI related changes from meta-cmf/recipes-graphics/libinput/libinput_git.bbappend.
      • If fetch failure occurs for gst-plugins-ugly,use mirror source, for that comment out SRC_URI related changes from meta-cmf/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bbappend.         
    • If the wireless networks are not listed in controller wifi page, try after disabling and enabling wifi from Network page, networks will be listed.
    •        Disable cntlm-main.service if device reboot occasionally.


    1. ERROR: ParseError at ..../meta-rdk-video/recipes-extended/ctrlm/ Could not inherit file classes/vsdk-utils.bbclass

      1. Z-Ben Zmood "/meta-rdk-video/recipes-extended/ctrlm" can be masked temporarily till the issue is fixed.