Blog from February, 2018

RDK-V iteration rdkv-20180125 is now available.


The latest RDK-V iteration addresses licensing issues so users are advised to move to the latest iteration.


Baselinenightly/20180125Updates from Comcast 2018-01-25.
Post-baseline updates

Revert changes 14447, 14388


TDKM54https://wiki.rdkcentral.com/display/TDK/TDK+Release+M54
Manifestrdkv-20180125

Build System

  • Reference platform builds still have a dependency on podManager.
  • All builds (emulator and reference platforms) now use rdk-oe (Yocto).
  • The old build_framework system is no longer supported.
  • rdk/components/generic/injectedbundle cannot be built by the community because of a dependency on AVE.
  • Root Filesystem uncompressed image sizes:
    • XG1v3 208588 (KiB)
    • XI3v2 197420 (KiB)

Highlights since 20171228

  • New components:
    • components/generic/aamp.
  • Components updated:
    • meta-cmf-bsp-emulator, meta-rdk-bsp-emulator, dvr, mediaframework, meta-cmf, meta-cmf-raspberrypi, meta-cmf-video, meta-rdk, meta-rdk-bsp-raspberrypi, meta-rdk-video, recorder, tr69, qtbase-5.1.1, qtwebkit-5.1.1, qtwebsockets-0.9.0, westeros, meta-rdk-restricted, playersinkbin, docs, bluetooth, bluetooth_mgr, breakpad_wrapper, crashupload, dca, devicesettings, hdmicec, hwselftest, iarmmgrs, injectedbundle, netsrvmgr, rdk_logger, rdkbrowser2, servicemanager, storagemanager, mfr_data, sysint, tr69hostif, xupnp, tdk, tdk-advanced.
  • Patches:
    • Separate patch files for the open-source OE layers are no longer maintained. Instead, from this iteration, mirrors of the OE layers used by RDK are maintained at CMF, containing rdk branches that contain the patches already applied. The RDK build scripts and recipes now all use these instead of the previous patches.
  • Community contributions:
    • 14448 RPI TDK-V morty migration
    • 14478 Add gstreamer1.0-plugins-base_1.10.4 recipe append
    • 14424 (RDKCMF-8020) : Busy loop fix
    • 14425 (RDKCMF-8021) : Avoid blank in review buffer
    • 14332 (RPI-160) : Make device.properties file for mediaclient RPI
    • 14447 Add gst-plugins-base dependency to gst-plugins-playersinkbin-rpi
    • 14438 (RDKCMF-8022) Jira: - changed westeros-init script to wait for /run/user/0 dir be created.
    • 14437 Rename bbhm_def_cfg_arm.xml in CCSP PSM recipe append
    • 14436 (RPI-171) : Test and Diagonstics Support on RPI
    • 13813 (RPI-158) :Enable userland patches to update dependencies on other modules Reason for Change: Enable userland patches:- 1. update dependencies on other userland modules 2. Enable initialize & assignment statement for wayland buffer.
    • 13675 (RPI-125) : RDKV Hybrid : ssh services not working on bring up
    • 14388 (RDKCMF-7543) Playersinkbin pipeline changed to use westerossink as video-sink. Added a signal to get video native size.
    • 14430 rdk-rpi.inc: drop PREFERRED_VERSION_iksemel
    • 14429 iksemel: drop iksemel recipe ( updated recipe now available in meta-rdk )
    • 14428 avro-c: drop obsolete .bbappend
    • 14423 Add external source support for aamp
    • 14418 Add AAMP overrides for CMF emulators
    • 14417 Add AAMP recipe
    • 14216 (RDKCMF-7960) Add video mute via MediaPlayerSink
    • 14215 (RDKCMF-7959) Add feature to control last decoded frame display
    • 14214 (RDKCMF-7994) Add PIP and Z-order support to MediaPlayerSink
    • 14344REFPLTB-17 : Bridge Mode Support in R-Pi
    • 14343REFPLTB-14 : Bridge Mode Support in R-Pi
    • 13559 libnetfilter-conntrack: make libnetfilter-conntrack patch apply against all versions
    • 14248 Set servicemanager SRCREV to AUTOREV
    • 13775 (RDKCMF-7949) : Correct libmng license.
    • 13558 rdkb.inc: set preferred version for morty for libnetfilter-conntrack
    • 13807 avro-c: fix missing build dependencies on zlib and liblzma
    • 13829 qemux86-soc.inc: force IMAGE_FSTYPES to "wic.vmdk" for OE 2.4
    • 13828 v86d: don't install /etc/modprobe.d/uvesafb.conf in OE 2.3 or 2.4
    • 13827 qemux86broadband-musl.conf: add machine config for musl build testing
    • 14175 Remove setting dnsmasq PREFERRED_VERSION to 2.76
    • 14390 Revert "Remove rc4 from openssh"
    • 13958 (RDKCMF-7964) : Support for static analysis on gst-plugins-rdk-dvr
    • 13248 bblayers.conf.sample: make meta-qt5 conditional on meta-rdk-video
    • 13868 fcgi: update SRC_URI to match new path to fcgi-2.4.0.tar.gz archive
    • 13831 gnutls_3.3.28: minor formatting tweaks to sync with upstream recipe in meta-gplv2
    • 13783 systemd_216: don't parse recipe if systemd 216 will not be used
    • 13557 dnsmasq: only apply dnsmasq 2.78 specific RDK-B patches to dnsmasq 2.78
    • 13529 rdk.conf: prefer older nmap 6.47 recipe for OE 2.1
    • 13509 rdk.conf: disable frame pointers for glibc 2.23 + x86
    • 13508 dbus: disable systemd PACKAGECONFIG for OE 2.1
    • 13447 iksemel: provide local recipe for iksemel 1.5
    • 13250 dbus: add CCSP APIs patch for dbus 1.10.20 ( required for RDK-B with OE 2.4 )
    • 14389 Fix RPi MC TDK ASP build
    • 14387 Revert "Add bluez5 override to fix fetch failure"
    • 13375 gnutls_2.12.24: only provide gnutls-native when building OE 1.6
    • 13225 setup-environment: Set distro codename for YP 2.4 and 2.5
    • 14174 Add missing whitespace to bluez5 recipe append
    • 13398 obexpushd: musl build fixes + misc recipe cleanup
    • 13252 layer.conf: mask local hostapd 2.2 recipe if building for musl
    • 14323 Update generated patch file: qtwebsockets_generic_v0.9.0.patch
    • 14322 (RDKCMF-963) Update generated patch file: 0002-generate-qtwebkit-patch-from-vanilla-OSS.patch
    • 14321 (RDKCMF-963) Update generated patch file: 0001--generate-qtbase-patch-from-vanilla-OSS-qt.patch
    • 14262 Added support tp play MPEG2 files on raspberrypi
    • 14270 (RDKCMF-8010) : PMT update fix
    • 14268 (RDKCMF-8009) : Added new commands for rmfApp playback
    • 14267 (RDKCMF-8008) : Added getTunerId API to QAMSRC
    • 14266 (RDKCMF-8007) : Handle Max PIDs per PGM in qamsource inband SI mgr
    • 14301 (RPI-160) : Disabling Iptables service
    • 14300REFPLTV-3 : Need Soc scripts which will give the audio and video play status in RPI
    • 14272 Fix crash on transition to next video in YouTube
    • 14257 Remove rc4 from openssh
    • 14244 (RDKCMF-7996) - Added detached buffer to if clause instead of duplicated attached buffer validation
    • 14245 Set the SRCREV in servicemanager to RDK_GIT_BRANCH
    • 14213 Add bluez5 override to fix fetch failure
    • 14212 Use OMX clock for position queries
    • 14197 Add setting of SRCREV in servicemanager
    • 14196 Add nfs-utils recipe append to fix missing libevent header error
    • 14145 Ensure app exits immediately upon terminate event
    • 14108 Enable breakpad support in CCSP components
    • 14107 Update pxScene Make file patch
    • 13893 Enable breakpad-wrapper build
    • 14086 Revert "Re-enable md4 in openssl"
    • 13959 (RDKCMF-7965) : Support for static analysis on breakpad_wrapper
    • 13892 (RDKBCMF-149) Move breakpad-wrapper patch changes to component
    • 13918CODEMGMT-534 Add contributing file
    • 13917CODEMGMT-533 Add contributing file
    • 13916CODEMGMT-533CODEMGMT-534 Fix Bluetooth component licences
    • 13915CODEMGMT-444: Fix breakpad_wrapper licence
    • 13891 (RDKBCMF-149) Breakpad-wrapper build failures
    • 14091 DELIA-25243 : Not all PSNs are generated when a placement response contains no content location for all positions
    • 14090 DELIA-25185, DELIA-25159 : CurrentTime is not cached when trick-mode initiated
    • 14089 DELIA-25032 LSA Code cleanup rbiTest mode
    • 14088 RDKCOM-430: Sync POD code from thirdparty to generic repo.
    • 13548 (RDKCMF-7924) : Playersinkbin refactoring for Raspberry Pi
    • 13549 (RDKCMF-7924) : Playersinkbin refactoring for Raspberry Pi
    • 13547 (RDKCMF-7924) : Playersinkbin refactoring for Raspberry Pi


A detailed changelog since the last iteration (rdkv-20171228) can be found here.

Details of all RDK-V releases and iterations can be found here

Building for RaspberryPi Hybrid

$ mkdir <workspace dir>
$ cd <workspace dir>
$ repo init –u https://code.rdkcentral.com/r/manifests -m rdkv.xml –b rdkv-20180125-rpi
$ repo sync -j4 --no-clone-bundle
$ source meta-cmf-raspberrypi/setup-environment

Select option raspberrypi-rdk-hybrid.conf

$ bitbake rdk-generic-hybrid-wpe-image

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

Building for RaspberryPi Mediaclient

$ mkdir <workspace dir>
$ cd <workspace dir>
$ repo init –u https://code.rdkcentral.com/r/manifests -m rdkv.xml –b rdkv-20180125-rpi
$ repo sync -j4 --no-clone-bundle
$ source meta-cmf-raspberrypi/setup-environment

Select option raspberrypi-rdk-mc.conf

$ bitbake rdk-generic-mediaclient-wpe-image

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


Documentation for RDK-V on RaspberryPi is available at: 

Media Gateway Hybrid (RaspberryPi)-2.1-krogoth

Media Client (RaspberryPi)-2.1-Krogoth

RaspberryPi Sanity Testing

Some basic sanity tests were performed on the Hybrid and Client images, playing video locally via gst-play and also using WPELauncher.

In addition streaming tests were performed using rmfApp.

Known Issues

Emulators:

  • In this release all the GstPluginRdk emulator medicaclient tests failed due to a test environment issue, the tests passed when re-run manually
  • TDK-346 RDK-V CMF Emulators xcal-device service and xdiscovery not running
    • Causes most XUPNP tests to fail, issue (which is a work around procedure) is marked as resolved but the underlying issue won't be addressed until dependency on POD manager issue is removed
    • The output.json file created by this service is required for a number of the E2E tests, we have worked around this by creating the /opt/output.json file on hybrid and media client as follows:
      {"playbackUrl": "http://<hybrid IP>:8080/hnStreamStart?deviceId=<hybrid mac address>&DTCP1HOST=<hybrid IP>&DTCP1PORT=5000"}
      e.g. {"playbackUrl": "http://192.168.21.234:8080/hnStreamStart?deviceId=08:bb:83:b3:b3:07&DTCP1HOST=192.168.21.234&DTCP1PORT=5000"}
      
  • TDK-292 RDKV Emulator-HYB recorder failures, requires DVR Simulator (refer to TDK-277)
  • TDK-380 RDKV Emulator "No such file or directory:" retrieving recordDetails.txt
  • TDK-381 RDKV Emulator RMF_HNSrc_MPSink GetMediaTime() Failures
  • TDK-448 RDKV EMU Hybrid E2E and RMF Failures

RPI:

  • TDK-451 RDKV RPI Most E2E TSB Tests Failing
  • RPI-125 RDKV Hybrid: ssh services not working on bring up
  • REFPLTV-2 Duration of the recorded content is not as expected on RPI Hybrid
  • REFPLTV-8 Video playback is not happening on RPI Hybrid
  • REFPLTV-7 RDKV Hybrid E2E Tests Failing in Latest Build
    • Both REFPLTV-7 and REFPLTV-8 issus are worked around in this release as we reverted the commits which caused this issue

Platforms:

  • RDK-283 Absence of POD in CMF image blocks RMF system level functionality.
    • xcal device service doesn't start, so /opt/output.json file required by E2E tests not created we have worked around this by creating the tmp/ip_acquired file, with this workaround we can run TDK E2E tests
  • TDK-277 Testing of Recorder component will remain blocked until DVR Simulator code is available
  • TDK-276 Subset of Recorder tests still consistently failing for CMF
  • TDK-387 RDKV Platform XG1V3 XUPNP Event not received by xcal-device process
  • TDK-388 RDKV Platform XG1V3 RMF MPSink Set Volume Errors
  • TDK-389 RDKV Platform E2E Tests Failures "HNSource play failed current state not playing"

RDK-B iteration rdkb-20180123 is now available. Below are links to the relevant documents for the iteration.

For the Gerrit links, you need to log in before you will be able to see the contents.

The latest RDK-B iteration addresses licensing issues so users are advised to move to the latest iteration.

Baseline 

Baselinenightly/201801232018-01-23 baseline.
Post-baseline updates

TDKM54

https://wiki.rdkcentral.com/display/TDK/TDK+Release+M54

Manifestrdkb-20180123

Highlights since 20171228

  • Components updated:
    • meta-cmf-bsp-emulator, meta-rdk-bsp-emulator, meta-cmf, meta-cmf-broadband, meta-cmf-raspberrypi, meta-rdk, meta-rdk-broadband, tdk, tdk-advanced, tdkb.
    • breakpad_wrapper, crashupload, CcspCommonLibrary, CcspLMLite, CcspMoCA, CcspMtaAgent, CcspPandM, CcspPsm, CcspTr069Pa, CcspWifiAgent, PowerManager, TestAndDiagnostic, Utopia, Xconf, hal, halinterface, sysint, webui, rdkb/devices/raspberrypi/halrdkb/devices/rdkbemu/ccsp/rdkb.
  • Patches:
    • Separate patch files for the open-source OE layers are no longer maintained. Instead, from this iteration, mirrors of the OE layers used by RDK are maintained at CMF, containing rdk branches that contain the patches already applied. The RDK build scripts and recipes now all use these instead of the previous patches.
  • Community contributions: 
    • Please refer to the changelog since the last iteration (rdkb-20171228here (Gerrit).

Getting the code

$ mkdir rdkb
$ cd rdkb
$ repo init -u https://code.rdkcentral.com/r/manifests -m rdkb.xml -b rdkb-20180123
$ repo sync -j4 --no-clone-bundle
  • The -m rdkb.xml in the build sequence above is important. If this is not specified, you will get an RDK-V tree by default.
  • The -b rdkb-20180123 in the build sequence above specifies the branch to use. If you omit the -b rdkb-20180123 entirely, you will get the master (HEAD) of each component.
  • At any time, the community can build latest master by dropping the -b rdkb-20180123 option in the repo init command.
  • We have verified that this iteration boots to a login prompt and that you can log in, and that you can connect with a web browser to the web admin page.

Building for the emulator

$ source meta-cmf-bsp-emulator/setup-environment (select qemux86broadband)
$ bitbake rdk-generic-broadband-image

The image path will be: build-qemux86broadband/tmp/deploy/images/qemux86broadband/rdk-generic-broadband-image-qemux86broadband.vmdk

To build TDK, follow the steps as for a normal build, above, but use the following bitbake command:

$ bitbake rdk-generic-broadband-tdk-image 

The image path will be: build-qemux86broadband/tmp/deploy/images/qemux86broadband/rdk-generic-broadband-tdk-image-qemux86broadband.vmdk

TDK documentation is available here: https://wiki.rdkcentral.com/display/TDK/TDK+Release+M54

Running the emulator

  1. Start VirtualBox.
  2. Click New -> Enter name -> Select type Linux -> Select version Other Linux (32 bit) -> Click Next
  3. Select Memory size - 512MB -> Click Next
  4. Select option Use an existing virtual hard drive -> Select the built image above -> Click Create
  5. Once the VM has been created, select the new image and click Settings -> Network -> Select Attached to: 'Bridged Adapter' -> Click Ok
  6. Click Start. This will bring up the emulator with the initial splash screen

Building for RaspberryPi

$ mkdir <workspace dir>
$ cd <workspace dir>
$ repo init –u https://code.rdkcentral.com/r/manifests -m rdkb.xml –b rdkb-20180123-rpi
$ repo sync -j4 --no-clone-bundle
$ source meta-cmf-raspberrypi/setup-environment

Select option raspberrypi-rdk-broadband.conf

$ bitbake rdk-generic-broadband-image

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

Documentation for RDK-B for RaspberryPi is available here: https://wiki.rdkcentral.com/display/DEVTOOLS/RDK+Broadband+(RaspberryPi)+-Krogoth

Running on the RaspberryPi


Please see RDK Broadband (RaspberryPi) -Krogoth.

Known Issues

RPI Issues:

  • TDK-409 RDKB RPI TS_WIFIHAL_5GHzGetRadioStandard Failure
  • TDK-434 RDKB RPI WIFIAGENT 2.4 and 5 IsSSIDDown Failures
  • RPI-41 TDK SelfHeal lighttpd process is not getting restarted automatically once the process is crashed/killed
  • RPI-61 port triggering is not working for RaspberryPi device
  • RPI-63 LMLIte Connected devices are not displayed on management portal under connected device list
  • RPI-85 TDK WIFI Not able to change the operating standard value of 2.4GHZ
  • RPI-86 TDK WIFI Not able to change the operating standard value of 5GHZ
  • RPI-131 Cannot get admin password from backend.
  • RPI-138 RDKB WiFi Get Extension channel not returning desired outputs
  • RPI-147 WiFi HAL api wifi_getRadioSupportedFrequencyBands() returning a null string
  • RPI-148 TAD LMLite Device.Hosts.HostNumberOfEntries is not zero in Bridge mode
  • RPI-173 TDK WIFI WiFi SSIDs are broadcasting in Bridge mode
  • REFPLTB-3 TDK WIFI The HAL api wifi_getRadioMaxBitRate() is returning empty string for 2.4GHz
  • REFPLTB-4 TDK WiFi The HAL api wifi_getRadioMaxBitRate() is returning an empty string for WiFi 5GHz
  • REFPLTB-5 TDK WiFi Set operation failing with HAL api wifi_setRadioOperatingChannelBandwidth() for 2.4GHz
  • REFPLTB-6 TDK WiFi Set operation failing with HAL api wifi_setRadioOperatingChannelBandwidth() for 5GHz
  • REFPLTB-7 TDK WIFI Setting Device.WiFi.AccessPoint. .SSIDAdvertisementEnabled is false is broadcasting the SSID in network
  • REFPLTB-8 TDK WIFI WiFi Clients are holding the IP even after the SSIDs Device.WiFi.SSID. .Enable are disabled
  • REFPLTB-12 TDK RPI WIFI Device.WiFi.SSID.1.Status not changing the status as "Down" after disabling Device.WiFi.SSID.1.Enable
  • REFPLTB-13 TDK RPI WIFI Device.WiFi.SSID.2.Status not changing the status as "Down" after disabling Device.WiFi.SSID.2.Enable
  • REFPLTB-21 TDK WIFIHAL wifi_getSSIDMACAddress() API returns a null value
  • REFPLTB-22 TDK WIFI HAL wifi_getApRetryLimit call fails for all access points except access point 1
  • REFPLTB-23 TDK WIFIHAL Authentication Mode is hard coded in wifi_getApBasicAuthenticationMode()
  • REFPLTB-24 TDK WIFI AutoChannelEnable is not disabling when radio channel is changed for 5GHz
  • REFPLTB-25 TDK WIFI AutoChannelEnable is not disabling when radio channel is changed for 2.4GHz
  • REFPLTB-26 TDK WIFI HAL wifi_getRadioExtChannel returns an empty string for 2.4Ghz
  • REFPLTB-27 TDK WIFIHAL Mismatch between the values returned by wifi_getRadioStandard() and wifi_getRadioSupportedStandards() for radioIndex 0

Emulator Issues:

  • TDK-368 RDKB-EMU Intermittent Segfault in CcspWiFiAgent.service
  • TDK-375 RDKB EMU TS_TAD UDPEcho Test Failures
  • TDK-425 RDKB EMU failure setting Device.X_RDKCENTRAL-COM_Report.NetworkDevicesStatus.ReportingPeriod
  • TDK-432 RDKB EMU WIFIHAL GetSSIDStatus Failures
  • TDK-445 RDKB EMU TS_SNMP_Get2.4SSIDWithDisabledXfinityWifi Failure
  • TDK-450 RDKB EMU TS_TAD Regressions
  • RDKBEMU-380 TDK SNMP SNMP Query to get the System Description details is not returning the mandatory fields like HW_REV,SW_REV
  • RDKBEMU-502 Parameters like BytesReceived, PacketsReceived are not getting populated after a successful UDP echo command executed
  • RDKBEMU-558 TDK LMLite Reporting period not reverting back to default value after OverrideTTLseconds
  • RDKBEMU-589 TDK WIFI HAL wifi_getRadioMaxBitRate returns NULL for 2.4GHz and 5GHz
  • RDKBEMU-594 TDK WiFi Set operation with HAL api wifi_setApEnable() is failing for 2.4GHz
  • RDKBEMU-606 TDK WIFI Enabling Device.DeviceInfo.X_COMCAST_COM_xfinitywifiEnable as true goes for timeout
  • RDKBEMU-609 TDK WIFI Setting Device.WiFi.X_CISCO_COM_FactoryReset as true crashes the WIFI process
  • RDKBEMU-613 TDK WIFI HAL]wifi_getApWpaEncryptoinMode API has textual error in the name
  • RDKBEMU-621 TDK TAD Device.IP.Diagnostics.IPPing.DiagnosticsState returns the error value as "Error_Other" while trying to ping using Device.IP.Diagnostics.IPPing. parameters
  • RDKBEMU-622 TDK Bridge Mode Setting Device.X_CISCO_COM_DeviceControl.LanManagementEntry.1.LanMode to router mode goes for timeout
  • RDKBEMU-623 TDK WIFI HAL] wifi_getSSIDName HAL API is returning incorrect SSID Name

Generic TDK Issues:

  • RDKB-9915 TDK Port Triggering Master CcspPandMSsp process crashes when trying to enable a rule added for port triggering
  • RDKB-10750 TDK PAM Master Fails to set the value as "Requested" for Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState
  • RDKB-14126 TDK Getting invalid parameter error on setting parameter values for a new PortMapping rule