RDK Resources

[*RDK Preferred*]

Code Management Facility

Code Releases

RDK Forums

[RDK Conferences]

RDK Support

Archives

Papers & Presentations Archive

In the News!

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

The OpenEmbedded build system should be able to run on any modern distribution with the following versions for Git, tar, and Python.


  • Git 1.8.3.1 or greater.

  • tar 1.24 or greater.

  • Python 2.7.3 or greater excluding Python 3.x, which is not supported


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


Ubuntu and Debian

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

$ sudo apt-get install make gcc g++ diffstat texinfo chrpath gcc-multilib git gawk build-essential autoconf libtool libncurses-dev gettext gperf lib32z1 libc6-i386 g++-multilib python-git


Building

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


Repo setup

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

$ 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


machine code.rdkcentral.com

login YOUR_USERNAME

password YOUR_PASSWORD


Initilaizing the Build Environment

#To build rdk-next follow the below build procedure

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

for ASP:

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

$ repo sync -j4 --no-clone-bundle

Choose hybrid to build image with default compositor

$ source meta-cmf-raspberrypi/setup-environment <select option raspberrypi-rdk-hybrid.conf>

$ bitbake rdk-generic-hybrid-wpe-image

for TDK-image

$ bitbake rdk-generic-hybrid-wpe-tdk-image

Choose hybrid-westeros to build image with westeros compositor

$ source meta-cmf-raspberrypi/setup-environment <select option raspberrypi-rdk-hybrid-westeros.conf>

$ bitbake rdk-generic-hybrid-westeros-wpe-image

for TDK-image

$ bitbake rdk-generic-hybrid-westeros-wpe-tdk-image

  • Cloning the code before login once to code.rdkcentral.com, user would get the Authentication error, even though the account is in good standing and has all the required access.
  • Please login to code.rdkcentral.com before attempting to clone.

Note: The Kernel image and root filesystem will be created under ./ build-raspberrypi-rdkmc/tmp/deploy/images/raspberrypi-rdk-mc folder



  • No labels

1 Comment

  1. Hi Immaneni Kanthikiran , Gayathri ,


    I have been following your guideline  as below:

    $ repo init -u https://code.rdkcentral.com/r/manifests -m rdkv-raspberrypi.xml -b morty
    $ repo sync -j4 --no-clone-bundle

    # Wait for the repo has been syned. During the source pull, I have seen some errors - and I thought it was some connection errors, so I tried the repo sync command several times.


    $ source meta-cmf-raspberrypi/setup-environment

           → Select the raspberrypi-rdk-mc-westeros.conf option.


    build-raspberrypi-rdk-mc-westeros$ bitbake rdk-generic-mediaclient-westeros-wpe-image


    The build could run a litte bit, but I always get below errors:

    /usr/include/bits/floatn.h:75:1: error: unknown machine mode '__TC__'
    | /usr/include/bits/floatn.h:87:9: error: unknown type name '__float128'

    I have searched out from Google but not find the proper solution yet.


    Some snipped log from my procedure:

    // Bitbake log:

    Build Configuration:
    BB_VERSION = "1.32.0"
    BUILD_SYS = "x86_64-linux"
    NATIVELSBSTRING = "Ubuntu-18.04"
    TARGET_SYS = "arm-rdk-linux-gnueabi"
    MACHINE = "raspberrypi-rdk-mc-westeros"
    DISTRO = "rdk"
    DISTRO_VERSION = "2.0"
    TUNE_FEATURES = "arm armv7ve vfp thumb neon vfpv4 callconvention-hard cortexa7"
    TARGET_FPU = "hard"
    meta-metrological = "HEAD:c8a66ff9e2d6c480d0f2f17408cea1d7cadc4885"
    meta-raspberrypi = "HEAD:8db3240ba2b06f4f3e850d63a51b66f45f5e962a"
    meta-cmf = "HEAD:cda1cd07449ab9a7d76ced05820ce9806f82153b"
    meta-cmf-video-restricted = "HEAD:b5a4af851f77dbbc711ac3de6fcc244a7c7078a1"
    meta-cmf-video = "HEAD:d633e4eec7a3da16676f5be5c6cc0a2efdd6b8d6"
    meta-cmf-restricted = "HEAD:d8866fa1c8b0a295b477bb528e55b7afecd198ea"
    meta-cmf-qt5 = "HEAD:afd0f92998835a9fd9be8f97a4c3da5d05165d8f"
    meta-cmf-raspberrypi = "HEAD:e4552b0e9ea8cb4a710f14b0681f586fa46d3425"
    meta-rtlwifi = "HEAD:9af3c5e5a36ce366bb124da73c7ffd03c5acafe8"
    meta-rdk = "HEAD:b56fb127dfb99de09a36623b72dd1e4b87e6c5c7"
    meta-qt5 = "HEAD:139dfc4c6627a8abe5b26611fc0fc23da2e1ded8"
    meta-browser = "HEAD:1569eeb9cc1b87632abbf35fbb05f4ac4eeb3987"
    meta-java = "HEAD:5f4e053d2ab8e5db5a2825715cf78736b9196ddf"
    meta-webserver
    meta-multimedia
    meta-filesystems
    meta-oe
    meta-networking = "HEAD:153f85093c660eb3fbdd36db556d25d1bba59c1c"
    meta = "HEAD:32ec41c1efa5ecc806141a1f4fea5a8587c9fe12"
    meta-virtualization = "HEAD:912b50a9f66037d124bc51231a2156467996737d"
    meta-rdk-restricted = "HEAD:153cb21ae857686ed4f2fb0d9b57854702062804"
    meta-rdk-video = "HEAD:6a7203c98f14235568968fb9ccd9107d38321381"
    meta-rdk-ext = "HEAD:b4c5d65adea37c87f4a4f19d34dedfd66f6e8dc2"
    meta-python = "HEAD:153f85093c660eb3fbdd36db556d25d1bba59c1c"

    // I am using Ubuntu 18.04 on laptop HP-ProBook-650-G1.

    // The tree view of raspberrypi.

    $ tree -L 2 meta-cmf-raspberrypi/
    meta-cmf-raspberrypi/
    ├── conf
    │   ├── distro
    │   ├── include
    │   ├── layer.conf
    │   └── machine
    ├── licenses
    │   ├── Comcast
    │   └── RDK
    ├── LICENSES.TXT
    ├── recipes-bsp
    │   └── bootfiles
    ├── recipes-ccsp
    │   ├── ccsp
    │   ├── hal
    │   └── util
    ├── recipes-common
    │   └── rfc
    ├── recipes-connectivity
    │   ├── dibbler
    │   ├── hostapd
    │   ├── lirc
    │   ├── nfs-utils
    │   ├── openssh
    │   ├── openssl
    │   └── wpa-supplicant
    ├── recipes-containers
    │   └── lxc-container-generator
    ├── recipes-core
    │   ├── busybox
    │   ├── dbus
    │   ├── dropbear
    │   ├── images
    │   ├── packagegroups
    │   └── systemd
    ├── recipes-devtools
    │   ├── binutils
    │   ├── e2fsprogs
    │   ├── gdb
    │   ├── lua
    │   └── php
    ├── recipes-extended
    │   ├── aamp
    │   ├── appmanager
    │   ├── devicesettings
    │   ├── dvrmgr
    │   ├── gst-plugins-playersinkbin
    │   ├── gst-plugins-rdk-subtec
    │   ├── gstqamtunersrc
    │   ├── hdhomerun
    │   ├── iarmmgrs
    │   ├── libaio
    │   ├── lighttpd
    │   ├── logrotate
    │   ├── mediaframework
    │   ├── mediastreamer
    │   ├── networkmgr
    │   ├── packagegroups
    │   ├── rdkapps
    │   ├── storagemanager
    │   ├── sysint
    │   ├── tdk
    │   ├── tdkb
    │   ├── websocket-ipplayer2
    │   ├── wifi-client-hal
    │   └── xupnp
    ├── recipes-gnome
    │   └── librsvg
    ├── recipes-graphics
    │   ├── pxcore-libnode
    │   ├── userland
    │   ├── westeros
    │   └── westeros-soc
    ├── recipes-kernel
    │   └── linux
    ├── recipes-multimedia
    │   └── gstreamer
    ├── recipes-oem
    │   └── mfrlibs
    ├── recipes-protocols
    │   ├── net-snmp
    │   └── quagga
    ├── recipes-qt
    │   └── servicemanager
    ├── recipes-rdkb
    │   └── sysint-broadband
    ├── recipes-support
    │   ├── dnsmasq
    │   ├── gmp
    │   ├── libpcre
    │   ├── nettle
    │   ├── network-hotplug
    │   ├── parodus
    │   └── parodus2snmp
    ├── recipes-thirdparty
    │   └── tr69
    ├── recipes-wpe
    │   ├── wpe
    │   ├── wpe-backend
    │   ├── wpe-backend-rdk
    │   ├── wpebackend-rdk
    │   ├── wpelauncher
    │   ├── wpe-launcher
    │   ├── wpeservice
    │   ├── wpewebkit
    │   └── wpe-webkit
    └── setup-environment


    Thanks and Regards,

    Tung Lam