Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Children Display

Table of Contents

Host Setup

The OpenEmbedded build system should be able to run on Ubuntu 18.04 distribution/other compatible linux distribution with the following versions for Git, tar, and Python.

...

Code Block
languagebash
themeRDark
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
  build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
  xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \
  pylint3 xterm bmap-tools


$ sudo apt-get install git cmake autoconf texinfo openjdk-8-jdk openjdk-8-jre \
  m4 libtool libtool-bin curl pkg-config lib32z1 doxygen

Repo Setup

In order to use Yocto build system, the repo tool must be properly installed on the machine.

...

Code Block
languagebash
themeRDark
title.netrc
machine code.rdkcentral.com login YOUR_USERNAME password YOUR_PASSWORD

Yocto Build Steps

To build, follow below instructions

Code Block
languagebash
themeMidnight
titleBuild Steps
$ mkdir <workspace dir>
$ cd <workspace dir>
$ repo init -u https://code.rdkcentral.com/r/reference/manifests -b dunfell -m rdkb-extsrc.xml -b dunfell
$ repo sync -j`nproc` --no-clone-bundle

Code Block
languagebash
themeDJango
titlepam crash on 64bit aarch
collapsetrue
$ cd ~/rdkb/components/opensource/ccsp/CcspPandM
$ git fetch https://code.rdkcentral.com/r/rdkb/components/opensource/ccsp/CcspPandM refs/changes/04/62804/3 && git cherry-pick FETCH_HEAD

Note : The above bug fixes changes are temporary given as instructions. This is not required once the change is gets merged into the appropriate repo.

Code Block
languagebash
themeDJango
titleImage Generation Steps
$ MACHINE=raspberrypi4-64-rdk-broadband.conf source meta-cmf-raspberrypi/setup-environment 
$ bitbake rdk-generic-broadband-image

Flashing Procedure

Following command can be used to flash the RPI image to sd card using linux machine . bmap tool should be available in linux

Code Block
themeMidnight
titleFlash command
bzip2 -d <path to ImageName.wic.bz2>
sudo -E bmaptool copy --nobmap <path to ImageName.wic> <path to SD card space>

Example:

$ bzip2 -d rdk-generic-broadband-image-raspberrypi4-raspberrypi64-rdk-broadband.wic.bz2
$ sudo -E bmaptool copy --nobmap rdk-generic-broadband-image-raspberrypi4-raspberrypi64-rdk-broadband.wic /dev/sdb

Errors and Challenges


S.No

     

 Recipe

             

Layer

       

 Error/Warning

                                                                                                     

                                                                   

 Root  Cause

                                         

Action

Validated Functionalities

 Error/Warning

             Action taken
1ccsp-common-librarymeta-cmf-raspberrypi../../../../../../../../../../../../rdkb/components/opensource/ccsp/CcspCommonLibrary/source/cosa/utilities/AnscObjectArray/AnscUIntArray/ansc_uint_array_co_process.c: In function 'AnscUIntArrayGetAt':
../../../../../../../../../../../../rdkb/components/opensource/ccsp/CcspCommonLibrary/source/cosa/utilities/AnscObjectArray/AnscUIntArray/ansc_uint_array_co_process.c:278:16: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
  278 |         return (ANSC_OBJECT_ARRAY_DATA)pStorage[ulIndex];
                    ^
../../../../../../../../../../../../rdkb/components/opensource/ccsp/CcspCommonLibrary/source/cosa/utilities/AnscObjectArray/AnscUIntArray/ansc_uint_array_co_process.c: In function 'AnscUIntArraySetAt':
../../../../../../../../../../../../rdkb/components/opensource/ccsp/CcspCommonLibrary/source/cosa/utilities/AnscObjectArray/AnscUIntArray/ansc_uint_array_co_process.c:334:31: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
  334 |         pStorage[ulIndex]   = (UINT)Data;
                          ^
../../../../../../../../../../../../rdkb/components/opensource/ccsp/CcspCommonLibrary/source/cosa/utilities/AnscObjectArray/AnscUIntArray/ansc_uint_array_co_process.c: In function 'AnscUIntArrayInsertAt':
../../../../../../../../../../../../rdkb/components/opensource/ccsp/CcspCommonLibrary/source/cosa/utilities/AnscObjectArray/AnscUIntArray/ansc_uint_array_co_process.c:415:39: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
  415 |             pStorage[i + ulIndex]   = (UINT)Data;
                              ^
../../../../../../../../../../../../rdkb/components/opensource/ccsp/CcspCommonLibrary/source/cosa/utilities/AnscObjectArray/AnscUIntArray/ansc_uint_array_co_process.c: In function 'AnscUIntArrayAdd':
../../../../../../../../../../../../rdkb/components/opensource/ccsp/CcspCommonLibrary/source/cosa/utilities/AnscObjectArray/AnscUIntArray/ansc_uint_array_co_process.c:530:52: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
  530 |             pStorage[pUIntArray->ulItemCount ++] = (UINT)Data;
                                                ^
../../../../../../../../../../../../rdkb/components/opensource/ccsp/CcspCommonLibrary/source/cosa/utilities/AnscObjectArray/AnscUIntArray/ansc_uint_array_co_process.c: In function 'AnscUIntArrayFind':
../../../../../../../../../../../../rdkb/components/opensource/ccsp/CcspCommonLibrary/source/cosa/utilities/AnscObjectArray/AnscUIntArray/ansc_uint_array_co_process.c:663:51: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
  663 |     UINT                            uSample     = (UINT)Data;
Using CFLAGS_remove += " -Werror" to fix these errors temporary.
2zilker-sdkmeta-cmf-broadband /tmp/ccBNkS8g.o(.text+0x960): unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `stderr@@GLIBC_2.17'
| /home/kpandu549/keerthana/sep14/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccronexpr/git-r0/recipe-sysroot-native/usr/bin/aarch64-rdk-linux/../../libexec/aarch64-rdk-linux/gcc/aarch64-rdk-linux/9.3.0/ld: final link failed: bad value
| collect2: error: ld returned 1 exit status
| Makefile:26: recipe for target 'library' failed
| make: *** [library] Error 1
| make: Leaving directory '/home/kpandu549/keerthana/sep14/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccronexpr/git-r0/git'
| WARNING: exit code 1 from a shell command.

CFLAGS_append_aarch64 = " -fPIC"  used in ccronexpr recipe
3webconfig-frameworkmeta-cmf-raspberrypi

error: format '%u' expects argument of type 'unsigned int', but argument 7 has type 'size_t' {aka 'long unsigned int'} [-Werror=format=]

cc1: all warnings being treated as errors

Using CFLAGS_remove += " -Werror" to fix these errors temporary.
4telemetrymeta-cmf-raspberrypierror: format '%d' expects argument of type 'int', but argument 3 has type 'size_t' {aka 'long unsigned int'} [-Werror=format=]
|   142 |     T2Debug("TR-181 Param count : %d\n", paramList->count);
|       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~
|       |

No

Feature

Supported

1LAN Connected Devices-Ethernet(tick)2WAN Connected Devices-Wi-Fi(tick)3Parental Control(tick)4Firewall settings(tick)5Advanced Config: Port Triggering(error)6Advanced Config: Port Forwarding(tick)7Advanced Config: Remote Management(tick)8Advanced Config: DMZ(tick)9Xfinity Wi-Fi 2.4/5 GHz – Public Hotspot(tick)10Test and Diagnostics(tick)11Local WebUI Configuration(tick)12Factory Reset(tick)13DHCP /Reserved IP(tick)14EthWan(tick)15Eth Agent(tick)162.4 GHz Band Support(tick)175 GHz Band Support(tick)18Bridge Mode Support(tick)19Persistent Storage Management(tick)20WebPA for Comcast,community(tick)21Lost and Found(error)22Bluetooth(error)22Harvester Support(error)23TR-69(error)24SNMP(tick)27Boot time data measurement(error)28Wireless Protection Setup(WPS)(tick)29Captive Portal(tick)30Wi-Fi MAC Filtering(error)31Log Rotation Support(tick)32Firmware Upgrade Support(tick)33Multiboot Support(tick)34Telemetry Support(tick)35IPV6(error)     36

Log level control through CcspLogAgent

                    (tick)      37

Band Steering using RSSI

 
                 
(tick)  
     
38

Backup and Restore

                   
(error)
     
39
|

SelfHeal

|       |              
(tick)
 
     
 40Password-Reset
                   
(tick)
 
     
 41WebUI JST 
size_t {aka long unsigned int}
| ../../../../../../../../../rdk/components/generic/telemetry/source/utils/t2log_wrapper.h:36:61: note: in definition of macro 'T2Debug'
|    36 | #define T2Debug(...)                  
 (tick) 
T2Log(RDK_LOG_DEBUG, __VA_ARGS__)
         
42Telemetry 2
                 
(tick)
 
     
43RdkWanManager
                 
(tick)       44RdkFwUpgradeManager                  (tick) 
   ^~~~~~~~~~~
| ../../../../../../../../../rdk/components/generic/telemetry/source/ccspinterface/rbusInterface.c:142:36: note: format string is defined here
|   142 |     T2Debug("TR-181 Param count : %d\n", paramList->count);
cc1: all warnings being treated as errors
Using CFLAGS_remove += " -Werror" to fix these errors temporary.
5jstmeta-cmf-raspberrypi| ~/ld: CMakeFiles/jst.dir/source/jst_cosa.c.o: undefined reference to symbol 'dbus_connection_send@@LIBDBUS_1_3'
| ~/recipe-sysroot/usr/lib/libdbus-1.so: error adding symbols: DSO missing from command line
| collect2: error: ld returned 1 exit status
| ninja: build stopped: subcommand failed.
| WARNING: exit code 1 from a shell command.
Using CFLAGS_remove += " -Werror" to fix these errors temporary.
6ccsp-lm-litemeta-cmf-raspberrypi

 error: format '%d' expects argument of type 'int', but argument 4 has type 'size_t' {aka 'long unsigned int'} [-Werror=format=]

   147 |         CcspLMLiteConsoleTrace(("RDK_LOG_DEBUG, wrp_msg->u.event.payload_size :%d\n",wrp_msg→u.event.paylo

cc1: all warnings being treated as errors

Using CFLAGS_remove += " -Werror" to fix these errors temporary.
7ccsp-miscmeta-cmf-raspberrypi

error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

cc1: all warnings being treated as errors

Using CFLAGS_remove += " -Werror" to fix these errors temporary.
8ccsp-miscmeta-cmf-raspberrypi/usr/lib/libhal_platform.so: undefined reference to `Utopia_SetEvent'
collect2: error: ld returned 1 exit status
 Makefile:403: recipe for target 'LTime' failed
 make[3]: *** [LTime] ErrorA 1
Added LDFLAGS_append_aarch64 = " -lutctx" in misc recipe
9ccsp-hotspotmeta-cmf-raspberrypierror: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
cc1: all warnings being treated as errors
Using CFLAGS_remove += " -Werror" to fix these errors temporary.
10rdk-vlanmanagermeta-cmf-raspberrypi/usr/lib/libhal_platform.so: undefined reference to `Utopia_RawGet'
/usr/lib/libhal_platform.so: undefined reference to `Utopia_SetEvent'
/usr/lib/libhal_platform.so: undefined reference to `Utopia_Free'
/usr/lib/libhal_platform.so: undefined reference to `Utopia_Init'
/usr/lib/libhal_platform.so: undefined reference to `Utopia_RawSet'
Added LDFLAGS_aarch64 += " -lutctx -lprivilege "  in recipe
11ccsp-dmclimeta-cmf-raspberrypi error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
cc1: all warnings being treated as errors
Using CFLAGS_remove += " -Werror" to fix these errors temporary.
12harvestermeta-cmf-raspberrypi

error: format '%lld' expects argument of type 'long long int', but argument 4 has type 'int64_t' {aka 'long int'} [-Werror=format=]

error: format '%d' expects argument of type 'int', but argument 4 has type 'size_t' {aka 'long unsigned int'} [-Werror=format=]

/harvester_radio_traffic_avropack.c:512:34: error: format '%lld' expects argument of type 'long long int', but argument 4 has type 'int64_t' {aka 'long int'} [-Werror=format=]

cc1: all warnings being treated as errors

Using CFLAGS_remove += " -Werror" to fix these errors temporary.
13ccsp-xdnsmeta-cmf-raspberrypi

cosa_xdns_apis.c:393:35: error: format '%d' expects argument of type 'int', but argument 5 has type 'ssize_t' {aka 'long int'} [-Werror=format=]

cosa_xdns_webconfig_api.c:693:51: error: format '%d' expects argument of type 'int', but argument 3 has type 'size_t' {aka 'long unsigned int'} [-Werror=format=]
 693 |  fprintf(stderr, "xd->table_param->entries_count %d\n", xd->table_param->entries_count);

cc1: all warnings being treated as errors

Using CFLAGS_remove += " -Werror" to fix these errors temporary.
14ccsp-tr069-pameta-cmf-raspberrypi/ccsp_cwmp_tcpcrho_auth.c:1993:13: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
ssp_debug.c:993:21: error: conversion from 'long unsigned int' to 'unsigned int' changes value from '18446744073709551615' to '4294967295' [-Werror=overflow]
ccsp_management_server.c:885:37: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
cc1: all warnings being treated as errors
Using CFLAGS_remove += " -Werror" to fix these errors temporary.
15rdk-vlanmanagermeta-cmf-raspberrypiundefined reference to `drop_root_caps'
undefined reference to `read_capablitiy'
undefined reference to `update_process_caps'
Added LDFLAGS_aarch64 += " -lutctx -lprivilege "  in recipe
16ccsp-snmp-pameta-cmf-raspberrypi

cosa_api.c:360:12: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]

cc1: all warnings being treated as errors

Using CFLAGS_remove += " -Werror" to fix these errors temporary
17zilker-sdkmeta-cmf-broadbandWARNING: zilker-sdk-git-r0 do_populate_sysroot: File '/usr/lib/libccronexpr.so.0' from zilker-sdk was already stripped, this will prevent future debugging!
WARNING: zilker-sdk-git-r0 do_populate_sysroot: File '/usr/lib/libccronexpr.so.0.0.0' from zilker-sdk was already stripped, this will prevent future debugging!
WARNING: zilker-sdk-git-r0 do_populate_sysroot: File '/usr/lib/libccronexpr.so' from zilker-sdk was already stripped, this will prevent future debugging!
WARNING: zilker-sdk-git-r0 do_package: QA Issue: File '/usr/lib/libccronexpr.so' from zilker-sdk was already stripped, this will prevent future debugging! [already-stripped]
WARNING: zilker-sdk-git-r0 do_package: QA Issue: File '/usr/lib/libccronexpr.so.0' from zilker-sdk was already stripped, this will prevent future debugging! [already-stripped]
WARNING: zilker-sdk-git-r0 do_package: QA Issue: File '/usr/lib/libccronexpr.so.0.0.0' from zilker-sdk was already stripped, this will prevent future debugging! [already-stripped]
Added INSANE_SKIP_${PN} = "ldflags already-stripped" in zilker-sdk recipe
18zilker-sdkmeta-cmf-broadbandFile /usr/lib/libccronexpr.so.0.0.0 in package zilker-sdk doesn't have GNU_HASH (didn't pass LDFLAGS?)
File /usr/lib/libccronexpr.so.0 in package zilker-sdk doesn't have GNU_HASH (didn't pass LDFLAGS?) [ldflags]
Added INSANE_SKIP_${PN} = "ldflags" in ccronexpr recipe
19utopiameta-cmf-raspberrypiCR crashing is happening on 64bit aarch when dbus enabled Enabled rbus support
20pamCcspPandMccsp-p-and-m is crashing on 64bit aarch when rbus is enablingpam is passing wrong dm parameter to ethagent due to that pam crash is happened.

Sanity Testing

  1.  Sanity test cases are validated on 64bit aarch in RPI4. It includes,
    1.  All ccsp components are running on board
    2.  All ccsp components DM parameters are able to access properly
    3.  Able to connect the wireless clients
    4.  Able to access the WebUI via RM
    5.  Able to access the WebUI in connected clients using gateway ip
    6.  Internet is working on board
    7.  WAN connection is working on connected clients
    8.   iptables are loaded properly
    9.  Able to tab all the pages in WebUI without any crash
    10.  Able to get all the interfaces
    11.  Able to get the erouter0 IP address
    12.  Able to take ssh access via erouter0 IP Address
    13.  All ccsp component log files are generated under the /rdklogs/logs folder
    14.  Enabled rbus - all ccsp components are communicated via rbus
    15. udhcpc,dnsmasq,lighttpd process are running
    16. captiveportal page is loaded properly on wireless clients for initial connect

Known Issues

  1.  E2E validation is not performed yet on 64bit aarch in RPI4 
  2.  sometimes , rpi board is rebooting without giving reboot command
  3.  Observing CR crash when we enabled the dbus only 
  4.  None of the ccsp components are not started due to CR crash(if dbus only enabled)