You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 54 Next »

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.

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

    repo init -u https://code.rdkcentral.com/r/rdkcmf/manifests -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 https://code.rdkcentral.com/r/rdkcmf/manifests -b rdk-next -m rdkv-extsrc.xml

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

    Generic build
    mkdir workspace
    cd workspace
    
    # initialize the manifest with repo tool 
    repo init -u https://code.rdkcentral.com/r/rdkcmf/manifests -b dunfell -m rdkv-extsrc.xml
    repo sync  -j `nproc` --no-clone-bundle --no-tags
    
    

    Image build

    generic image
    MACHINE=raspberrypi-rdk-ipmc source meta-cmf-raspberrypi/setup-environment
    
    bitbake rdk-generic-ipclient-image
    
    
    • 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
    Loading...
    Refresh

    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
    •      
    • 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 

    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.

        

    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.
    • No labels