Difference between revisions of "Yocto Project"

From eLinux.org
Jump to: navigation, search
m (Talks: formatting)
m (History: make the page slightly more up-to-date)
 
(15 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Incomplete}}
+
== Overview ==
The uninitiated can have trouble figuring out what Yocto actually ''is''. It is an umbrella project/governing group for a set of tools that allow someone to build and use an embedded Linux image.
+
The Yocto Project is a project attempting to improve the lives of developers of customised Linux systems by focusing on having one set of great tools rather than the several sets of mediocre ones that existed when the project was founded. A key part of this is an OpenSource build system based around the [[Open Embedded]] architecture that enables developers to create their own linux distribution specific to their environment. This reference implementation of [[Open Embedded]] is called [[Poky]]
  
The developer downloads a version of [http://www.pokylinux.org/ poky linux] which uses bitbake/[[Open Embedded]] to download and/or build a toolchain, libraries, a kernel, applications, programs, and images.
+
There are several other subprojects under the project umbrella which include Eglibc, pseudo, cross-prelink, eclipse integration ADT/SDK, the matchbox suite of applications and many others.
  
From the Yocto web site:
+
Through OpenEmbedded-Core included as part of Poky, the Yocto Project offers some templates of different sizes (tiny to fullblown), which the developer can adapt (extend or shrink) by the simple means of editing some configuration files. A tool called "bitbake" is used to perform builds and the instructions for the build are called "recipes". This is similar to Gentoo's ebuild system, so adding new packages or modifying packages is quite easy. When bitbake is then run, it takes care of fetching the sources, compiling, packaging and creating the image, but also provides the developer with a toolchain for cross compilation and a Software Developer Kit (SDK) tailored to his own distribution (also referred to as the Application Developer Toolkit (ADT). Depending on the configuration, the created image can then be deployed directly onto the target hardware or emulated via [[qemu]]. Other code such as bootloaders and firmware can optionally be compiled.
<pre>  The Yocto Project is an open source collaboration project that provides templates, tools and methods
 
  to help you create custom Linux-based systems for embedded products regardless of the hardware
 
  architecture.</pre>
 
  
The main web site is at: http://www.yoctoproject.org/
+
A quick overview of Yocto's internal flow can be found here: [http://www.yoctoproject.org/docs/current/yocto-project-qs/figures/yocto-environment.png Yocto Flow (Getting Started Guide) ]
 +
 
 +
The Yocto Project supports x86, x86_64, [[ARM]], [[PowerPC]] and MIPS targets.
 +
 
 +
The project works closely with the upstream projects, both in keeping up with the latest software releases but also ensuring patches such as those for cross compiling are contributed back. The kernel is updated at least once every 6 months for regular releases, but also providing the possibility to run the latest git version of the kernel - and tries to be software and vendor agnostic - thus you can e.g. choose which package manager format you intend to use in your embedded linux distribution (deb, rpm, ipk).
 +
 
 +
Yocto has also an excellent integration into the Eclipse IDE, and allows you to do most of the necessary steps from within Eclipse.
  
 
== Getting Started ==
 
== Getting Started ==
  
 
[http://www.yoctoproject.org/documentation/getting-started Getting Started (from the project website)]
 
[http://www.yoctoproject.org/documentation/getting-started Getting Started (from the project website)]
 +
 +
Another resource is Robert Day's crash course for building yocto for the BeagleBoard.  See:
 +
http://www.crashcourse.ca/wiki/index.php/Yocto_Project_Quick_Start
 +
 +
== FAQs ==
 +
Here are various FAQs about the Yocto project:
 +
 +
* http://www.crashcourse.ca/wiki/index.php/Yocto_FAQ
 +
** Robert Day's FAQ based on question's he's gotten about the Yocto Project
 +
* https://wiki.yoctoproject.org/wiki/How_do_I
 +
** this has a few technical items
 +
* http://www.yoctoproject.org/docs/current/poky-ref-manual/poky-ref-manual.html#faq
 +
** Poky is one sample distribution provided by the Yocto Project, and so understanding how Poky is built and be customized is a good start to understanding Yocto.
 +
* https://wiki.yoctoproject.org/wiki/FAQ
 +
** this has overview stuff, not of a technical nature (reading it will likely just confuse you)
 +
 +
Finally, here is my own (Tim Bird's) introduction and overview:
 +
* [[Yocto Project Introduction]]
  
 
== History ==
 
== History ==
The Linux Foundation announced the Yocto Project in October, 2010 at
+
* The Linux Foundation announced the Yocto Project in October, 2010 at
 
[http://www.embeddedlinuxconference.com/elc_europe10/index.html Embedded Linux Conference Europe 2010]
 
[http://www.embeddedlinuxconference.com/elc_europe10/index.html Embedded Linux Conference Europe 2010]
  
Version 1.0 was released on April 6, 2011.
+
* Version 0.9 was released Oct 2012 at ELCE 2010
 
+
* Version 1.0 was released on April 6, 2011.
Yocto technology derives from Poky Linux, which was a branch of [[Open Embedded]]
+
* Version 1.1 was released on 21 Oct 2011 and was presented during the ELCE 2011
 +
* Version 1.2 was released in April 30, 2012
 +
* Version 1.3 was released somewhere Oct 2012
 +
* ...
 +
* Version 1.7 was released somewhere Oct 2014
  
 
== Talks ==
 
== Talks ==
 
*[[Elc2011BoF_YoctoNotes]]
 
*[[Elc2011BoF_YoctoNotes]]
*[[Media:elce11_stewart.pdf|Developing Embedded Linux Devices Using the Yocto Project and What's New in 1.1]] Talk by David Steward (Intel) at [[ELCE 2011]]
+
*[[Media:elce11_stewart.pdf|Developing Embedded Linux Devices Using the Yocto Project and What's New in 1.1]] Talk by David Steward (Intel) at [[ELCE 2011 Presentations]]
 +
 
 +
* [http://www.youtube.com/embed/W3IXTdajqH4 An Introduction to the Yocto Project 1.1 Release Hob] (Video)
 +
* [http://www.yoctoproject.org/blogs/davest/2011/meet-edison-yocto-project-v1.1-release David's Notes about Yocto 1.1]
 +
* [http://www.yoctoproject.org/documentation/presentations Collection of presentations about yocto]  
 
[[Category:Yocto]]
 
[[Category:Yocto]]
 
[[Category:Embedded Linux Platforms]]
 
[[Category:Embedded Linux Platforms]]

Latest revision as of 05:32, 29 January 2015

Overview

The Yocto Project is a project attempting to improve the lives of developers of customised Linux systems by focusing on having one set of great tools rather than the several sets of mediocre ones that existed when the project was founded. A key part of this is an OpenSource build system based around the Open Embedded architecture that enables developers to create their own linux distribution specific to their environment. This reference implementation of Open Embedded is called Poky

There are several other subprojects under the project umbrella which include Eglibc, pseudo, cross-prelink, eclipse integration ADT/SDK, the matchbox suite of applications and many others.

Through OpenEmbedded-Core included as part of Poky, the Yocto Project offers some templates of different sizes (tiny to fullblown), which the developer can adapt (extend or shrink) by the simple means of editing some configuration files. A tool called "bitbake" is used to perform builds and the instructions for the build are called "recipes". This is similar to Gentoo's ebuild system, so adding new packages or modifying packages is quite easy. When bitbake is then run, it takes care of fetching the sources, compiling, packaging and creating the image, but also provides the developer with a toolchain for cross compilation and a Software Developer Kit (SDK) tailored to his own distribution (also referred to as the Application Developer Toolkit (ADT). Depending on the configuration, the created image can then be deployed directly onto the target hardware or emulated via qemu. Other code such as bootloaders and firmware can optionally be compiled.

A quick overview of Yocto's internal flow can be found here: Yocto Flow (Getting Started Guide)

The Yocto Project supports x86, x86_64, ARM, PowerPC and MIPS targets.

The project works closely with the upstream projects, both in keeping up with the latest software releases but also ensuring patches such as those for cross compiling are contributed back. The kernel is updated at least once every 6 months for regular releases, but also providing the possibility to run the latest git version of the kernel - and tries to be software and vendor agnostic - thus you can e.g. choose which package manager format you intend to use in your embedded linux distribution (deb, rpm, ipk).

Yocto has also an excellent integration into the Eclipse IDE, and allows you to do most of the necessary steps from within Eclipse.

Getting Started

Getting Started (from the project website)

Another resource is Robert Day's crash course for building yocto for the BeagleBoard. See: http://www.crashcourse.ca/wiki/index.php/Yocto_Project_Quick_Start

FAQs

Here are various FAQs about the Yocto project:

Finally, here is my own (Tim Bird's) introduction and overview:

History

  • The Linux Foundation announced the Yocto Project in October, 2010 at

Embedded Linux Conference Europe 2010

  • Version 0.9 was released Oct 2012 at ELCE 2010
  • Version 1.0 was released on April 6, 2011.
  • Version 1.1 was released on 21 Oct 2011 and was presented during the ELCE 2011
  • Version 1.2 was released in April 30, 2012
  • Version 1.3 was released somewhere Oct 2012
  • ...
  • Version 1.7 was released somewhere Oct 2014

Talks