Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

How to use the Yocto Project to develop Embedded Linux

5,036 bytes added, 09:59, 20 July 2018
no edit summary
=='''How to build Poky custom Poky Linux distribution'''==
Yocto will be built on a host machine targeting and igep board. It will use Poky software to generate the custom linux distribuion distribution Linux distribution. Before starting with yocto, you need to set up the host machine.
MACHINE=machine-name DISTRO=distro-name bitbake igep-minimal-image
The following table provides you the information about the comercial commercial names of igep product and the MACHINE= machine-name you need to select when creating the Linux distribution using Yocto.
{| class="contenttable sortable"
| style="height: 22px;"|igep0046q
|- style="height: 22px;"
| style="height: 22px;"|IGEPv5
| style="height: 22px;"|igep0050
|- style="height: 22px;"
==='''Types of custom Poky Linux Distributions'''===
Meta-isee is the layer that provides you the support to build your own custom poky linux distribution. In fact it provides you a set of predefined images that will build some components, like focusing on building the minimal set of components required to boot an igep board or building more complicated distributions with X capabilites support or even build an image with a Sato or LXDE Desktop.
The following table explains the types of images, the description and the aproximated approximated size to give you a hint of what you are building.
{{Message/Information Message|title=TITLE|message= <span style="color: #ff0000;">When you are bitbaking an image with X support  you '''MUST''' set DISTRO=distro-name compatible with X environment.</span>}}
 
| style="width: 124px;"|20MB to X MB
|}
=== ======'''Compatibility Availability Chart'''===
Not all images are compatibles with all the igep machine product. Here is the compatibility chart to guide you what you can/can't build depending on your igep board.
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0002
| style="border-color: #000000; background-color: #82fa58fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0010
| style="border-color: #000000; background-color: #82fa58fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0020
| style="border-color: #000000; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0030
| style="border-color: #000000; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #82fa58; text-align: center; vertical-align: middle;"| | style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0032
| style="border-color: #000000; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; height: 22px; background-color: #82fa58; text-align: center; vertical-align: middle;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0033
| style="border-color: #000000; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0034
| style="border-color: #000000; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0035
| style="border-color: #000000; background-color: #82fa58fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0036
| style="border-color: #000000; background-color: #82fa58fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0040
| style="border-color: #000000; background-color: #82fa58fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0045
| style="border-color: #000000; background-color: #82fa58fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0046sx
| style="border-color: #000000; background-color: #82fa58fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0046dl
| style="border-color: #000000; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0046q
| style="border-color: #000000; background-color: #82fa58; text-align: center; vertical-align: middle;"| 
| style="border-color: #000000; height: 22px; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0050
| style="border-color: #000000; background-color: #82fa58fc3f3f; height: 22px; text-align: center; vertical-align: middle;"| | style="border-color: #000000; height: 22px; background-color: #fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0055
| style="border-color: #000000; background-color: #82fa58fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0057
| style="border-color: #000000; background-color: #82fa58fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #fc3f3f; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 3.93311px3px;"| style="border-color: #000000; text-align: center; vertical-align: middle; height: 3.93311px3px;"|igep0060| style="border-color: #000000; background-color: #82fa58fc3f3f; text-align: center; vertical-align: middle; height: 3px;"| | style="border-color: #000000; height: 3px; background-color: #fc3f3f; text-align: center; vertical-align: middle; height: 3.93311px;"| | style="border-color: #000000; text-align: center; vertical-align: middle; height: 3.93311px3px;"| | style="border-color: #000000; text-align: center; vertical-align: middle; height: 3.93311px3px;"| | style="border-color: #000000; text-align: center; vertical-align: middle; height: 3.93311px3px;"| | style="border-color: #000000; text-align: center; vertical-align: middle; height: 3.93311px3px;"| | style="border-color: #000000; text-align: center; vertical-align: middle; height: 3.93311px3px;"| | style="border-color: #000000; text-align: center; vertical-align: middle; height: 3.93311px3px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|igep0146
| style="border-color: #000000; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
|- style="height: 22px;"
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"|sopa0000
| style="border-color: #000000; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| | style="border-color: #000000; height: 22px; background-color: #82fa58; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
| style="border-color: #000000; text-align: center; vertical-align: middle; height: 22px;"| 
=='''How to develop with Yocto ProjectSDK'''==In order for developers to use Yocto Project SDK, Yocto Project must be set up, all needed meta-layers downloaded and configured in bblayers.conf. Also target image should be built correctly.   ==='''What is Yocto Project SDK'''===Yocto Project offers a set of tools for developers to create applications (that will run in Yocto created Linux Distributions ) from powerful Host machines. This is also called cross compiling. Yocto Project SDK allows developers to cross compile, debug, and test applications. In fact Yocto Project SDK provides: <div class="itemizedlist">* <span class="emphasis">''Cross-Development Toolchain''</span>: This toolchain contains a compiler, debugger, and various miscellaneous tools.* <span class="emphasis">''Libraries, Headers, and Symbols''</span>: The libraries, headers, and symbols are specific to the image (i.e. they match the image).* <span class="emphasis">''Environment Setup Script''</span>: This <code class="filename">*.sh</code> file, once run, sets up the cross-development environment by defining variables and preparing for SDK use. The SDK is installed on any machine and can be used to develop applications, images, and kernels. An SDK can even be used by a QA Engineer or Release Engineer. The fundamental concept is that the machine that has the SDK installed does not have to be associated with the machine that has the Yocto Project installed. [[File:sdk-environment.png|center|869x429px|border]] A developer can independently compile and test an object on their machine and then, when the object is ready for integration into an image, they can simply make it available to the machine that has the Yocto Project. Once the object is available, the image can be rebuilt using the Yocto Project to produce the modified image.   ==='''Why use Yocto Project SDK'''===</div>Normally Target systems specifications are quite restricted, specifically in embedded target systems. It is convenient for the developer, in order to save time, to develop, compile and test their applications on their host platform which is usually a powerful machine. This is the basic of the cross compiling process. Later an emulator is used to test the application.   ==='''How to build ISEE Yocto Project SDK'''===Developers can build ISEE Yocto Project SDK in order to use it at their convenience. First of all a SDK installed will be produced and then developers will user the SDK installer in their Host machines to install all ISEE Yocto Project SDK components. To produce the SDK installer run this command after sourcing Yocto environment (source oe-init-build-env).  bitbake -c populate_sdk igep-image-nameIt is also posible to build an extensible SDK with  bitbake -c populate_sdk_ext igep-image-nameThe resulting SDK installer script can be found in yocto project build folder ./tmp/deploy/sdk/*.sh ==='''How to use ISEE Yocto Project SDK'''===In order to use the ISEE Yocto Project SDK first of all the Installer script must be run in the Host machine where it is intended to develop the software:  ./isee-release-no-x11-glibc-x86_64-igep-basic-image-cortexa9hf-neon-toolchain-2.3.3.shOnce it is installed the environment must be set up with the source script in  After the environment is set up developers can already compile and debug aplications. It can also be used qemu emulator available in  folder to emulate target applications.