Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

How to use the Yocto Project to develop Embedded Linux

4,667 bytes added, 14:04, 4 May 2018
no edit summary
Because it's a complete embedded Linux development environment with tools, metadata, and documentation - everything you need. The free tools are easy to get started with, powerful to work with (including emulation environments, debuggers, an Application Toolkit Generator, etc.) and they allow projects to be carried forward over time without causing you to lose optimizations and investments made during the project’s prototype phase. The Yocto Project fosters community adoption of this open source technology allowing its users to focus on their specific product features and development
=='''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 Linux distribution. Before starting with yocto, you need to set up the host machine.
Yocto is expecting the host system to have preinstalled packages. Depending on the type of development, the host system will need more or less packages. On Ubuntu / Debian here is a table depending on the type of development.
<pre>{{Message/Information Message|title=TITLE|message=If you dont know the type of development we recommend you to start with Essential}}</pre>
||python-git
|}
=== ===
{{Message/Information Message|title=TITLE|message=
<div class="confluence-information-macro-body">If your build system has the <code class="filename">'''oss4-dev</code> ''' package installed, you might experience QEMU build failures due to the package installing its own custom <code class="filename">/usr/include/linux/soundcard.h</code> on the Debian system. If you run into this situation, either of the following solutions exist:
<pre class="literallayout"> $ sudo apt-get build-dep qemu $ <br data-attributes="%20/">sudo apt-get remove oss4-dev==='''Yocto Project Set up'''===In order to create a custom linux distribution; we will download the yocto project.  git clone <a href="git://git.yoctoproject.org/poky" rel="nofollow">git://git.yoctoproject.org/poky</a>Enter poky folder.  cd pokySwitch to pyro branch.  git checkout pyroDownload meta-openembedded layer and switch to pyro branch.  git clone https://github.com/openembedded/meta-openembedded.git -b pyroDownload meta-qt5 layer and switch to pyro branch.  git clone https://github.com/qt/qt5.git -b pyroDownload meta-isee layer and switch to pyro branch.  git clone git@git.isee.biz:poky-yocto/meta-isee.git -b pyroSource the environment using:  source oe-init-build-envYou should be now inside poky/build folder. Add all the layers into build/conf/bblayers.conf.  BBLAYERS ?= " \<br data-attributes="%20/"> /home/isee/yocto-project/meta \<br data-attributes="%20/"> /home/isee/yocto-project/meta-poky \<br data-attributes="%20/"> /home/isee/yocto-project/meta-yocto-bsp \<br data-attributes="%20/pre">/home/isee/yocto-project/meta-openembedded/meta-oe \<br data-attributes="%20/div">/home/isee/yocto-project/meta-openembedded/meta-multimedia \<br data-attributes="%20/"> /home/isee/yocto-project/meta-openembedded/meta-python \<br data-attributes="%20/"> /home/isee/yocto-project/meta-openembedded/meta-networking \<br data-attributes="%20/"> /home/isee/yocto-project/meta-openembedded/meta-ruby \<br data-attributes="%20/"> /home/isee/yocto-project/meta-qt5 \<br data-attributes="%20/"> /home/isee/yocto-project/meta-isee \<br data-attributes="%20/"> "Create your own custom Linux distribution with the following command.  bitbake igep-minimal-image MACHINE=machine-nameThe following table provides you the information about the comercial names of igep product and the MACHINE= machine-name you need to select when creating the Linux distribution using Yocto. {| class="contenttable sortable"|-!|Commercial Name!|machine-name|-||||igep0002|-||||igep0010|-||||igep0020|-||||igep0030|-||||igep0033|-||||igep0034|-||||igep0035|-||||igep0036|-||||igep0040|-||||igep0045|-||||igep0046sx|-||||igep0046dl|-||||igep0046q|-||||igep0050|-||||igep0055|-||||igep0057|-||||igep0060|-||||igep0146|-||||sopa0000|-||||xgao0030|-||||xmed0030|-||||slnk001x|-||||gran0100|-||||gplc0000|}As an example using this command  bitbake igep-minimal-image MACHINE=igep0034Produces a minimal rootfs, u-boot, Kernel image and DTB for ISEE AM335x products. ==='''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 or even build an image with a Sato or LXDE Desktop. The following table explains the types of images, the description and the aproximated size to give you a hint of what you are building. {| class="contenttable sortable"|-!|Image Name!|Description!|Aproximated Size|-||igep-mrskeltal-image||Only the bare minimum required for a board to boot. This means you will only find poky minimal set of rootfs and kernel modules.|||-||igep-minimal-image||The minimum required for a board to boot plus set of configured tools and utilities aplications to provide user easy access to board capabilities.|||-||igep-basic-image||Based on igep-minimal-image plus Qt5 framework (demos included), Gstreamer1.0, and Pulseaudio.|||-||igep-basicX-image||Based on igep-minimal-image plus X environment.|||-||igep-full-image||Based on igep-basic-image and igep-basicX-image. Provides Qt5 framework (demos included), Gstreamer1.0, Pulseaudio, and X environment.|||-||igep-sato-image||Based on igep-full-image plus a Sato Desktop.|||-||igep-lxde-image||Based on igep-full-image plus LXDE Desktop|||-||igep-custom-image||An empty template image based on igep-mrskeltal-image for users to add anything required to fill their needs||20MB to X MB|}==='''Compatibility 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.
{| class="contenttable sortable"
|-
!|Commercial Name
!|machine-name
|-
||
||igep0002
|-
||
||igep0010
|-
||
||igep0020
|-
||
||igep0030
|-
||
||igep0033
|-
||
||igep0034
|-
||
||igep0035
|-
||
||igep0036
|-
||
||igep0040
|-
||
||igep0045
|-
||
||igep0046sx
|-
||
||igep0046dl
|-
||
||igep0046q
|-
||
||igep0050
|-
||
||igep0055
|-
||
||igep0057
|-
||
||igep0060
|-
||
||igep0146
|-
||
||sopa0000
|-
||
||xgao0030
|-
||
||xmed0030
|-
||
||slnk001x
|-
||
||gran0100
|-
||
||gplc0000
|}
==='''Yocto Project Set up'''===
== ==
 
 
 
==Build Platform Setup Environment==