پروژه Yocto : مجموعه ابزارهای منبع آزاد برای ساختن سیستمهای سفارشی توکار
YOCTO is just another way to build uBoot, Linux Kernel & Filesystem. Difference from the standard direct compilation is, that Freescale now officially adds all their support through YOCTO.
The Yocto project provides a reference build system for embedded Linux, called Poky, which has the BitBake and OpenEmbedded-Core (OE-Core) projects at its base. The purpose of Poky is to build the components needed for an embedded Linux product, namely:
- A bootloader image
- A Linux kernel image
- A root filesystem image
- Toolchains and software development kits (SDKs) for application development
Yocto and OpenEmbedded together form a build framework that creates kernel images, root file system images, and installable packages from source code. The framework uses meta information (called recipes) for downloading/compiling/deploying of software packages on a x86/x86_64 Linux Build Host for a Target Device.
Files used to build an image are stored in layers. Layers contain different types of customizations and come from different sources. Some of the files in a layer are called recipes. Yocto Project recipes contain the mechanism to retrieve source code, build and package a component.
Freescale release layer
Freescale i.MX official BSP build scripts... (Freescale BSP meta layer)
git://git.freescale.com/imx/meta-fsl-bsp-release
Freescale provides an additional layer called the Freescale BSP Release, named meta-fsl-bsp-release, to integrate a new Freescale release with the FSL Yocto Project Community BSP. It contains modifications to both meta-fsl-arm and meta-fsl-demos. These files are copied into the meta-fsl-arm/conf/machine directory by the fsl-setup-release.sh script.
Yocto Project community layer for Freescale's ARM platform
Freescale community BSP release build script...
git://git.freescale.com/imx/fsl-arm-yocto-bsp.git
The Freescale Yocto Project Community BSP is a development community outside of Freescale providing support for i.MX boards on the Yocto Project environment.
The differences between FSL Community BSP and Freescale Official Release
Freescale Official Release
The Freescale Official Release is intended to provide a static base for Freescale to test and validate the BSP modules with Freescale evaluation boards, and it is developed internally by Freescale. The set of supported boards vary from release to release and is listed in the Freescale Official Release notes for the specific version. The release points to a static revision of every included layer. Therefore, the release does not receive updates and bug fixes.
FSL Community BSP
The FSL Community BSP is a reference system that can be used as a base for products and is an open project that accepts contributions from the community. It supports a wide range of boards which range from Freescale evaluation boards (meta-fsl-arm layer) to third-party boards (meta-fsl-arm-extra). The release is a “moving target”, so there are updates on top of the released source code, such as the addition of new features and bug fixes.
BitBake – A Make-Like Build Tool to process metadata and generate packages...
BusyBox –A small footprint version of the Linux core utilities...
OpenEmbedded – A collection (database) of recipe (.bb) and configuration (.conf) files, suitable for embedded devices...
uClibc – Small C Standard Library
Recipe – A file with set of instructions (like makefiles) that is read and processed by the build engine (BitBake)...
Layer – A bundle of metadata (recipes + conf files)
QEMU – An open source machine emulator and virtualizer...