YumaWorks YumaPro Yocto Linux User Guide

June 4, 2024
YumaWorks

YumaWorks YumaPro Yocto Linux

YumaWorks-YumaPro-Yocto-Linux-

Preface

Legal Statements
Copyright 2017-2022, YumaWorks, Inc., All Rights Reserved.Copyright 2017-2022, YumaWorks, Inc., All Rights Reserved.

1.2 Additional Resources

Other documentation includes:

  • YumaPro Installation Guide
  • YumaPro Quickstart Guide
  • YumaPro API Quickstart Guide
  • YumaPro User Manual
  • YumaPro netconfd-pro Manual
  • YumaPro yangcli-pro Manual
  • YumaPro yangdiff-pro Manual
  • YumaPro yangdump-pro Manual
  • YumaPro Developer Manual
  • YumaPro ypclient-pro Manual
  • YumaPro yp-system API Guide
  • YumaPro yp-show API Guide
  • YumaPro yp-snmp Manual

To obtain additional support you may contact YumaWorks technical support department: [email protected]

WEB Sites

Mailing Lists

Conventions Used in this Document
The following formatting conventions are used throughout this document:

Documentation Conventions

Convention Description
–foo CLI parameter foo
< foo> XML parameter foo
some text Example command or PDU
some text Plain text

Intended Audience
This document is intended for software developers using the YumaPro SDK and multi-protocol server in custom embedded Linux platforms by using the Yocto Project and its BitBake recipes. It covers the setup and basic steps required to build the software. The reader should be familiar with the Yocto Project.

Introduction

The Yocto Linux development system allows custom Linux variants to be created in an automated, controlled manner.
Yocto Home Page : https://www.yoctoproject.org/
The build-time and run-time information needed to build an entire Linux platform for an embedded system is managed as metadata within Yocto.
OpenEmbedded Home Page: https://www.openembedded.org/wiki/Main_Page

Yocto Features Supported by the YumaPro Server:

  • Makefiles have been updated to fully support bitbake environment variables for cross-compiler use
  • dropbear SSH server integration
  • openSSH SSH server integration
  • system deamon integration
  • lighttpd WEB server integration
  • net-snmp integration for SNMP protocol support
  • base-files integration for yp-shell integration and user management

This preliminary version of the YumaPro for Yocto Linux package supports version 2.3 (Pyro) of the Yocto Linux development system. The recipe “core- image-minimal” is used as the base for YumaPro server integration.
The complete YumaPro server can be built for Yocto Linux to provide YANG-based NETCONF, RESTCONF, SNMP, and CLI management interfaces.

These recipes can be customized as needed. It is expected that specific board support packages (BSPs) will be selected by a vendor according to project requirements.
The meta-yumapro package contains the recipes and other data files to allow a Yocto cross-compile image to be created. All makefiles have been updated so that the variables used by bitbake are supported for correct cross-compile development.
The YumaPro functionality is specified in a layer named “meta-yumapro”. There are two variants (called recipes) of the server supported at this time:

  • netconfd-pro-iot: Server for IoT platforms, based on yumapro-core source tarball
  • netconfd-pro-sdn: Server for SDN platforms, based on yumapro-server source tarball

These recipes can be customized as needed. It is expected that specific board support packages (BSPs) will be selected by a vendor according to project requirements.
The meta-yumapro package contains the recipes and other data files to allow a Yocto cross-compile image to be created. All makefiles have been updated so that the variables used by bitbake are supported for correct cross-compile development.

IoT vs. SDN Recipe Differences

There are two example server recipes provided. These can be used directly or adapted for use in a yocto build environment. The following table summarizes the differences between these recipes.

Feature netconfd-pro-iot netconfd-pro-sdn
SSH Server for NETCONF and yp- shell dropbear openssh
WEB Server for RESTCONF lighttpd lighttpd
YControl Protocol Not Supported Supported
DB-API Protocol Not Supported Supported
SIL-SA Protocol Not Supported Supported
YP-HA Protocol Not Supported Supported
Static Build Supported Not Supported

Yocto Build Host Software

The build host tools need to be setup before the server can be built.
The yumapro layer is designed to work with the Yocto 2.3 release (Pyro) or later.
The “pyro” and “master” branches of the Poky project have been tested with the meta-yumapro layer.
The following diagram shows the directories that the user is expected to setup (in blue) and the directories that the supplied software will add.

Directory Description
poky Yocto installation of poky build system
build Root of all build directories
conf Build configuration directory. Edit local.conf and bblayers.conf
tmp Root of all bitbake generated build files
meta-* Several opensource layer directories
meta-yumapro Root of the yumapro layer bitbake files
recipes-server Root directory for all yumapro server recipes
netconfd-pro Root directory of all netconfd-pro recipes (IoT and SDN)

The netconfd-pro-iot and netconfd-pro-sdn recipes are designed to integrate with certain open source recipes, in order to automatically produce a system image with a running system, upon first boot.
The following recipes are used by the yumapro server recipes:

  • base-files: Used to add yp-shell to /etc/shells
  • drop bear: Used to integrate netconfd-pro-iot support into dropbear and configure boot-time parameters
  • openssh: Used to configure netconfd-pro-sdn boot-time parameters into OpenSSH
  • lighttpd: Used to configure RESTCONF server boot-time parameters for lighttpd WEB server
  • net-snmp: Used to integrate SNMP protocol support and configure boot-time SNMP parameters

Setup Yocto Linux

These instructions do not override the Yocto documentation.
This document is not a yocto tutorial. Refer to the Yocto documentation for details on using the Yocto and bitbake software.

Yocto Project Quick Start Guide:
https://docs.yoctoproject.org/brief-yoctoprojectqs/index.html

Yocto Project Mega Manual:
https://docs.yoctoproject.org/singleindex.html

Yocto Project Developer Manual:
https://docs.yoctoproject.org/dev-manual/index.html

Building your own recipe:
https://wiki.yoctoproject.org/wiki/Building_your_own_recipes_from_first_principles

Bitbake User Manual:
https://docs.yoctoproject.org/bitbake/bitbake-user-manual/bitbake-user- manual-intro.html#the-bitbake-command 

Install Yocto
Follow the instructions in the Yocto Quick Start guide. Example Ubuntu Install.

  • 1a) install dependencies

    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 libsdl1.2-dev xterm

  • 1b) Install poky

    git clone git://git.yoctoproject.org/poky
    cd poky [Should be on branch ‘master’]

  • 1c) add meta-webserver

    git clone git://git.openembedded.org/meta-openembedded

Setup Build Configuration
Starting in the ‘poky’ directory, source the environment file to enable bitbake. Then cd to the “conf” directory and edit the configuration files.

  • source oe-init-build-env
    build> cd conf
    build/conf> .

Edit local.conf:

  1. Enable a target platform. The default is the i586 architecture on the qemu86 virtual target. Refer to the Yocto
    Quick start guide to enable different targets and board support packages (BSPs).

  2. Add the netconfd-pro server recipe to the image. Choose either netconfd-pro-iot or netconfd-pro-sdn, but not
    both. Example for netconfd-pro-sdn:

IMAGE_INSTALL_append = ” netconfd-pro-sdn”
NOTE: Starting with the Hardknott release(3.3) of OpenEmbedded, bitbake is using a new
variable override syntax. For Hardknott and later releases, the netconfd-pro server
recipe should be added like this: IMAGE_INSTALL:append = ” netconfd-pro-sdn”

Edit bblayers.conf:

  1. Enable layers needed to build the desired Yocto Linux system variants. The following example shows the layers
    needed for all variants of the netconfd-pro server. The file locations will be different depending on your Yocto
    installation location.

BBLAYERS ?= ” \

  • /home/andy/swdev/poky/meta \
  • /home/andy/swdev/poky/meta-poky \
  • /home/andy/swdev/poky/meta-yocto-bsp \
  • /home/andy/swdev/poky/meta-openembedded/meta-oe \
  • /home/andy/swdev/poky/meta-openembedded/meta-python \
  • /home/andy/swdev/poky/meta-openembedded/meta-networking \
  • /home/andy/swdev/poky/meta-openembedded/meta-webserver \
  • /home/andy/swdev/poky/meta-yumapro \

meta-yumapro Layer
The meta-yumapro tarball contains “yumapro” layer files required to build, install, and integrate a multi-protocol server for Yocto Linux.

Installation

Tarball Naming Conventions
The filename structure of the tarball file is as follows:

  • meta-yumapro-version.gz
    Example Filename:

  • meta-yumapro-20.10-11.tar.gz

Extract to the poky Directory
The files need to be extracted to the poky directory so subtrees can be integrated into the build environment for the server.

Extraction Example:

  • cd poky
    tar xvf meta-yumapro-20.10-11.tar.gz
    Creates a directory named meta-yumapro in the current directory.

Configuration
The only recipes supported at this time are “netconfd-pro-iot” and “netconfd-pro-sdn”. The configuration files for these recipes are located in the directory poky/meta-yumapro/recipes-server/netconfd-pro. There are several features that can be enabled or disabled by uncommenting or commenting a set of directives.
The set of recipe files:

  • netconfd-pro.inc: common recipe file
  • netconfd-pro-iot.inc: IoT configuration recipe file
  • netconfd-pro-sdn.inc: SDN configuration recipe file
  • netconfd-pro-iot_17.10.bb: IoT configuration main recipe file for 17.10 release train
  • netconfd-pro-sdn_17.10.bb: SDN configuration main recipe file for 17.10 release train

References

Read User Manual Online (PDF format)

Loading......

Download This Manual (PDF format)

Download this manual  >>

YumaWorks User Manuals

Related Manuals