Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
Introduction

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.

Removed components from MediaClient

...

...

Host Setup

Refer to the below link for Host Machine Setup

...

Initializing the Build Environment

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

RDarktitlecodelanguagebash
Code Blockdeck
theme
languageidbashframe
Card
label
dunfell image
Generic build

mkdir

workspace

cd

workspace

#

initialize

the

manifest

with

repo

tool

repo

init

-u

https://code.rdkcentral.com/r/rdkcmf/manifests

-b

ipstb_bringup

dunfell -m

rdkv-

ipstb-nosrc

extsrc.xml

repo

sync

-j

`nproc`

--no-clone-bundle

--no-tags

Code Block
languagebash
titleother workarounds
Card
label
# for MFR library git clone https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-cmf-raspberrypi-restricted -b rdk-next mkdir -p meta-cmf-raspberrypi/recipes-oem cp -rf meta-cmf-raspberrypi-restricted/recipes-oem/mfrlibs meta-cmf-raspberrypi/recipes-oem # for sysint git clone
Morty image
titleapply fixes
# bringing qt dependent components to dynamic layer
(cd meta-rdk; git fetch https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-rdk refs/changes/76/55976/3 && git cherry-pick FETCH_HEAD)
(cd meta-rdk-ext; git fetch https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-rdk-ext refs/changes/75/55975/2 && git cherry-pick FETCH_HEAD)
(cd meta-rdk-video; git fetch https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-rdk-video refs/changes/05/55905/3 && git cherry-pick FETCH_HEAD)

# depedencies removal
(cd meta-rdk-video; git fetch https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-rdk-video refs/changes/34/55534/1 && git cherry-pick FETCH_HEAD)
(cd meta-rdk-video; git fetch https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-rdk-video refs/changes/53/56253/2 && git cherry-pick FETCH_HEAD)

# IP STB changes
(cd meta-rdk; git fetch https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-rdk refs/changes/56/55456/8 && git cherry-pick FETCH_HEAD)

# others
## bringing sysint to rdk-video layer (open sourcing)
(cd meta-rdk-video; git fetch https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-rdk-video refs/changes/12/55812/4 && git cherry-pick FETCH_HEAD)

mkdir workspace

cd workspace

# initialize the manifest with repo tool

repo init -u

https://code.rdkcentral.com/r/

components/restricted/rdk-oe/meta-rdk-restricted

rdkcmf/manifests -b

rdk-next

cp -rf meta-rdk-restricted/recipes-extended/sysint meta-rdk-video/recipes-extended git clone https://code.rdkcentral.com/r/components/restricted/rdk-oe/meta-cmf-restricted -b rdk-next cp -rf meta-cmf-restricted/recipes-extended/sysint meta-cmf-video/recipes-extended cp -rf meta-cmf-raspberrypi-restricted/meta-rdk-restricted/recipes-extended/sysint meta-cmf-raspberrypi/recipes-extended # remove all the repo which are cloned for workaround rm -rf meta-cmf-raspberrypi-restricted meta-rdk-restricted meta-cmf-restricted # as media-utils has audiocapture mgr utility implementation based on RMF headers, media-utils dependencies to be removed # remove virtual/media-utils dependency from bluetooth-mgr find meta-rdk -name bluetooth-mgr*.bb -exec sed -i 's#virtual/media-utils##g' {} + # remove audiocapturemgr dependency from rdkservices find meta-rdk-video -name rdkservices*.bb -exec sed -i 's#audiocapturemgr##g' {} +

Image build

-m rdkv-extsrc.xml

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

Code Block
languagebash
themeRDark
titlegeneric image
MACHINE=raspberrypi-rdk-ipmc source meta-cmf-raspberrypi/setup-environment

bitbake rdk-ipgeneric-mcipclient-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.<MACHINE> directory

Code Block
languagebash
themeRDark
# Insert the micro SD card to the host system and mention the card's device file name
# of input- output file (if) is the imagedevice file tofor flash and the outputinserted file (of) is the card's device file name
bzcat rdk-ip-mc-image-raspberrypi-rdk-ipmc.wic.bz2 micro SD card
 bzcat <image name> | sudo dd of=/dev/<sd file> bs=4M iflag=fullblock oflag=direct conv=fsync

...

Jira
serverJIRA
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQuerytargets = R-Pi AND project = REFPLTV AND labels in (_rdk_ip_stb, _rdk_rpi_open_sourcing)
serverId11deff04-0380-3a3d-a916-0849d4e573f7

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
3virtual/mfrlib
Opensourcing
4tenablehdcp-devmeta-rdk-video/recipes-extended/tenablehdcp/tenablehdcp_git.bbiarmmgrsvirtual/mfrlib
5ledmgr-devmeta-rdk-video/recipes-extended/ledmgr/ledmgr_git.bbiarmmgrs
6iarm-query-powerstate-devmeta-rdk-video/recipes-extended/sys_mon_tools/iarm-query-powerstate_git.bbiarmmgrsvirtual/mfrlib
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
9iarm-set-powerstate-devmeta-rdk-video/recipes-extended/sys_mon_tools/iarm-set-powerstate_git.bbiarmmgrs
10rdkservices-devmeta-rdk-video/recipes-extended/rdkservices/rdkservices_git.bbiarmmgrs
11Key-simulator-devmeta-rdk-video/recipes-extended/sys_mon_tools/key-simulator_git.bbiarmmgrs
12iarmmgrs-devmeta-rdk-video/recipes-extended/iarmmgrs/iarmmgrs_git.bbvirtual/mfrlib
13ledmgr-extended-noop-devmeta-rdk-video/recipes-extended/ledmgr/ledmgr-extended-noop_git.bbiarmmgrs
14bluetooth-mgr-devmeta-rdk/recipes-connectivity/bluetooth/bluetooth-mgr_git.bbAudiocapturemgr -> iarmargs
15aampmeta-rdk-video/recipes-extended/aamp/gst-plugins-rdk-aamp_git.bb, meta-rdk-ext/recipes-extended/webkitbrowser-plugin/webkitbrowser-plugin_git.bb, meta-rdk-video/recipes-extended/injectedbundle/injectedbundle.bbiarmmgrs
16mfrlibs-rpi


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

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
20mediautils

removed mediautils


Testing Procedure

  •  Controller UI : For connecting Controller UI, use URL: http://<machineip>:9998
  •       Image Added
  • Enabling / Disabling the Plugins from controller UI. 
  •       Image Added
  • Wi-Fi Services: Wifi related services can be triggered from Wi-Fi tab in controller UI. We can scan and select from available networks.
  •      Image Added
  • 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 

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

BRANCH=rdk-next

YOCTO_VERSION=dunfell

 SPIN=0

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

Generated on Thu Sep 02  10:19:30 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 

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

    Image Added

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;' 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

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.