Copyright 2016 RDK Management, LLC. All rights reserved. The contents of this document are RDK Management, LLC Proprietary and Confidential and may not be distributed or otherwise disclosed without prior written permission of RDK Management, LLC.

Host Setup

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 rdk-next -m rdkb-extsrc.xml
$ repo sync -j4 --no-clone-bundle
$ source meta-cmf-raspberrypi/setup-environment (Select option raspberrypi-rdk-broadband.conf)
$ bitbake rdk-generic-broadband-image


Note  :  On Successful build,
The kernel Image and root filesystem will be created under the below path,

             ~/tmp/deploy/images/raspberrypi-rdk-broadband folder


Flashing Procedure

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

sudo dd if=<path to ImageName.rpi-sdimg> of=<path to SD card space> bs=4M
Example:
$ sudo dd if=rdk-generic-broadband-image-raspberrypi-rdk-broadband.rpi-sdimg of=/dev/sdb bs=4M

https://www.balena.io/etcher/ can be used to flash RPI image in sd card using windows 

  • No labels

23 Comments

  1. Is it possible to build this using rdkb-nosrc.xml as a manifest, and not rdkb-extsrc.xml? 


    This is because we want to patch some of the components [config, new behavior] and using extsrc pretty much excludes that.
    But the problem seems to be that many of the recipes point to gerrit.teamccp.com for their source, and not code.rdkcentral.com.
    For example:

    meta-rdk-broadband/recipes-ccsp/ccsp/ccsp-wifi-agent.bb:SRC_URI = "${RDKB_CCSP_ROOT_GIT}/CcspWifiAgent/generic;protocol=${RDK_GIT_PROTOCOL};branch=${CCSP_GIT_BRANCH};name=CcspWifiAgent"


    Where

    meta-cmf/conf/distro/include/rdk-versions.inc:RDKB_CCSP_ROOT_GIT ?= "git://${RDK_GIT}/rdk/rdkb/components/opensource/ccsp"
    meta-cmf/conf/distro/include/rdk-versions.inc:RDK_GIT ?= "gerrit.teamccp.com"
    meta-rdk/conf/distro/include/rdk-versions.inc:RDKB_CCSP_ROOT_GIT ?= "git://${RDK_GIT}/rdk/rdkb/components/opensource/ccsp"
    meta-rdk/conf/distro/include/rdk-versions.inc:RDK_GIT ?= "gerrit.teamccp.com"


    Now, if we look in the rdkb-extsrc.xml manifest, we see that WifiAgent comes from

        <project name="rdkb/components/opensource/ccsp/CcspWifiAgent" revision="rdk-next"/>


    And then gen-autoconf.py creates

    meta-cmf/conf/distro/include/rdk-external-src.inc:EXTERNALSRC_pn-ccsp-wifi-agent = "${@'${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/CcspWifiAgent' if (os.path.isdir('${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/CcspWifiAgent')) else ''}"


    And so does a bbappend for meta-cmf-ci20:

    meta-cmf-ci20/recipes-ccsp/ccsp/ccsp-wifi-agent.bbappend:EXTERNALSRC_pn-ccsp-wifi-agent = "${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/CcspWifiAgent"


    And so bitbake uses that directory and because EXTERNAL_SRC is defined, none of fetch, unpack or patch tasks is executed. Hence why we need to use nosrc.
    But as you can see not only is the source RDK_GIT based, which is easy to override, but the paths don't match.
    Here's the path for CMF:
    https://code.rdkcentral.com/r/rdkb/components/opensource/ccsp/CcspWifiAgent
    And the path for teamccp:
    git://gerrit.teamccp.com/rdk/rdkb/components/opensource/ccsp/CcspWifiAgent/generic
    We could trick this, almost, by setting RDK_GIT to match code.rdkcentral.com and drop the extra rdk and add the r,  but what we can't do is avoid that generic at the end, so we're left with not being able to get this code easily without completely overriding the path for each component. And that would include the name, branch and protocol.
    In the end. we tricked this out using git's url.insteadof config value:
    [url "https://code.rdkcentral.com/r/rdkb/components/opensource/ccsp/CcspWifiAgent"]
            insteadOf = https://gerrit.teamccp.com/rdk/rdkb/components/opensource/ccsp/CcspWifiAgent/generic
    But this means we have a config file approaching 100 lines long

    I was wondering if:

    1. I'm mistaken
    2. There's a reason for this
    3. If there are plans to fix this
  2. I was mistaken there was a merge we were missing.

    But, the following, un-referenced, components are still pointing at teamccp from meta-rdk-broadband:

    ./recipes-ccsp/ccsp/ccsp-dslagent.bb:SRC_URI ="${RDKB_CCSP_ROOT_GIT}/DSLAgent/generic;protocol=${RDK_GIT_PROTOCOL};branch=${CCSP_GIT_BRANCH};name=DSLAgent"
    ./recipes-ccsp/ccsp/ccsp-vlanagent.bb:SRC_URI ="${RDKB_CCSP_ROOT_GIT}/VLANAgent/generic;protocol=${RDK_GIT_PROTOCOL};branch=${CCSP_GIT_BRANCH};name=VLANAgent"
    ./recipes-ccsp/ccsp/ccsp-xtmagent.bb:SRC_URI ="${RDKB_CCSP_ROOT_GIT}/XTMAgent/generic;protocol=${RDK_GIT_PROTOCOL};branch=${CCSP_GIT_BRANCH};name=XTMAgent"

    1. Hi Z-Howard Teece Let us check the wrong references to teamccp in the repo .

  3. Hi,

    While running build command it is taking more time to build(taken more than 24hr). It is still in buiilding state here.

    Could you please check and revert asap. 

    Executing RunQueue Tasks

    Currently 4 running tasks (374 of 3890) here it taking more time

    1. Hi Z-Rajesh Reddy


      Time for build is purely dependent on CPU power. If you are using a low end machine( or a Virtual box VM in your PC ) , the RPi RDK-B build might take a day 


      But 374 of 3890 seems too odd for 24hours


      Could you please show which are the current running tasks( whatever text that comes below the line you have shared )? In case some hang happened, a good way to come out is to kill the build and run bitbake again

      1. Hi Narayanaswamy Ramaiyer

        Please check below for required info.

        Currently 4 running tasks (489 of 3890) 12% 
        0: linux-raspberrypi-1_4.14.68+gitAUTOINC+do_fetch (pid 14892)       84%|

        1: qemu-native-2.7.0-r1 do_compile - 1457s (pid 1144)

        2: glibc-2.24-r0 do_populate_sysroot -341s (pid 4086)

        3: glibc-2.24-r0 do_package -42s (pid 12246)

        1. Hi Z-Rajesh Reddy


          Linux Raspberrypi and glibc are compiled at very early stages of  Yocto build. If fetch itself is not completed yet, can you just check if the internet connectivity is all good?

          Could you please share the machine configuration of linux to us ( cat /proc/meminfo and cat /proc/cpuinfo )

  4. Hi,

    I try to connect WiFi on RDK-B, but it always show "Unable to Join the Network".

    I am testing on RDK-B_2021q2.

    1. Hi Z-Arthur Huang 

      Could you try changing the password , and reset of board once

      Also, Can you check whether device is getting internet if you connect lan cable .

      1. Hi Deepika Ganapathi Bhat ,

        It still doesn't work.

        I am testing on raspberry pi, it only has one rj-45 which connect to wan.

        1. Hi Z-Arthur Huang 

          Could you give us the below details

          • RPI board is getting internet from wan ?
          • Did you change the wifi password from GUI ?
          • In the client side , can you remove the the existing ssids, (forgot option) and try to connect once. 

          I have verified in RDK-B_2021q2 release image, the client is connecting to RPI SSID.

          1. Hi Deepika Ganapathi Bhat 

            • RPI board is getting internet from wan ?
              Yes, I can ping 8.8.8.8 on RPI, so wan is fine.
            • Did you change the wifi password from GUI ?
              I change both ssid and password of wifi.
            • In the client side , can you remove the the existing ssids, (forgot option) and try to connect once. 
              My mobile phone always failed to connect to RPI, so there is no forgot option.

            WiFi on RPI seems not stable. SSID sometimes show on the list, but sometimes doesn't.

            Best Regards,
            Arthur

            1. Hi Z-Arthur Huang 

               Could you try below options  

              1. factory reset and try

              2. try with different firmware of same release

              3. seen with specific board ? verified with other boards? if not, please try once

              4. try with latest release .

              The reported issue is not observed from our end with rpi

              1. Hi Deepika Ganapathi Bhat ,

                My original board is RPI 3B+.

                After switching to RPI 3B, WiFi works now.

                Best Regards,

                Arthur

  5. Hi.

    Before I don't have problem to build RDK-B RPI. But today I met below error message.

    NOTE: Executing SetScene Tasks
    NOTE: Executing RunQueue Tasks
    ccsp-common-library-native-1.99+git999-r0 do_compile: NOTE: ccsp-common-library-native: compiling from external source tree /home/djkim/rdk-gdm/meta-cmf/../rdkb/components/opensource/ccsp/CcspCommonLibrary
    ERROR: dibbler-1.0.1-r0 do_patch: Command Error: 'quilt --quiltrc /home/djkim/rdk-gdm/build-raspberrypi-rdk-broadband/tmp/sysroots/x86_64-linux/etc/quiltrc push' exited with 0  Output:
    Applying patch fix_type_casting.patch
    patching file SrvMessages/SrvMsg.cpp
    patch unexpectedly ends in middle of line
    Hunk #2 FAILED at 260.
    1 out of 2 hunks FAILED -- rejects in file SrvMessages/SrvMsg.cpp
    Patch fix_type_casting.patch does not apply (enforce with -f)
    ERROR: dibbler-1.0.1-r0 do_patch: Function failed: patch_do_patch
    ERROR: Logfile of failure stored in: /home/djkim/rdk-gdm/build-raspberrypi-rdk-broadband/tmp/work/cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi/dibbler/1.0.1-r0/temp/log.do_patch.103288
    ERROR: Task (/home/djkim/rdk-gdm/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_1.0.1.bb:do_patch) failed with exit code '1'
    NOTE: Tasks Summary: Attempted 1226 tasks of which 1196 didn't need to be rerun and 1 failed.
    NOTE: Writing buildhistory

    Summary: 1 task failed:
      /home/djkim/rdk-gdm/meta-openembedded/meta-networking/recipes-connectivity/dibbler/dibbler_1.0.1.bb:do_patch
    Summary: There were 31 WARNING messages shown.
    Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
    djkim@ubuntu:~/rdk-gdm/build-raspberrypi-rdk-broadband$

    Regards,

    1. Hi Z-djkim ,

      Can you please provide below details

      • Is it with fresh build ?
      • Which release you are using ?
      • Share the commands that you followed to build the code
      • Did you try clean build one more time ?

      Regards,
      Priyankaa KVB

      1. Hi Priyankaa,

        After checkout 2021q2 branch, everything is OK.

        Thanks.

  6. During repo init I face below error. Is there any update in repo? Please help me.


    manifests:

    fatal: remote error: manifests unavailable

    manifests: sleeping 4.0 seconds before retrying

    I am using below command for repo init:

    repo init -u https://code.rdkcentral.com/r/manifests -b rdk-next -m rdkb-extsrc.xml


    Thanks,

    Rakesh Modi

    1. Hi Rakesh Modi 

      Refer RDK-B Code Releases for the latest CMF Releases.
      At Present, RDKB_2022q4_dunfell is the latest Release,Please find the repo init commands 

      repo init -u https://code.rdkcentral.com/r/rdkcmf/manifests -m rdkb-extsrc.xml -b  rdkb-2022q4-dunfell
      repo sync -j `nproc` --no-clone-bundle --no-tags
    2. Hello Rakesh Modi 

      Looks like you are not a RDK licensee. In case you are working for a company which has RDK license, please use your company email id instead of your gmail id to access these source code.

      While most of the RDK components are available free, a handful of components are distributed under the free RDK License Agreement.
      To learn more & obtain the RDK License Agreement, please click on the link below. Upon full execution of the agreement, you will be provided access to the RDK source code components. Please contact RDK Management at info@rdkcentral.com in case you need more information. You can get all the Apache components, but for any of the RDK Components, you have to obtain the RDK License Agreement.

      https://rdkcentral.com/licenses/

      https://rdkcentral.com/memberships/

      Thanks,
      RDK Support

      1. Thanks for the update. Currently, I do not have RDK license, so I will not be able to get RDK source code.

  7. Hi Team,

    I am getting fetch error while doing bitbake rdk-generic-broadband-image, Please help
    init used : repo init -u https://code.rdkcentral.com/r/rdkcmf/manifests -m rdkb-extsrc.xml -b  rdkb-2022q4-dunfell

    ERROR: ntpstat-0.2-r0 do_fetch: Fetcher failure: Fetch command export PSEUDO_DISABLED=1; export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"; export SSH_AGENT_PID="2142"; export SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"; export PATH="/home/user/SRC/R_PI/RPI_3/openembedded-core/scripts:/home/user/SRC/R_PI/RPI_3/build-raspberrypi-rdk-broadband/tmp/work/cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi/ntpstat/0.2-r0/recipe-sysroot-native/usr/bin/arm-rdk-linux-gnueabi:/home/user/SRC/R_PI/RPI_3/build-raspberrypi-rdk-broadband/tmp/work/cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi/ntpstat/0.2-r0/recipe-sysroot/usr/bin/crossscripts:/home/user/SRC/R_PI/RPI_3/build-raspberrypi-rdk-broadband/tmp/work/cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi/ntpstat/0.2-r0/recipe-sysroot-native/usr/sbin:/home/user/SRC/R_PI/RPI_3/build-raspberrypi-rdk-broadband/tmp/work/cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi/ntpstat/0.2-r0/recipe-sysroot-native/usr/bin:/home/user/SRC/R_PI/RPI_3/build-raspberrypi-rdk-broadband/tmp/work/cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi/ntpstat/0.2-r0/recipe-sysroot-native/sbin:/home/user/SRC/R_PI/RPI_3/build-raspberrypi-rdk-broadband/tmp/work/cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi/ntpstat/0.2-r0/recipe-sysroot-native/bin:/home/user/SRC/R_PI/RPI_3/openembedded-core/bitbake/bin:/home/user/SRC/R_PI/RPI_3/build-raspberrypi-rdk-broadband/tmp/hosttools"; export HOME="/home/user"; /usr/bin/env wget -t 2 -T 30 --passive-ftp --no-check-certificate -O /home/user/SRC/R_PI/RPI_3/build-raspberrypi-rdk-broadband/../downloads/ntpstat-0.2.tar.gz.tmp -P /home/user/SRC/R_PI/RPI_3/build-raspberrypi-rdk-broadband/../downloads 'http://jaist.dl.sourceforge.net/project/ictom/ntpstat-0.2.tar.gz' --progress=dot -v failed with exit code 4, no output
    ERROR: ntpstat-0.2-r0 do_fetch: Fetcher failure for URL: 'http://jaist.dl.sourceforge.net/project/ictom/ntpstat-0.2.tar.gz;'. Unable to fetch URL from any source.
    ERROR: Logfile of failure stored in: /home/user/SRC/R_PI/RPI_3/build-raspberrypi-rdk-broadband/tmp/work/cortexa7t2hf-neon-vfpv4-rdk-linux-gnueabi/ntpstat/0.2-r0/temp/log.do_fetch.928592
    ERROR: Task (/home/user/SRC/R_PI/RPI_3/meta-cmf-raspberrypi/recipes-support/ntp/ntpstat_0.2.bb:do_fetch) failed with exit code '1'
    NOTE: Tasks Summary: Attempted 1479 tasks of which 1329 didn't need to be rerun and 1 failed.
    NOTE: Writing buildhistory
    NOTE: Writing buildhistory took: 1 seconds

    Summary: 1 task failed:
      /home/user/SRC/R_PI/RPI_3/meta-cmf-raspberrypi/recipes-support/ntp/ntpstat_0.2.bb:do_fetch
    Summary: There were 24 WARNING messages shown.
    Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
    user@user-Latitude-3520:~/SRC/R_PI/RPI_3/build-raspberrypi-rdk-broadband$ 

  8. Quick note (I don't have the permissions to edit the page), this part:

    Note  :  On Successful build,The kernel Image and root filesystem will be created under the below path,
    
                 ~/tmp/deploy/images/raspberrypi-rdk-broadband folder

    Should be:

    Note  :  On Successful build,The kernel Image and root filesystem will be created under the below path,
    
                 ./tmp/deploy/images/raspberrypi-rdk-broadband folder

    (i.e. nothing is created in your home directory, the output folder is in a subfolder of the '<workspace dir>' mentioned above.