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

Compare with Current View Page History

Version 1 Next »



Access and Authentication


How to solve password prompt errors during repo initiation?

To resolve password prompt errors, follow these steps:

Example:

Password for 'https://code.rdkcentral.com': remote: Unauthorized fatal: Authentication failed for 'https://<username>@code.rdkcentral.com/r/manifests/'
  • Obtain valid RDK credentials: Make sure you have a valid RDK Central account. If not, register at the RDK Central Registration Link using your company email address.

  • User registered with valid company email address: Users must belong to a licensed company to be able to clone and checkout the manifest. To verify if your company is licensed, please check the following wiki page: Licensees
  • Activate your account: If your account is inactive or disabled, you can activate it using the self-service option. Log in to wiki.rdkcentral.com and follow the instructions to activate your account. If you still face issues, contact support@rdkcentral.com.

  • Check your login credentials: Ensure you are using the username and password to log in to code.rdkcentral.com. If you are still facing authentication issues, contact support@rdkcentral.com.

  • Update the .netrc file: If you can browse the repository at https://code.rdkcentral.com/r/admin/repos/components/generic/mediaframework but cannot clone it, the issue might be with your environment.
    Update the $HOME/.netrc file with your login credentials:
    machine code.rdkcentral.com login <user-name> password <Password>

By following these simple steps, you should be able to resolve the password prompt errors during repo initiation.



Build

How to view the dependencies of packages?

There are tools within bitbake that enable this level of detail.

“bitbake -g targetname” 
Creates depends.dot and task-depends.dot files in the current directory. These files show which packages and tasks depend on which other packages and tasks and are useful for debugging purposes.
"bitbake -g -u depexp targetname" 

It shows results in a more human-readable GUI style. A simple mount of the resulting root image will show how much storage space is being used.
In addition, the toaster is a new graphical user interface for bitbake that makes these tools much easier to use.


How to overcome github access related error?

To overcome GitHub access-related errors, follow the steps mentioned in the official documentation for adding an SSH key to your GitHub account. Adding a New SSH Key to Your GitHub Account, once you've successfully added the SSH key, you should no longer encounter GitHub access errors.


How to add a package to my project?

As with any complex system, the real answer is that it depends, but of course that is not very helpful. The simplest method for adding a single package to your build is to add the below line to conf/local.conf:

  • IMAGE_INSTALL_append = " package"

Use your own package name in place of package. Note the leading space before the package name. If you want to add multiple packages, you can use multiple lines like the above, or list all packages on a single line with:

  • IMAGE_INSTALL_append = " package1 package2 package3"

Although if you add in local.conf, that is not permanent change. For permanent addition of that package in final rootfs, you need to be added in image recipe or any package group which is included in the image recipe.


How to handle prebuilt? 

Pre-built images are managed internally by Yocto using the sstate-cache. To utilize a pre-built from a known good build, you can configure your build environment to point to the corresponding cache folder.

  • Navigate to the configuration file located in the ./build<buildtype>/conf/ directory.
  • Open the relevant configuration file (e.g., local.conf) and specify the path to the sstate-cache where the pre-built images are stored.
  • Add or modify the following line to point to your pre-built cache location. SSTATE_DIR = "/path/to/your/sstate-cache"

By setting this cache path, the build system will automatically pick up the pre-built images from the specified location, streamlining the build process.
We can also pull prebuilt from Artifactory and directly install them in rootfs.

Example:

SRC_URI += "https://<artifactoryname>/prebuilts.tar.gz

# Install the necessary files
do_install() {
    install -d ${D}/usr/bin
    install -m ${WORKDIR}/your-file ${D}/usr/bin
}


What are the commands to build a specific sub-component (WPE, Utopia, etc.)? 

In the RDK environment, each sub-component can be built independently using the bitbake command.

  • Build a Specific Component: Use the following command, replacing <component> with the name of the desired component: bitbake <component>.
    For example, to build the RDK Services, you would run: bitbake rdkservices       
  • Build the Final Image: After building the specific component, you typically need to build the overall image that includes the component. For example, to package the RDK browser into the final image, you would run:
    bitbake rdk-generic-<hybrid/mediaclient>-wpe-image

This command generates the final image for hybrid devices, ensuring that only the affected components are rebuilt if nothing has changed.


Where does ${D}, ${WORKDIR} resolve to?

These are OE metadata variables. Bitbake has preprocessing options where it expands all the local bitbake variables, so you could take advantage of that option to figure it out.

bitbake -e wpewebkit | grep "^S ="
bitbake -e wpewebkit | grep "^WORKDIR ="

It can be used to check for any bitbake variable, alternatively, you can pipe the whole bitbake -e output to a file and inspect the file in your favorite editor.


 Why are many components built from external sources in yocto??

Many components are built from external sources to simplify development and enable quick testing of changes. However, this approach is managed by meta-cmf/conf/distro/include/rdk-external-src.inc, which prevents these components from being saved in the sstate cache. As a result, builds can take longer because components are recompiled every time, even if there are no changes.

If you prefer a different approach to save time, you can use the XXX-nosrc.xml manifest file, which is retained after the first build and helps prevent unnecessary recompilation of unchanged components.


How do I locate logs for a particular component in the Yocto/OE folder structure?

You can find log files for each task associated with a recipe in the temp directory of that recipe. Each log file is named according to the task it corresponds to, such as log.do_compile for the compile task. Bitbake maintains separate logs for various tasks like fetch, compile, and install.
For example, if you are looking for logs related to the "rdkservices" component on a Raspberry Pi device, you can locate the logs as follows:

  • The logs for the "rdkservices" recipe would typically be found at:
    <build>/tmp/work/<machine>-rdk-linux/rdkservices/1.99+gitAUTOINC+<commit_hash>/temp/
    Replace <machine> and <commit_hash> with the appropriate values for your build.

  • Inside the temp directory, you can find logs for specific tasks. For example: Compile Logs: log.do_compile Fetch Logs: log.do_fetch Install Logs: log.do_install etc.


How to enable/disable kernel/busybox features in Yocto? 

To enable or disable kernel or BusyBox features in Yocto, you can modify the recipe metadata by creating a .bbappend file.

  • To create a .bbappend file you need to create a file that appends to the existing recipe. The name of the .bbappend file should match the recipe it targets. For example, if you are modifying stblinux.bb, create a file named stblinux_%.bbappend. 
  • Within the .bbappend file, you can specify the features you want to enable or disable. For example, to enable IPSec, you might create a configuration file named enable_netkey.cfg with the following content: CONFIG_NET_KEY=y
  • In your .bbappend file, append the SRC_URI variable to include your configuration file: SRC_URI_append = "file://enable_netkey.cfg"
  • If the feature needs to be enabled across all platforms, you can add the .bbappend file to the meta-rdk layer. If it’s specific to a particular platform, place the .bbappend file in the OEM layer corresponding to that platform.

By following these steps, you can effectively manage kernel and BusyBox features in your Yocto builds.


How to enable GDB in build?

The signal core dump that are generated under /tmp can be decoded using gdb.
Procedure:

  • In <image>.bbappend file
    IMAGE_INSTALL_append = " gdb"
  • In local.conf
    INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
    INCOMPATIBLE_LICENSE_pn-gdb = ""
    EXTRA_IMAGE_FEATURES += "tools-debug"
    EXTRA_IMAGE_FEATURES += "dbg-pkgs"
  • In <component>.bbappend
    CFLAGS += " -D_DEBUG -g "
  • Compile and flash the binary to device
  • Run gdb -c <path to signal dump> <binary>


Bitbake complains about a non-existent path, could not inherit files, invalid environment variable, etc. with "ERROR: Function failed","ERROR: ParseError"? How to resolve this?

The bitbake process terminates after complaining about a non-existent path, could not inherit files or environment variables.

Example:

ERROR: ParseError at /home/<NTID>/kirkstone-nightly20230925-dunfell/meta-cmf-broadband/recipes-ccsp/ccsp/rdk-cellularmanager-mm.bb:26: Could not inherit file classes/pythonnative.bbclass
ERROR: Parsing halted due to errors, see error messages above

To resolve the  rdk-cellularmanager-mm Pythonnative error in kirkstone, note that kirkstone uses python3native, while dunfell requires pythonnative. Therefore, you should inherit python3native in your recipe for Kirkstone.


Bitbake fails with "fatal: Not a git repository" after selection of option in meta-cmf/setup-environment, and why?

The issue is observed during the setup and machine selection stage, setup-environment script will throw an unexpected error about non-existing layer paths.

Example:

gpsahu01@dvm-wcdcc-tata-001:~/cmf$ source meta-cmf/setup-environment
1) meta-raspberrypi/conf/machine/raspberrypi0.conf             7) meta-rdk-bsp/conf/machine/qemux86hyb.conf
2) meta-raspberrypi/conf/machine/raspberrypi2.conf             8) meta-rdk-bsp/conf/machine/qemux86mc.conf
[…]
Please enter your choice of machine [1..11]: 7
### Shell environment set up for builds. ###
Writing auto.conf ...
Writing versions.txt ...
-bash: cd: ../meta-browser//: No such file or directory
fatal: Not a git repository (or any parent up to mount point /mnt)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
-bash: ../patches/rdk-oe/meta-linaro//*.patch: No such file or directory
-bash: cd: ../meta-openembedded//: No such file or directory
fatal: Not a git repository (or any parent up to mount point /mnt)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

Here, if the host PC has set colored terminal output for commands, then it may cause unexpected errors being shown during execution of meta-cmf/setup-environment script. To fix the problem, we can run the following command:
gpsahu01@dvm-wcdcc-tata-001:~/cmf$ alias ls='ls --color=no'


Open-source software related issue:

a) Unable to find revision or branch from upstream:  "ERROR: Fetcher failure: Unable to find revision, ERROR: Function failed: Fetcher failure for URL", How to solve this?

When we try to build a very old branch of the code, the manifest file will not be up-to-date, as few of the open-source URLs might not be continuing support of older branches or versions of software.

Example:

WARNING: Failed to fetch URL git://code.qt.io/qt/qtlocation.git;branch=stable, attempting MIRRORS if available
ERROR: Fetcher failure: Unable to find revision f28408346243cf090326f4738fd838219c21e00f in branch stable even from upstream
ERROR: Function failed: Fetcher failure for URL: 'git://code.qt.io/qt/qtlocation.git;branch=stable'. Unable to fetch URL from any source

It is recommended to build with more recent branches, as the code will be well maintained and will have updated features.


b) How to resolve problems caused due to the source URL is no longer available/ site is down with the error "ERROR: Function failed: Fetcher failure for URL?"

An open-source URL is broken either because the website is down temporarily, or it is permanently removed.

Example:

WARNING: Failed to fetch URL http://directfb.org/downloads/Core/linux-fusion/linux-fusion-9.0.3.tar.gz, attempting MIRRORS if available
ERROR: Fetcher failure: Fetch command failed with exit code 4, no output
ERROR: Function failed: Fetcher failure for URL: 'http://directfb.org/downloads/Core/linux-fusion/linux-fusion-9.0.3.tar.gz'. Unable to fetch URL from any source

Temporary workaround: In case of archives (.tar or .zip, etc.), if the file is available from a previously built stack, then it can be copied and an empty file with the name <archive-name>. done has to be created to bypass looking for downloading the file.
Fixing the recipe: If the problematic recipe is available from any other alternative mirror, update the same in SRC_URI part of the recipe. Few components may be available in common mirrors such as github,  web.archive.orgoipf.tv etc.


How to enable/disable a FEATURE in build?

To include a specific feature that is not available in base build, enable the feature specific DISTRO flag in platform specific config file. For example, to include WiFi feature in RPi build,

Add the DISTRO specific flag in RPi platform specific conf file.

In File meta-cmf-raspberrypi/conf/distro/include/rdk-rpi.inc

Add DISTRO_FEATURES_append = " wifi" (to include the feature if not there) 

 DISTRO_FEATURES_remove = " wifi" (to remove the feature)

Make sure the recipe is part of the package build.

Example:

PACKAGECONFIG_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wifi','wifi', '',d)}"


How to solve error due to RDK_FLAVOR not defined?

ERROR: ParseError at /home/a1602446/build-raspberrypi-rdk-broadband/conf/local.conf:247: Could not include required file conf/distro/include/##RDK_FLAVOR##.inc

The above error occurs intermittently, which can be fixed by retrying the source command for setup_environment file.

In case of RPi, it is 

  • source meta-cmf-raspberrypi/setup-environment


How to enable or disable any feature using macros?

Please refer Compile-time Build Variants Flags.


How to solve "Invalid md5sum error" (md5sum mismatch in recipe,ERROR: gst-plugins-playersinkbin-noop: md5 data is not matching)?

Bitbake complains about md5sum mismatch when a recipe has retained old md5sum value while the source file is updated.

Example:

ERROR: gst-plugins-playersinkbin-noop: md5 data is not matching for file://gstplayersinkbin.c;md5=0f518921aef846c156f91ce4dd6b7c76
ERROR: gst-plugins-playersinkbin-noop: The new md5 checksum is 958142c8f2783c6c4f357f561585b4da

Update the new md5sum value of the file in recipe. This can be done using the following steps:

:…/meta-rdk/recipes-extended/gst-plugins-playersinkbin/files$ md5sum -t gstplayersinkbin.c
958142c8f2783c6c4f357f561585b4da gstplayersinkbin.c

Now change the above value in recipe accordingly:

LIC_FILES_CHKSUM = "file://gstplayersinkbin.c;md5=958142c8f2783c6c4f357f561585b4da \”


How to solve ”Invalid syntax” error due to python version mismatch during repo commands?

Example:

repo: warning: Python 2 is no longer supported; Please upgrade to Python 3.6+.
Downloading Repo source from https://gerrit.googlesource.com/git-repo
remote: Finding sources: 100% (32/32)
remote: Total 32 (delta 14), reused 32 (delta 14)
Unpacking objects: 100% (32/32), done.
File "/mnt/home /cmf/.repo/repo/main.py", line 79
file=sys.stderr)
^
SyntaxError: invalid syntax

If you're on an older system that doesn't support Python 3.6 or later, you have two options:

  • Download an older version of the Repo Launcher that is compatible with Python 2.7.
  • Upgrade your Python version to 3.6 or newer.

# create a bin directory
mkdir ~/bin
export PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo-1 > ~/bin/repo
chmod a+x ~/bin/repo


RDK-B

 What 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 more details refer- Enabling valgrind tool for memory leak.


Is there igmp_snooper program in RDK-B?

Yes, igmp_snooper program is present 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 .


What are the possible solutions available to manage RDK-B Data Model?

The RDK-B Data Model can be managed through several protocols and interfaces, including:

  • TR-181: An extension of TR-069 that provides additional data modeling capabilities, particularly for managing broadband devices.
  • SNMP: A network management protocol used to monitor and control network devices.
  • WebUI: A graphical web interface that allows users to manage the data model through a user-friendly dashboard.
  • WebPA: A web-based API that enables programmatic access to the data model, allowing for operations like fetching and setting parameters.
  • TR-369/USP: A protocol that provides a unified data model and enhances device management capabilities, allowing for more efficient communication and control.


What is the Minimum RDK-B Hardware Requirement and Supported Functionalities?

A Raspberry Pi 4 with the below configuration can be an ideal minimum requirement to support most of the functionalities for RDK-B.

  • CPU: Quad-core Arm Cortex-A72 CPU, up to 1.5 GHz
  • RAM: Minimum 2 GB
  • Flash Memory: Minimum size of 285 MB

This configuration will enable you to run the essential functionalities of RDK-B effectively.


Can we modify wifi configuration of router through command line such as modifying ssid name, ssid password, wifi security protocol etc in RDK?
Yes, you can modify the Wi-Fi configuration of a router in RDK, including changing the SSID name, password, and security protocol. There are two main methods to achieve this:

  • The dcmcli command-line utility allows you to directly change these settings, enabling you to manage your Wi-Fi configuration efficiently.
  • A WebUI, where you can modify these items just like the UI for most normal routers.


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

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


What is the procedure to add new parameter to the existing object?

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


How to handle parameter value change in CcspTr069Pa?

  • The code entrance to handle parameter value change in CcspTr069Pa is CcspCwmppoProcessPvcSignal() in ccsp_cwmp_proco_event.c.
  • Not all parameters changed would notify CcspTr069Pa. Only the parameters registered for a value change callback will be notified, such as ManagementServerURL.
  • If you add new parameters in the data model and want CcspTr069Pa to receive value-change notifications, you need to set the TR-181 parameter notification using SetParamAttribute.
  • If you add a new application that wants to receive notifications for some specific parameters, it needs to register for the "parameterValueChangeSignal" D-Bus callback, similar to how ccspWifiAgent is implemented in cosa_wifi_apis.c.



RDK-V

Does RDK have support for Fast Channel Change?

Yes, please refer this link: Session Manager.


Is there any example for gstreamer to enc/dec media file?

This is a sample pipeline to play dtcp encrypted content using gst-launch.

gst-launch-1.0 httpsrc location=”http://127.0.0.1:8080/hnStreamStart?live=ocap://0x2c23&continueTSB=true” blocksize=131072 ! dtcpdec dtcp-src-ip=”127.0.0.1″ dtcp-port=5000 buffersize=131072 ! playersinkbin is-live=true.


How can we manage and configure video output settings on an RDK device?

RDK Device Settings is the component which handles the following configurations:

  • Audio Output Ports (Volume, Mute, etc.)
  • Video Ouptut Ports (Resolutions, Aspect Ratio, etc.)
  • Front Panel Indicators
  • Zoom Settings
  • Display (Aspect Ratio, EDID data, etc.)
  • General Host Configuration (power management, event management etc.)

These properties persisted in the STB and are read/applied on each boot-up.

For example: The device setting properties persisted in ‘/opt/persistent/ds/hostData’.

There are few sample applications available to test/force the settings e.g. setResolution can be used to force the resolution settings.



RDK-Cloud

How to Use WebPA for Interacting with the RDK-B Data Model?

WebPA is a web service running on RDK-B devices that allows you to manage and interact with the RDK-B data model. Parodus is the client-end service running on the RDK-B CPE devices that connects to the webPA service during device boot-up and facilitates request-response interactions between the webPA server & CPE device services. Parodus functionalities-

Websocket client: Nopoll library used as Websocket Client.  It allows building pure WebSocket solutions or to provide WebSocket support to existing TCP oriented applications. Nopoll handles all the messages coming from or to the server asynchronously.
Nanomsg Server: Parodus acts as Nanomsg server to distribute messages upstream and downstream.

Steps to use WebPA:

Edit parodus startup script for enabling the CPE device to use local webPA server.

ServerURL:  Set to IP Address and Port of talaria service.

--force-ipv4: Force use of IPv4 for communication.

vi /lib/rdk/parodus_start.sh

ServerURL=http://<webpa-ip>:8080
   command="/usr/bin/parodus --hw-model=$ModelName --hw-serial-number=$SerialNumber --hw-manufacturer=$Manufacturer --hw-last-reboot-reason=$LastRebootReason --fw-name=$FirmwareName --boot-time=$BootTime --hw-mac=$HW_MAC --webpa-ping-time=180 --webpa-interface-used=erouter0 --webpa-url=$ServerURL --webpa-backoff-max=$BackOffMax  --parodus-local-url=$PARODUS_URL --partner-id= --ssl-cert-path=$SSL_CERT_PATH --force-ipv4 "

Start the service after changes are done:

#  rm –rf /tmp/parodusCmd.cmd
# systemctl restart parodus


How to Set a Parameter on an RDK Device Using WebPA? For Example, Changing the SSID?

To change a parameter, such as the SSID, on an RDK device using WebPA, follow these steps:

  • Setting the SSID password:
curl -X PATCH http://<IP>:9003/api/v2/device/mac:<MAC>/config -d '{"parameters": [ {"dataType": 0, "name": "<TR181_PARAM>", "value": "<Value-to-Set>"}]}' -H 'Authorization:Basic <TOKEN>'
  • Getting the SSID for the board.
curl -H ''Authorization:Basic <TOKEN>' -i http://<WEBPA-URL>/api/v2/device/mac:<DEVICE_MAC>/config?names=<PARAMETER>

Example:

Set:
curl -X PATCH http://webpa.rdkcentral.com/api/v2/device/mac:<MAC>/config -d '{"parameters": [ {"dataType": 3, "name": "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XDial.Enable", "value": "0"}]}' -H 'Authorization:Basic d3B1c2VyOndlYnBhQDEyMzQ1Njc4OTAK'{"parameters":[{"name":"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XDial.Enable","message":"Success"}],"statusCode":200}

Get:
curl -H 'Authorization:Basic d3B1c2VyOndlYnBhQDEyMzQ1Njc4OTAK' -i 'http://webpa.rdkcentral.com/api/v2/device/mac:<MAC>/config?names=Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.XDial.Enable'


Is it possible to configure TFTP location for Firmware Upgrade in Xconf?

Yes, it is possible to configure TFTP in Xconf. Follow the steps specified here Xconf Server-User guide for configuration and feature validation-AddTFTPlocation.


Is it possible to override the firmware download location set from the 'Download location filter' page?

Yes, if anyone needs to override the firmware download location, it’s best to do it with a define property rule. It will only affect those devices identified in the rule.
Just like tftp location is overridden like this- Xconf Server-User guide for configuration and feature validation-AddTFTPlocation



RDK-Generic

How do I download old versions of rdkv-xxxxqx?

Use below command format:
repo init -u https://code.rdkcentral.com/r/manifest -m <manifest.xml> -b <platform>-<release tag> 

Example:

RDK-B: repo init -u https://code.rdkcentral.com/r/manifest -m rdkb.xml -b rdkb-2024q3-kirkstone
RDK-V: repo init -u https://code.rdkcentral.com/r/manifest -m rdkv.xml -b rdkv-2023q4-dunfell

If you want to download image follow Build Guide.

You can find more information about available releases on the RDK Releases.
Note:  We only support the current release and the two previous releases.
For RDK-B, the release cycle is quarterly, while for RDKV, it is annual. (The quarterly release name can be given with -b option).


Is it possible to just download the pre-built images that can be loaded onto an SD card without having to build it?

Yes, it is possible to download pre-built images that can be directly loaded onto an SD card without the need for building it from source. You can find these pre-built images from the following link:
RDK-B Pre-Built Images, RDK-V Pre-Built Images.


How to enable debug logs for a component?

Below are the two ways to enable debug logs for components.

  • adding prints in the respective place of code
  • 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).

At run time use the below command to change log levels.
Example:

rdklogctrl <app_name> <module_name> <loglevel>
rdklogctrl CcspWifiSsp LOG.RDK.WIFI FATAL,ERROR,WARN,NOTICE,INFO,DEBUG,TRACE1-TRACE9



 With regards to crashupload, is there a feature to prevent the deletion of the corefiles from the box, which is useful during development and integration?

There isn't a feature or built-in flag in the crashupload script to prevent the deletion of core files. However, you can make a local modification to the script to avoid deleting older files after the log upload is completed. Specifically, you can comment out certain lines in the uploadDumps.sh script, which will prevent the deletion of core files from the device.

You can modify the script to avoid the deletion of older files:
https://code.rdkcentral.com/r/plugins/gitiles/rdk/components/generic/crashupload/+/refs/heads/rdk-next/uploadDumps.sh#321


 What are the steps to analyze a minidump file after a crash?

Please refer Breakpad steps to analyze minidump file generated by Breakpad.


 How will backward compatibility be ensured with new releases of the RDK?

Backward compatibility will be maintained with previous RDK versions according to the guidelines outlined in the agreement. Additional details can be found in the release notes on the RDK Wiki as they become available. Please note that after the release of a few new versions, older versions may be deprecated.


How to configure Kernel?

  • Create a configuration file (e.g., http_netfilter.cfg) with the desired kernel customizations in a directory like meta-rdk-ext/recipes-kernel/linux/files/.
  • Include this configuration file in the appropriate kernel recipe (e.g. meta-rdk-ext/recipes-kernel/linux/stblinux%.bbappend).
  • Use the menuconfig commands to interactively configure the kernel from a devshell, which can be accessed by running bitbake <kernel-recipe> -c devshell.
  • This is a common way to customize the kernel configuration in a Yocto/OpenEmbedded-based build system. By creating a separate configuration file and including it in the appropriate recipe, the customizations can be easily managed and applied during the kernel build process.


Is there a consolidated logging system like SYSLOG available?

Yes, all logs are maintained in persistent path (opt/logs), though the path may change depending on the platform configuration. Log rotation is available if size goes beyond. Log servers are in place. More details on how logging is done in RDK can be found here: Log Upload


How can I obtain the minidump files for a box reboot?

For a systemd-based box, the minidump files will be located in the following directory:  /opt/minidump/.
Additionally, for system logs, you can browse through following files in /opt/logs:
core_log.txt, rebootInfo.log etc.
Previous boot logs can also be found in: /opt/logs/PreviousLogs/
These locations will help you gather the necessary minidump and log information following a reboot.




  • No labels