The eRT (embedded router) subsystem i=
s generally used to perform dmcli operations on Raspberry pi which can func=
tion as a basic router. To perform dmcli operations in emulator we use simu=
.
We're simply building the application=
using go build (without any Yocto recipes) as shown below -
en=
v CC=3Darm-linux-gnueabihf-gcc LD=3Darm-linux-gnueabihf-ld GOOS=3Dlinux GOA=
RCH=3Darm GOARM=3D7 CGO_ENABLED=3D1 go build
RDK officially doesn't support GO la=
nguage 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 Yoct=
o recipes) as shown below -
env CC=3Darm-linux-gnueabihf-gcc=
LD=3Darm-linux-gnueabihf-ld GOOS=3Dlinux GOARCH=3Darm GOARM=3D7 CGO_ENABLE=
D=3D1 go build
. In older releases , the XML files are available under /usr/ccsp/<c=
omponent> . But with the latest code, instead of reading and parsing the=
XML at runtime, the new approach includes conversion of XML to .C/.cpp wit=
h the help of XML2C and creating a shared library (libWi-Fi.so=
).These changes ar=
e done for rdkb to reduce image size and improve boot times.
Below are the two ways to enable debug logs for component=
p>
adding prints in the respective place of code
using rdkb logger(LogAgent) .
LoggerEnable - to enable/disable logs for particular component. If it is T=
RUE 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).
The steps are =E2=80=93
Port valgrind to the platform (if no=
t already available)
Compile the component with debug sym=
bols enabled (i.e, avoid stripping the component executable/library. altern=
atively, you may replace the stripped binary with unstripped binary if it i=
s not a read-only image)
Stop the service and start the binar=
y as part of valgrind (just like we load any normal binary using valgrind)<=
/span>
Once you have enough data collected =
(or observed the issue you were trying to debug), you may stop it and exami=
ne the xml file for details.
For reference please look into this a=
ttachment :
ipset is available in real RDK-B dev=
ices( 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&nb=
sp;/meta-openembedded/meta-networking/recipes-extended/ipset/38.bb
You need to add the recipe to the pa=
ckage group for emulator to use it up during build time (you may add them i=
n ./meta-rdk-bsp-emulator/recipes-core/packagegroups/packagegroup-rdk-=
ccsp-broadband.bbappend)
Follow the below steps to customize k=
ernel =E2=80=93
Need to Create config file within li=
nux bb/bbappend file available directory Path: meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi ( XXX.cfg ) - Example:camera.cfg=
Configuration parameter addition: Ad=
d config data to created config file so as to enable it. For example, add t=
he below line to our camera.cfg file CONFIG_VIDEO_BCM2835=3Dy
Need to add created config file unde=
r SRC_URI of linux bb/bbappend file mentioned in step 1 SRC_URI =3D "file://camera.cfg"
Do compilation and Installation bitbake "component-name" -c compil=
e -f bitbake "component-name" =
=E2=80=93f
Yes, igmp_snooper program is present in RDK-B .
There is a shell script named "service_mcastsnooper.sh" under /etc/utopia/service.d direct=
ory, and in the script, it will execute "igmp_snooper $sw_opt $if_opt $quer=
ier_opt
The data model can be managed via TR-069 , TR-181, management protocols =
like SNMP, WebUI, WEBPA .
The eCM and eRT subsystems will alwa=
ys coexists in a DOCSIS based WAN frontend gateway devices. Any request for eCM parameters will be routed to eCM Messa=
ge Bus Adapter component which uses SNMP or other protocols =
strong>to talk to the cable modem firmware in the backend.
In Rpi, we have only eRT and in emul=
ator we have simu.
eCM is applicable only to DOCSIS bas=
ed devices , which uses SNMP based OIDs.
Use NTP sync to run in the background=
to sync time with NTP servers.Update the NTP servers in ntp conf file if n=
eeded.
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 6=
4bit 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 3=
B+ doesn=E2=80=99t support simultaneous dual band operations).
Flash: The minimum size is around 285 MB. Anything above this should wo=
rk just fine for loading/storing the build.
RAM: As far as the logs/database is concerned, anything around 16 MB sh=
ould be sufficient.
The above requirement supports all the basic functionalities of RDK-=
B.
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 a=
nd is deprecated.
Yes. RDKB has the below options to mo=
dify 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 w=
ill execute TR69 commands to modify the mentioned items.  =
;
Yes. You can invoke the data models v=
ia dmcli commands from your service or via Cdm_GetParam set of APIs from yo=
ur code. The TR-181 data model specifications that are available in the TR-=
181 data model XML for each component can be referred.
The CA certificate file and device certificate/private key can be config=
ured in ccsp_tr069_pa_cfg.xml for https support.
There are already reserve SSID f=
or Guest WiFi network. Just enable the SSID using the respective DM to get =
the features in place.
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(call=
ed jst) and web server api. To make migration as easy as possi=
ble the style of templating and api signiture will match php a=
s closely as possible. Many php functions and variables will be rewritten i=
n javascript, so that changes to the exist code is minimized.<=
/span>
It actually defines what kind of I=
nternet traffic is allowed or blocked. For more details, Please Refe=
r : Firewall - Rule persistence
Checksum mismatch error is related to Fetcher failure for URL . Th=
e ways to fix this error are as follows
the url might be deprecated . Hence should use the right URL with right=
path
md5 checksum must be pointing to older one , which should be replaced w=
ith the latest checksum
if the component is not required ( or not maintained ) , then they can =
be masked from inc file
For this you need to convert all C/C++ logging statements(like printf) =
to use standard logging functions CcspTraceInfo, CcspTraceWarning,CcspTrace=
Error 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/.