Introduction

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

Unused components from MediaClient :

IP STB build is based from medicalient image with out the licensed components and other components which are not required for IP streaming. Some of the components which are removed as of now are,

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 # initialize the manifest with repo tool
repo init -u https://code.rdkcentral.com/r/rdkcmf/manifests -b rdk-next -m rdkv-extsrc.xml
repo sync  -j `nproc` --no-clone-bundle --no-tags

Image build

MACHINE=raspberrypi-rdk-ipmc source meta-cmf-raspberrypi/setup-environment

bitbake rdk-generic-ipclient-image

Flashing Procedure

The image file will be generated under build-<MACHINE>/tmp/deploy/images/<MACHINE> directory.

eg: $ pwd

build-raspberrypi-rdk-ipmc/tmp/deploy/images/raspberrypi-rdk-ipmc

$ ls -lrt rdk-generic-ip-stb-client_rdk-next_20210914060227.rootfs.rpi-sdimg

-rw-r--r-- 2 dsrava434 dsrava434 478150656 Sep 13 12:33 rdk-generic-ip-stb-client_rdk-next_20210914060227.rootfs.rpi-sdimg

build-raspberrypi-rdk-ipmc/tmp/deploy/images/raspberrypi-rdk-ipmc$ 

For flashing the image use dd command.

eg:   sudo dd if=rdk-generic-ip-stb-client_rdk-next_20210914060227.rootfs.rpi-sdimg of=/dev/sdb bs=4M

[sudo] password for bcpuser149: 

114+0 records in

114+0 records out

478150656 bytes (478 MB, 456 MiB) copied, 7.01847 s, 68.1 MB/s


# Insert the micro SD card to the host system and mention the card's device file name
# input file (if) is the image file to flash and the output file (of) is the card's device file name
sudo dd if=<imagename> of=/dev/<sd file> bs=4M 

System View

Testing Procedure

 

     

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

imagename:rdk-generic-ip-stb-client_rdk-next_20210913065804

BRANCH=rdk-next

YOCTO_VERSION=morty

VERSION=4.09.13.21

SPIN=0

BUILD_TIME="2021-09-13 06:58:04"

Generated on Mon Sep 13  06:58:04 UTC 2021

root@raspberrypi-rdk-ipmc:~# 

  eg :- gst-launch-1.0 playbin uri=aamp://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8 video-sink=westerossink

   


           

           

         select video and press Enter key to start playback

         

Launching Vimeo using Resident APP : Select vimeo from resident app UI and press Enter to launch app.

         

      Select and press Enter to start playback.

         


           

To return to main menu from any of the app window use "Home" button in keyboard.

For further 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;' http://127.0.0.1:9998/jsonrpc

 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;' http://127.0.0.1:9998/jsonrpc

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}]}}' http://127.0.0.1:9998/jsonrpc

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;' http://127.0.0.1:9998/jsonrpc

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;' http://127.0.0.1:9998/jsonrpc

Destroy

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

Known Issues

S. NoIssuesStatusRemarks
1Unable to pair bluetooth remote via resident appopenBT via controller UI is working as expected
2Wifi connections are unsuccessful via resident appOpenWifi via controller Ui is working as expected
3Board reboot every 30 minutesopen

As work around, comment out On failure from dsmgr.service.

Path : /lib/systemd/system/dsmgr.service

Comment out " OnFailure=reboot-notifier@%i.service"

4App launch takes time to loadOpenblank screen is observed between key press and video playback begins for a small amount of time

Trouble Shooting