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.

  • Git 1.8.3.1 or greater
  • tar 1.27 or greater
  • Python 3.4.0 or greater
  • Coreutils(E.g realpath)

Note: You should also have about 50 Gbytes of free disk space for building images.

The essential packages you need for a supported Ubuntu or Debian distribution are shown in the following command:

$ 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.

To install Repo make sure you have a /bin directory in your home directory and that it is included in your path

Repo Setup Steps
$ mkdir ~/bin
$ PATH=~/bin:$PATH
Download the repo tool and ensure that it is executable
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

Note: it is also recommended to put credentials in ~/.netrc when interacting with repo.

A sample ~/.netrc file is illustrated below

.netrc
machine code.rdkcentral.com login YOUR_USERNAME password YOUR_PASSWORD

Yocto Build Steps

To build, follow below instructions

Build Steps
$ mkdir <workspace dir>
$ cd <workspace dir>
$ repo init -u https://code.rdkcentral.com/r/manifests -b dunfell -m rdkb-extsrc.xml
$ repo sync -j`nproc` --no-clone-bundle
$ MACHINE=raspberrypi4-64-rdk-broadband 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

Flash 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-64-rdk-broadband.wic.bz2
$ sudo -E bmaptool copy --nobmap rdk-generic-broadband-image-raspberrypi4-64-rdk-broadband.wic /dev/sdb

Validated Functionalities


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(error)
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(error)
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                      (tick) 
      42Telemetry 2                     (tick) 
      43RdkWanManager                     (tick) 
      44RdkFwUpgradeManager                     (tick) 

OEM Side Changes Required

Global CFLAGS

NOTE: This can be added in ccsp_common inc files. So, will be available for all ccsp components.

CFLAGS_append_aarch64 = " -D_64BIT_ARCH_SUPPORT_ "

For DBUS Enabling support

            By default, rbus is enabled in rpi4 64b build. For dbus enabling in rpi4 64b build, please follow the below steps,

Delete the below lines from below file's,

File path : ~/meta-cmf-raspberrypi/meta-rdk-broadband/recipes-ccsp/util/utopia.bbappend
touch \/nvram\/rbus_support ' ${D}${sysconfdir}/utopia/utopia_init.sh

File path : ~/meta-cmf-raspberrypi/recipes-core/dbus/dbus_%.bbappend
do_install_append_aarch64_broadband ()
{
# Removing dbus service in 64bit arch alone
rm ${D}${systemd_system_unitdir}/dbus.service
}

System Testing


E2E Validation Test Results

System Test Plan and Report - Broadband - 2021 - M10

System Test Plan and Report - RDK Broadband - 2022 - M1

Performance comparison metrics between RPi4 64 bit Vs 32 bit

  • No labels

8 Comments

  1. I followed the build instructions to build raspberrypi4-64-rdk-broadband model

    $ mkdir <workspace dir>
    $ cd <workspace dir>
    $ repo init -u https://code.rdkcentral.com/r/manifests -b dunfell -m rdkb-extsrc.xml
    $ repo sync -j`nproc` --no-clone-bundle
    $ MACHINE=raspberrypi4-64-rdk-broadband source meta-cmf-raspberrypi/setup-environment
    $ bitbake rdk-generic-broadband-image

    But got failed with bitbake rdk-generic-broadband-image

    ### Error log

     -- Processing /build/vic/rdkb-0401/components/opensource/zilker-sdk/source/libs/cslt/src/sheens/js/timeFunctions.js -> /build/vic/rdkb-0401/components/opensource/zilker-sdk/source/libs/cslt/src/sheens/js/timeFunctions.js.h
    | -- Adding unit test testxhCslt
    | -- Adding xhBackupRestoreService
    | -- Adding xhCommService
    | -- Adding unit test testMessageQueue
    | -- Adding xhDeviceService
    | -- Adding unit test testZigbeeSubsystem
    | -- Adding unit test testJsonDatabase
    | -- Adding xhAutomationService
    | -- Adding unit test testAutomationService
    | -- Adding xhPropsService
    | -- Adding unit test testPropertyTypesDefinition
    | -- Adding xhWatchdogService
    | fatal: not a git repository (or any of the parent directories): .git
    | -- Configuring done
    | CMake Error at buildTools/cmake/modules/AddZilkerAPI.cmake:52 (add_library):
    |   No SOURCES given to target: xhBackupRestoreServiceAPI
    | Call Stack (most recent call first):
    |   source/services/backupRestore/api/c/CMakeLists.txt:26 (add_zilker_api)
    |
    |
    | CMake Error at buildTools/cmake/modules/AddZilkerAPI.cmake:52 (add_library):
    |   No SOURCES given to target: xhCommServiceAPI
    | Call Stack (most recent call first):
    |   source/services/comm/api/c/CMakeLists.txt:26 (add_zilker_api)
    |
    |
    | CMake Error at buildTools/cmake/modules/AddZilkerAPI.cmake:52 (add_library):
    |   No SOURCES given to target: xhAutomationServiceAPI
    | Call Stack (most recent call first):
    |   source/services/automation/api/c/CMakeLists.txt:26 (add_zilker_api)
    |
    |
    | CMake Generate step failed.  Build files cannot be regenerated correctly.
    | WARNING: /build/vic/rdkb-0401/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/zilker-sdk/git-r0/temp/run.do_configure.15289:1 exit 1 from 'cmake -G 'Ninja' -DCMAKE_MAKE_PROGRAM=ninja $oecmake_sitefile /build/vic/rdkb-0401/meta-cmf/../components/opensource/zilker-sdk -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_INSTALL_BINDIR:PATH=bin -DCMAKE_INSTALL_SBINDIR:PATH=sbin -DCMAKE_INSTALL_LIBEXECDIR:PATH=libexec -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=../com -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=/var -DCMAKE_INSTALL_LIBDIR:PATH=lib -DCMAKE_INSTALL_INCLUDEDIR:PATH=include -DCMAKE_INSTALL_DATAROOTDIR:PATH=share -DPYTHON_EXECUTABLE:PATH=/build/vic/rdkb-0401/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/zilker-sdk/git-r0/recipe-sysroot-native/usr/bin/python-native/python -DPython_EXECUTABLE:PATH=/build/vic/rdkb-0401/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/zilker-sdk/git-r0/recipe-sysroot-native/usr/bin/python-native/python -DPython3_EXECUTABLE:PATH=/build/vic/rdkb-0401/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/zilker-sdk/git-r0/recipe-sysroot-native/usr/bin/python-native/python -DLIB_SUFFIX= -DCMAKE_INSTALL_SO_NO_EXE=0 -DCMAKE_TOOLCHAIN_FILE=/build/vic/rdkb-0401/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/zilker-sdk/git-r0/toolchain.cmake -DCMAKE_NO_SYSTEM_FROM_IMPORTED=1 -DOE_SYSROOT:STRING=/build/vic/rdkb-0401/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/zilker-sdk/git-r0/recipe-sysroot -Wno-dev'
    | ERROR: Execution of '/build/vic/rdkb-0401/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/zilker-sdk/git-r0/temp/run.do_configure.15289' failed with exit code 1
    ERROR: Task (/build/vic/rdkb-0401/meta-cmf-broadband/recipes-iot/zilker-sdk/zilker-sdk_git.bb:do_configure) failed with exit code '1'
    NOTE: test-and-diagnostic: compiling from external source tree /build/vic/rdkb-0401/meta-cmf/../rdkb/components/opensource/ccsp/TestAndDiagnostic
    NOTE: start-parodus: compiling from external source tree /build/vic/rdkb-0401/meta-cmf/../rdkb/components/generic/startParodus
    NOTE: ccsp-p-and-m: compiling from external source tree /build/vic/rdkb-0401/meta-cmf/../rdkb/components/opensource/ccsp/CcspPandM
    NOTE: rdkgponmanager: compiling from external source tree /build/vic/rdkb-0401/meta-cmf/../rdkb/components/opensource/ccsp/RdkGponManager
    NOTE: ccsp-mta-agent: compiling from external source tree /build/vic/rdkb-0401/meta-cmf/../rdkb/components/opensource/ccsp/CcspMtaAgent
    NOTE: Tasks Summary: Attempted 4698 tasks of which 4188 didn't need to be rerun and 1 failed.
    NOTE: Writing buildhistory
    NOTE: Writing buildhistory took: 6 seconds
    
    Summary: 1 task failed:
      /build/vic/rdkb-0401/meta-cmf-broadband/recipes-iot/zilker-sdk/zilker-sdk_git.bb:do_configure
    Summary: There were 193 WARNING messages shown.
    Summary: There was 1 ERROR message shown, returning a non-zero exit code.

    With error 'xhBackupRestoreServiceAPI', I also referred below link:

    Zilker-SDK Yocto integration for RDKB RPI

    It said 'Need to export the gradle and java bin path via recipe or ipcGenerator script'.

    My java path is in /usr/bin/

    and gradle path is in /opt/gradle/gradle-6.5.1/bin/gradle

    (check cmd: whereis gradle)

    rdadm@245163:/build/vic/rdkb-0401/build-raspberrypi4-64-rdk-broadband$ whereis gradle
    gradle: /opt/gradle/gradle-6.5.1/bin/gradle.bat /opt/gradle/gradle-6.5.1/bin/gradle

    And I added path with meta-cmf-broadband/recipes-iot/zilker-sdk/zilker-sdk_git.bb:


    do_configure_prepend () {
        cd ${S}
        #cleaning the previous build of gradle
        export PATH=$PATH:/usr/bin
    +    export PATH=$PATH:/opt/gradle/gradle-6.5.1/bin
        gradle clean


    But got same error with 'No SOURCES given to target: xhBackupRestoreServiceAPI'.

    Is there any other PATH setting needed?


  2. Tried to build the 64 bit image, got a error with ccsp-wifi-agent.  Below is a subset of the error message. 

    /data/projects/RDKB/rpi4/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccsp-wifi-agent/1.99+git999-r0/recipe-sysroot/usr/include/ccsp/linux/user_string.h: In function 'UserEqualString2':

    /data/projects/RDKB/rpi4/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccsp-wifi-agent/1.99+git999-r0/recipe-sysroot/usr/include/ccsp/linux/user_string.h:119:34: error: 'strncasecmp' argument 3 type is 'unsigned int' where 'long unsigned int' is expected in a call to built-in function declared without prototype [-Werror=builtin-declaration-mismatch]

      119 |     return (strncasecmp (s1, s2, (unsigned int)len) == 0) ? TRUE : FALSE;

          |                                  ^~~~~~~~~~~~~~~~~

    <built-in>: note: built-in 'strncasecmp' declared here

    ../../../../../../../../../../rdkb/components/opensource/ccsp/CcspWifiAgent/source/TR-181/sbapi/wifi_monitor.c: In function 'upload_client_debug_stats_sta_fa_info':

    ../../../../../../../../../../rdkb/components/opensource/ccsp/CcspWifiAgent/source/TR-181/sbapi/wifi_monitor.c:1977:14: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]

     1977 |         fp = (FILE *)v_secure_popen("r", "dmesg | grep FA_INFO_%s | tail -1", to_sta_key(sta->sta_mac, sta_key));

          |              ^

    ../../../../../../../../../../rdkb/components/opensource/ccsp/CcspWifiAgent/source/TR-181/sbapi/wifi_monitor.c: In function 'upload_client_debug_stats_sta_fa_lmac_data_stats':

    ../../../../../../../../../../rdkb/components/opensource/ccsp/CcspWifiAgent/source/TR-181/sbapi/wifi_monitor.c:2052:14: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]

     2052 |         fp = (FILE *)v_secure_popen("r", "dmesg | grep FA_LMAC_DATA_STATS_%s | tail -1", to_sta_key(sta->sta_mac, sta_key));

          |              ^

    ../../../../../../../../../../rdkb/components/opensource/ccsp/CcspWifiAgent/source/TR-181/sbapi/wifi_monitor.c: In function 'upload_client_debug_stats_sta_fa_lmac_mgmt_stats':


    and the tail end of the file:

    cc1: all warnings being treated as errors

    make[4]: *** [Makefile:555: libCcspWifiAgent_sbapi_la-wifi_monitor.lo] Error 1

    make[4]: *** Waiting for unfinished jobs....

    cc1: all warnings being treated as errors

    make[4]: *** [Makefile:534: libCcspWifiAgent_sbapi_la-cosa_wifi_apis.lo] Error 1

    make[4]: Leaving directory '/data/projects/RDKB/rpi4/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccsp-wifi-agent/1.99+git999-r0/ccsp-wifi-agent-1.99+git999/source/TR-181/sbapi'

    make[3]: *** [Makefile:371: all-recursive] Error 1

    make[3]: Leaving directory '/data/projects/RDKB/rpi4/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccsp-wifi-agent/1.99+git999-r0/ccsp-wifi-agent-1.99+git999/source/TR-181'

    make[2]: *** [Makefile:372: all-recursive] Error 1

    make[2]: Leaving directory '/data/projects/RDKB/rpi4/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccsp-wifi-agent/1.99+git999-r0/ccsp-wifi-agent-1.99+git999/source'

    make[1]: *** [Makefile:549: all-recursive] Error 1

    make[1]: Leaving directory '/data/projects/RDKB/rpi4/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccsp-wifi-agent/1.99+git999-r0/ccsp-wifi-agent-1.99+git999'

    make: *** [Makefile:437: all] Error 2

    ERROR: oe_runmake failed

    WARNING: exit code 1 from a shell command.

    ERROR: Execution of '/data/projects/RDKB/rpi4/build-raspberrypi4-64-rdk-broadband/tmp/work/aarch64-rdk-linux/ccsp-wifi-agent/1.99+git999-r0/temp/run.do_compile.3919344' failed with exit code 1



  3. Hi John Pomeroy ,

    Could you please try a build from CMF latest release branch  - rdkb-2022q2-dunfell.

    We will check the dunfell build issue once from our end.


    Thank you.

  4. Are these Host Specific depedencies command which is descripted :

    $ 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

    is worked on specific OS like Ubuntu 20.04.5 LTS version or lower than it but higher than Ubuntu 18.04 because we are running these commands in Ubuntu 22.04.1  with already updated python , git ,tar and coreutils but displaying error in this Ubuntu 22.04 version but no issues in Ubuntu 20.04.5 version

    Error Description :
    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
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    Note, selecting 'git' instead of 'git-core'
    Package python is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source
    However the following packages replace it:
      2to3 python2-minimal:i386 python2:i386 python2-minimal python2 dh-python python-is-python3

    E: Package 'python' has no installation candidate
    E: Unable to locate package pylint3



    1. Hi Z-Ashish Vyas 

      python-is-python2 and some older python package no longer exists in ubuntu latest version , Could you share the python version and python3 version from your Host system.( command : python --version)

      If you need python2 to be the default for the python command you can do something like:

      sudo ln -s /bin/python2.7 /usr/bin/python

  5. Hello, I have followed your instructions to build images, I have tried from 2022q1 to 2023q1, as licensed and unlicensed, the result has always been the same even for all versions of raspberry (3b+, 4b 32bit, 4b 64bit)  I'm mainly interested in rpi4 64bit but I'm open to getting 3b+ working as well

    I get the following:


    bitbake rdk-generic-broadband-image

    Loading cache: 100% |############################################ ################################################## ################################################## ################################| Time: 0:00:00
    Loaded 35 entries from dependency cache.
    ERROR: ExpansionError during parsing /home/netman2/2022q4/meta-cmf-raspberrypi/meta-rdk-broadband/recipes-ccsp/hal/hal-fwupgrade_git.bb | ETA: --:--:--
    Traceback (most recent call last):
       File "Var <do_compile[file-checksums]>", line 1, in <module>
       File "/home/netman2/2022q4/openembedded-core/meta/classes/externalsrc.bbclass", line 219, in srctree_hash_files(d=<bb.data_smart.DataSmart object at 0x7f4fd7891860>, srcdir=None):
                      git_sha1 = subprocess.check_output(['git', 'write-tree'], cwd=s_dir, env=env).decode("utf-8")
         > submodule_helper = subprocess.check_output(['git', 'submodule--helper', 'list'], cwd=s_dir, env=env).decode("utf-8")
                      for line in submodule_helper.splitlines():
       File "/usr/lib/python3.6/subprocess.py", line 356, in check_output(timeout=None, *popenargs=(['git', 'submodule--helper', 'list'],), * *kwargs={'cwd': '/home/netman2/2022q4/meta-cmf/../rdkb/devices/raspberrypi/hal/source/fwupgrade', 'env': {'USER': 'netman2', ' PWD': '/home/netman2/2022q4/build-raspberrypi4-64-rdk-broadband', 'HOME': '/home/netman2', 'BBPATH': '/home/netman2/2022q4/build-raspberrypi4-64 -rdk-broadband', 'BB_ENV_EXTRAWHITE': 'ALL_PROXY BBPATH_EXTRA BB_LOGCONFIG BB_NO_NETWORK BB_NUMBER_THREADS BB_SETSCENE_ENFORCE BB_SRCREV_POLICY DISTRO FTPS_PROXY FTP_PROXY GIT_PROXY_COMMAND HTTPS_PROXY HTTP_PROXY MA CHINE NO_PROXY PARALLEL_MAKE SCREENDIR SDKMACHINE SOCKS5_PASSWD SOCKS5_USER SSH_AGENT_PID SSH_AUTH_SOCK STAMPS_DIR TCLIBC TCMODE all_proxy ftp_proxy ftps_proxy http_proxy https_proxy no_proxy ', 'TERM': 'xterm -256color', 'SHELL': '/bin/bash', 'LOGNAME': 'netman2', 'PATH': '/home/netman2/2022q4/openembedded-core/scripts:/home/netman2/2022q4/openembedded- core/bitbake/bin:/home/netman2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr /local/games:/snap/bin', 'LC_ALL': 'en_US.UTF-8', 'GIT_INDEX_FILE': '/tmp/oe-devtool-indexa_rb0kke'}}):
              return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
         > **kwargs).stdout

       File "/usr/lib/python3.6/subprocess.py", line 438, in run(input=None, timeout=None, check=True, *popenargs=(['git', 'submodule--helper', 'list'],), **kwargs={'stdout': -1, 'cwd': '/home/netman2/2022q4/meta-cmf/../rdkb/devices/raspberrypi/hal/source/fwupgrade' , 'env': {'USER': 'netman2', 'PWD': '/home/netman2/2022q4/build-raspberrypi4-64-rdk-broadband', 'HOME': '/home/netman2', 'BBPATH ': '/home/netman2/2022q4/build-raspberrypi4-64-rdk-broadband', 'BB_ENV_EXTRAWHITE': 'ALL_PROXY BBPATH_EXTRA BB_LOGCONFIG BB_NO_NETWORK BB_NUMBER_THREADS BB_SETSCENE_ENFORCE BB_SRCREV_POLICY DISTRO FTPS_PRO XY FTP_PROXY GIT_PROXY_COMMAND HTTPS_PROXY HTTP_PROXY MACHINE NO_PROXY PARALLEL_MAKE SCREENDIR SDKMACHINE SOCKS5_PASSWD SOCKS5_USER SSH_AGENT_PID SSH_AUTH_SOCK STAMPS_DIR TCLIBC TCMODE all_proxy ftp_proxy ftps_proxy http_proxy https_proxy no_proxy ', 'TERM': 'xterm-256color', 'SHELL': '/bin/bash', 'LOGNAME': 'netman2', 'PATH': '/home/netman2/2022q4/ openembedded-core/scripts:/home/netman2/2022q4/openembedded-core/bitbake/bin:/home/netman2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/ bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'LC_ALL': 'en_US.UTF-8', 'GIT_INDEX_FILE': '/tmp/oe-devtool- indexa_rb0kke'}}):
                      raise CalledProcessError(retcode, process.args,
         > output=stdout, stderr=stderr)
              return CompletedProcess(process.args, retcode, stdout, stderr)
    bb.data_smart.ExpansionError: Failure expanding variable do_compile[file-checksums], expression was ${@srctree_hash_files(d)} which triggered exception CalledProcessError: Command '['git', 'submodule--helper', 'list']' returned non-zero exit status 129.


    Summary: There was 1 ERROR message shown, returning a non-zero exit code.


    Any help is very welcome, thanks in advance

    1. This appears to be resulting from git not supporting submodule--helper command in latest versions.

      I've addressed this by the below patch in openembedded-core (also refer https://git.yoctoproject.org/poky/commit/?id=0533edac277080e1bd130c14df0cbac61ba01a0c):

      diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass
      index 277e3826e6bb..f4afc1ba7f7b 100644
      --- a/meta/classes/externalsrc.bbclass
      +++ b/meta/classes/externalsrc.bbclass
      @@ -218,14 +218,16 @@ def srctree_hash_files(d, srcdir=None):
                   env['GIT_INDEX_FILE'] = tmp_index.name
                   subprocess.check_output(['git', 'add', '-A', '.'], cwd=s_dir, env=env)
                   git_sha1 = subprocess.check_output(['git', 'write-tree'], cwd=s_dir, env=env).decode("utf-8")
      -            submodule_helper = subprocess.check_output(['git', 'submodule--helper', 'list'], cwd=s_dir, env=env).decode("utf-8")
      -            for line in submodule_helper.splitlines():
      -                module_dir = os.path.join(s_dir, line.rsplit(maxsplit=1)[1])
      -                proc = subprocess.Popen(['git', 'add', '-A', '.'], cwd=module_dir, env=env, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
      -                proc.communicate()
      -                proc = subprocess.Popen(['git', 'write-tree'], cwd=module_dir, env=env, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
      -                stdout, _ = proc.communicate()
      -                git_sha1 += stdout.decode("utf-8")
      +            if os.path.exists(".gitmodules"):
      +                submodule_helper = subprocess.check_output(["git", "config", "--file", ".gitmodules", "--get-regexp", "path"], cwd=s_dir, env=env).decode("utf-8")
      +                for line in submodule_helper.splitlines():
      +                    module_dir = os.path.join(s_dir, line.rsplit(maxsplit=1)[1])
      +                    if os.path.isdir(module_dir):
      +                        proc = subprocess.Popen(['git', 'add', '-A', '.'], cwd=module_dir, env=env, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
      +                        proc.communicate()
      +                        proc = subprocess.Popen(['git', 'write-tree'], cwd=module_dir, env=env, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
      +                        stdout, _ = proc.communicate()
      +                        git_sha1 += stdout.decode("utf-8")
                   sha1 = hashlib.sha1(git_sha1.encode("utf-8")).hexdigest()
               with open(oe_hash_file, 'w') as fobj:
                   fobj.write(sha1)

  6. Tried following below procedure

    Building for RaspberryPi 4B 64 Bit
    
    mkdir <workspace dir>
    
    cd <workspace dir>
    
    repo init -u https://code.rdkcentral.com/r/manifests -m rdkb.xml -b rdkb-2023q1-dunfell  
    
    repo sync -j `nproc` --no-clone-bundle --no-tags
    
    MACHINE=raspberrypi4-64-rdk-broadband source meta-cmf-raspberrypi/setup-environment
    
    bitbake rdk-generic-broadband-image
    
    pbzip2 -d rdkb-generic-broadband-image_rdkb-2023q1-dunfell_20230709144642.rootfs.wic.bz2
    
    sudo -E bmaptool copy --nobmap rdkb-generic-broadband-image_rdkb-2023q1-dunfell_20230709144642.rootfs.wic  /dev/mmcblk0


    Able to build the raspberry pi rdkb code, flash image to the sd card successfully but unable to see any logs on the console output. I confirm the baudrate and serial cable are intact. 

    Unable to access any content in the sdcard on windows machine. 

    How to know if the sdcard has the rootfs is flashed and do we need to configure to boot it up ? Any led indication/pattern that can help to know if the stack is up and running?