Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Expand
titleAfter building the full Raspberry Pi image, the rootfs doesn't seem to contain libpcap. So, although the rootfs of emulator build does contain it. Any specific reason for such difference?
  • The rootfs doesn't contain libpcap.so, as tcpdump utility is not appended in the packagegroup-rdk-oss-broadband.bbappend file in the Raspberry-pi build whereas you can find the tcpdump utility appended for the corresponding file for Emulator build.
  • So, if we include tcpdump utility in the above mentioned file, libpcap. So file will be present in the rootfs of the raspberry-pi build.
  • See below output from the raspberry-pi device after adding tcpdump -

root@RaspberryPi-Gateway:/# find . -iname libpcap* ./usr/lib/libpcap.so.1.7.4 ./usr/lib/libpcap.so.1

Expand
titleIs it possible to just download the pre built image of RDK-B that can be loaded onto an SD card without having to build it?

Currently no such pre-built images are available for download. You can follow the simple build instructions to generate your own build.

Eg:

Expand
titleWhy eRT subsystem fails on emulator?Is this because of the absence of embedded router?

The eRT (embedded router) subsystem is generally used to perform dmcli operations on Raspberry pi which can function as a basic router. To perform dmcli operations in emulator we use simu.

Expand
titleWhat are the steps involved in compiling the Glolang application? Do you have yocto recipes for the same?

We're simply building the application using go build (without any Yocto recipes) as shown below -

env CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=1 go build

Expand
titleDoes RDK officially support GO Lang compiled binaries? As the base of RDK seems to be linux, is it safe to assume that, the GO compiled program binaries will run normally on RDK-B? What are all the steps involved in compiling the Glolang application?
  • RDK officially doesn't support GO language compatibility. But you may always try GO binaries as most RDKM code bases are based on Yocto open-embedded builds and the binaries work out of the box.
  • You can simply build the application using go build (without any Yocto recipes) as shown below -
    • env CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=1 go build
Expand
titleWhich types of data models/namespace are available under the eCM subsystem like "Device.WiFi." under eRT?
  • Each component has its own XML file , which will be available under /usr/ccsp/<component>
  • Here for Device.WiFi. , the XML file (TR181-WiFi-USGv2.XML) is available under /usr/ccsp/wifi. This file provides details regarding the data models available under Device.WiFi.
Expand
titleIs there any support for containers in RDK-B as of today?

Please refer https://wiki.rdkcentral.com/display/RDK/RDKB+Containerization+in+RPI+-+User+Manual+-+2019+M3 .

View file
nameContainerization.odt
height250

Expand
titleHow to enable debug logs for a component ?

Below are the two ways to enable debug logs for component

  1. adding prints in the respective place of code
  2. using rdkb logger(LogAgent) .
    LoggerEnable - to enable/disable logs for particular component. If it is TRUE logs are enabled otherwise logs are disabled.
    LogLevels - To set different log levels for each component. By default all modules log level is 4 (RDK_LOG_INFO).
Expand
titleWhat are the steps to run valgrind for ccsp components?

The steps are –

  • Port valgrind to the platform (if not already available)
  • Compile the component with debug symbols enabled (i.e, avoid stripping the component executable/library. alternatively, you may replace the stripped binary with unstripped binary if it is not a read-only image)
  • Stop the service and start the binary as part of valgrind (just like we load any normal binary using valgrind)
  • Once you have enough data collected (or observed the issue you were trying to debug), you may stop it and examine the xml file for details.

For reference please look into this attachment :

 

View file
nameValgrind (1).odt
height250

Expand
titleDescribe a way to get ipset on RDK-B Emulator?
  • ipset is available in real RDK-B devices( like the XB6 devices for example). To enable ipset for RDKB emulator, you can do that as the yocto recipes for ipset are already available at /meta-openembedded/meta-networking/recipes-extended/ipset/38.bb
  • You need to add the recipe to the package group for emulator to use it up during build time (you may add them in ./meta-rdk-bsp-emulator/recipes-core/packagegroups/packagegroup-rdk-ccsp-broadband.bbappend)
Expand
titleHow to customize kernel modules for RDK-B emulator?

Follow the below steps to customize kernel –

  • Need to Create config file within linux bb/bbappend file available directory
    Path: meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi
    ( XXX.cfg ) - Example:camera.cfg
  • Configuration parameter addition: Add config data to created config file so as to enable it. For example, add the below line to our camera.cfg file
    CONFIG_VIDEO_BCM2835=y
  • Need to add created config file under SRC_URI of linux bb/bbappend file mentioned in step 1
    SRC_URI = "file://camera.cfg"
  • Do compilation and Installation
    bitbake "component-name" -c compile -f
    bitbake "component-name" –f
Expand
titleIs there igmp_snooper program in RDK-B?
  • There is a shell script named "service_mcastsnooper.sh" under /etc/utopia/service.d directory, and in the script, it will execute "igmp_snooper $sw_opt $if_opt $querier_opt 
Expand
titleWhat are the possible solutions available to manage RDK-B Data Model?

The data model can be managed via TR-069 , TR-181, management protocols like SNMP, WebUI, WEBPA .

Expand
titleHow to know the Ccsp components reside in which subsystems? {e-x, Device.WiFi. falls under eRT subsystem. likewise for eCM subsystem)
  • The eCM and eRT subsystems will always coexists in a DOCSIS based WAN frontend gateway devices. Any request for eCM parameters will be routed to eCM Message Bus Adapter component which uses SNMP or other protocols to talk to the cable modem firmware in the backend.
  • In Rpi, we have only eRT and in emulator we have simu.
  • eCM is applicable only to DOCSIS based devices , which uses SNMP based OIDs.
Expand
titleHow to test NTP daemon ‘ntpd’ with RDK-B?

Use NTP sync to run in the background to sync time with NTP servers.Update the NTP servers in ntp conf file if needed.

Expand
titleWhat is the minimum rdkb hardware requirement and functionalities supported by minimum requirement ?

Minimum Hardware requirement :

  • A Raspberry Pi 3B with the below configuration can be an ideal minimum requirement to support most of the functionalities for RDK-B.
  • The configuration of RPi 3B is CPU: Quadcore 1.2 GHz Broadcom BCM2837 64bit with 1GB RAM.
  • R-Pi 3B would be sufficient for the basic wireless functionality using 2.4GHz. In case of 5 GHz band support R-Pi 3B+ would be good (Note : R-Pi 3B+ doesn’t support simultaneous dual band operations).
  • Flash: The minimum size is around 285 MB. Anything above this should work just fine for loading/storing the build.
  • RAM: As far as the logs/database is concerned, anything around 16 MB should be sufficient.


The above requirement supports all the basic functionalities  of RDK-B.

Expand
titleIs RPC-download implementation not included in current RDK-B source code? After downloading and reviewing RDK-B source code, I can't find the source code to implement RPC-download to download firmware & make firmware upgrade. The namespace responsible for RPC-download defined in tr069pa is "com.cisco.spvtg.ccsp.fu.Configuration.", but no program registers this namespace.
  • RPC download is not supported in RDK-B.
  • RDK-B never had "cisco.spvtg.ccsp.fu.Configuration". This part of the code has come through initial code drop and is deprecated.
Expand
titleCan we modify wifi configuration of router through command line such as modifying ssid name, ssid password, wifi security protocol etc in RDK?

Yes. RDKB has the below options to modify SSID name, password, security protocol etc.

  • A WebUI, where you can modify these items just like the UI for most normal routers.
  • 'dmcli' command line utility which will execute TR69 commands to modify the mentioned items.            
Expand
titleIs it possible to interact with TR-181 data model with IPC (inter process communication)? Assume that there is a service running on RDK-B stack that wants to change WiFi setting or get the status of WiFi from data model. If possible, is there any specification available to communicate with RDK-B stack?

Yes. You can invoke the data models via dmcli commands from your service or via Cdm_GetParam set of APIs from your code.

Expand
titleIn current source code, the client side MUST install device private key and certificate files which are pair for ACS certificate, then it possible to have HTTPS connection with ACS. HTTPS is not supported in case of NO device key and certificate files pre-installed, right?

The CA certificate file and device certificate/private key can be configured in ccsp_tr069_pa_cfg.xml for https support.

Expand
titleHow to create a temporary guest wifi remotely (via WebPA, TR-069) on a RDK-B?

There are already reserve SSID for Guest WiFi network. Just enable the SSID using the respective DM to get the features in place.

Expand
titleWhat is jst and duktape in webui ?

Duktape is a lightweight javascript engine (https://duktape.org/). Alone it does not provide a web development engine like php or node.js. Therefore,on top of duktape there is a templating engine(called jst) and web server api. To make migration as easy as possible the style of templating and api signiture will match php as closely as possible. Many php functions and variables will be rewritten in javascript, so that changes to the exist code is minimized.

Expand
titleWhat is Persisting firewall rule?

It actually defines what kind of Internet traffic is allowed or blocked. For more details, Please Refer : Firewall - Rule persistence

Expand
titleWhat is the procedure to add new parameter to the existing object?

Please refer Integration Guide for third-party applications into RDK-B stack .

Expand
titleI am trying to setup a connection between rasp pi and my Web server. I have raspberry pi 3 B+ with RDK-B image on it. I am not able to find parodus logs in it. How to find the logs?

Use journalctl -xu parodus or can look for parodus.log in the log folder i.e. /rdklogs/logs/.

Expand
titleHow to upgrade python version in yocto as part of image build?

In <image>.bbappend file , upgrade python version using ROOTFS_POSTPROCESS_COMMAND
Code :

Code Block
languagebash
#python upgrade
IMAGE_INSTALL_append = " python3 "
ROOTFS_POSTPROCESS_COMMAND += "enable_python3; "
enable_python3() {
ln -sf /usr/bin/python3 ${IMAGE_ROOTFS}${bindir}/python
}

On compiling the code and flashing the image , python3 will be available in your board . Check with below command.

Code Block
languagebash
root@RaspberryPi-Gateway:~# python --version
Python 3.5.2
Expand
titleWhat to do if I encounter a Checksum mismatch while building image for RaspberryPi?

Checksum mismatch error is related to Fetcher failure for URL . The ways to fix this error are as follows

  1. the url might be deprecated . Hence should use the right URL with right path
  2. md5 checksum must be pointing to older one , which should be replaced with the latest checksum
  3. if the component is not required ( or not maintained ) , then they can be masked from inc file
Expand
titleHow to log RDK Components to component log files instead of stdout ?
  • For this you need to convert all C/C++ logging statements(like printf) to use standard logging functions CcspTraceInfo, CcspTraceWarning,CcspTraceError etc. CcspTraceXxxx functions are based on open-source 'log4c'.
  • By using the above apis the logs are automatically written to logfiles.
  • After conversion to standard logging functions ,you can verify the logs under /rdklogs/logs/.