Skip to end of metadata
Go to start of metadata


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

7 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 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 )