Timesys Factory Build System Concepts and Terminology

Introduction

The Timesys Factory Build System is a framework for building embedded Linux BSPs and SDK that has been designed to ease and accelerate the software development tasks

This document introduces the inherent concepts and terminology important to getting the most out of and making the best use of the Timesys Factory build system. Some concepts and terminology may be familiar, some may be new, and some may have different meanings than in your previous experience. Whether you are new to embedded Linux or a seasoned embedded Linux professional, we urge you to take a few minutes to read this document.

Throughout this document, important terminology is displayed in bold-italic the first time it is used.

Anatomy of an Embedded Linux System — Important Terminology

In the Timesys Factory build system model, an embedded Linux development environment has five major components:

  1. Target Hardware or just Target: The actual hardware or a development kit (with the processor and all supporting electronics) that runs the software.
  2. Bootloader: The software that runs prior to Linux that is responsible for (some) hardware initialization and loading Linux. Typically, this is uBoot (http://www.denx.de/wiki/U-Boot), but it can be other bootloaders. The specific bootloader is board-dependent.
  3. Kernel: The Linux kernel (http://en.wikipedia.org/wiki/Linux_kernel) and Linux device drivers for hardware peripherals.
  4. Application: The software you develop. Typically, this is what makes your product unique and adds value for your customers.
  5. Root File System or RFS: All other software which will compose your product! This includes open source packages, libraries, and utilities, as well as third-party software.

Collectively, the Kernel and RFS are referred to as the Software Platform or just Platform.

We will avoid using the term ‘middleware’ as it has various meanings throughout the industry and does not add to the understanding of the Timesys Development Environment.

Other Terminology You May Encounter

Here you can find a quick reference list of terms and their meanings

Board Support Package (BSP) — A name that refers to a bootable kernel and minimal set of packages.

Manifest — The image manifest contains all of the Yocto recipes that would be built by the image target, their versions, and already patched CVEs, along with other BSP info such as the distro, version, layers included, and the selected machine.

Software Development Kit (SDK) — A downloadable tarball that contains the platform and toolchain. The SDK enables application programmers to get started quickly.

Starting Point — Simply put, a ‘starting point’ is Timesys’ terminology for a pre-built BSP/SDK. A starting point is a platform and toolchain that has been specified by Timesys and is pre-built and available for download from the Timesys LinuxLink Web site. In some cases, these are intended to be small, with the minimal resources necessary to write and debug a C program. In other cases, they can be quite rich with a GUI-based demo program.

Workorder — A set of specifications for your platform. This is the Factory build configuration. A workorder defines all the Linux components that are in the final, functional product including kernel, toolchain, and packages as well as package license information, and it contains your selected root filesystem optimization and build output options.

Tools

Cross-build Environment

The Timesys Development Environment tools are designed and intended to be used in a cross-build environment. This means that the compilers, linkers, and other programs that create the executables for the target run on an x86, Linux workstation (aka Host). LinuxLink tools are supported on several distributions (e.g., Ubuntu®, Fedora™) are supported, as well as a Linux guest in VirtualBox® on Windows® (http://www.virtualbox.org). The Factory Build Engine (described later) can run on an x86 Linux server as well.

Toolchain

The term toolchain refers to the set of programs (compiler, linker, etc.) and libraries necessary to cross-build your system. The contents of the toolchain are dependent on many factors including the “C” library (glibc or uClibc) as well your product features (e.g. X11, audio support, etc.). Each of the libraries necessary for building has a corresponding run-time library which needs to be included in the RFS. Timesys’ Factory (see ‘Factory,’ below) builds the complete required toolchain and includes the required run-time libraries automatically based on your RFS selections, ensuring that runtime and development environments are always in sync.

Factory

Timesys’ Factory is the tool that builds the Platform (recall that the ‘Platform’ is the Kernel and RFS), and it is used in two forms: 1) Web (cloud) and 2) Desktop (locally). The Factory can be thought of as having five components: 1) Build Engine, 2) Advice Engine, 3) Update Engine, 4) Web User Interface (UI), and 5) Desktop User Interface (UI).

  1. Build Engine — This is the set of programs, scripts, and meta-data that are used for fetching required sources, patching, cross-building, formatting, and packaging for booting. The file that contains the specifications for your custom platform is known as a workorder.
  2. Advice Engine — A set of recommendations that have been created by Timesys experts based upon experience and that have been coded and automated in a database. This advice goes beyond package dependencies and provides checks on the rationality of your choices.
  3. Update Engine — A proactive system that simplifies package updates management and integration.
  4. Web User Interface (UI) — A wizard-like interface on the Timesys LinuxLink Web site that is accessed by your browser and guides you through the choices and options for building your custom platform.
  5. Desktop User Interface (UI) — A wizard-like interface also used to choose packages and options. As the name indicates, it runs on your Linux host. The Desktop UI provides more detailed choices for package configuration and building than the Web UI.

Web Factory

The Web Factory refers to the cloud-based Timesys-hosted build environment. You can access the Web Factory UI via your browser at the Timesys LinuxLink Web site (https://linuxlink.timesys.com/). Once there, create a new build from the Web Builds Dashboard. After you choose and submit your platform options, Timesys servers build the toolchain and platform which are then provided to you via a download link, along with the workorder for your platform. Advice and Update Notifications are available within the Web UI.

Desktop Factory

The Desktop Factory provides the greatest degree of selection and customization options for configuring the toolchain and packages for your platform. You can use it to build a reference BSP / SDK or a complete embedded distribution.

Desktop Factory consists of the Desktop Factory UI and Build Engine, which are installed on your local “desktop” Linux workstation. The Desktop Factory accesses the Advice Engine and Update Engine via Web services from the Timesys servers.

* Desktop Factory requires a support contract.