<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.yoctoproject.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rpjday</id>
	<title>Yocto Project - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.yoctoproject.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rpjday"/>
	<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/Special:Contributions/Rpjday"/>
	<updated>2026-04-05T19:11:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=LTS_Background&amp;diff=76137</id>
		<title>LTS Background</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=LTS_Background&amp;diff=76137"/>
		<updated>2020-08-09T12:09:01Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: /* Please see Realase and LTS process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=&amp;lt;span style=&amp;quot;color: red; Text-decoration:&amp;quot;&amp;gt; This is background info only &amp;lt;/span&amp;gt;=&lt;br /&gt;
=&amp;lt;span style=&amp;quot;color: red; text-decoration:&amp;quot;&amp;gt;Please see [https://wiki.yoctoproject.org/wiki/LTS Release and LTS process]&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Fall 2019, the YP TSC put together a proposal about how the project could move forward with an LTS. The document is that proposal which is retained here as it answers some of the questions about how and why the project needs an LTS. There were amendments made after discussion and the main LTS is definitive in that regard, this page is here to provide some of the background.&lt;br /&gt;
&lt;br /&gt;
= Yocto Project Long Term Support (LTS) plan proposal= &lt;br /&gt;
&lt;br /&gt;
== Current Position ==&lt;br /&gt;
The Yocto Project is very much in favour of having some form of extended support for certain releases. The main reason this has not happened so has is due to resource constraints. We currently struggle to keep stable releases maintained for their 1-2 year lifespan, the project is therefore reluctant to committing to more work without resources to do it.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
Yocto project releases cadence is every six months (twice a year), as covered on the wiki https://wiki.yoctoproject.org/wiki/Releases. Every release consists of:&lt;br /&gt;
&lt;br /&gt;
* Major component upgrades&lt;br /&gt;
** Includes ABI/API changes&lt;br /&gt;
** Include major version upgrades&lt;br /&gt;
** New features&lt;br /&gt;
* Bug fixes reported to yocto project&lt;br /&gt;
* New yocto project tooling features&lt;br /&gt;
** Test infrastructure changes&lt;br /&gt;
** Automation changes&lt;br /&gt;
* New architectures added/removed&lt;br /&gt;
&lt;br /&gt;
This works great for keeping a tighter integration loop with upstream.&lt;br /&gt;
&lt;br /&gt;
== Current Stable Releases ==&lt;br /&gt;
The project maintains stable releases for 1 year and then it moves to community support, see&lt;br /&gt;
https://wiki.yoctoproject.org/wiki/Stable_branch_maintenance which receives no testing on AB and occasional patches for really breaking things but no regular bug fixes and security updates. No major ABI breaking patches are applied to stable releases. Occasional bug fix only version bumps for packages are accepted after review. The current stable policy says that there are acceptable and unacceptable changes:&lt;br /&gt;
&lt;br /&gt;
Acceptable:&lt;br /&gt;
* Security and CVE fixes&lt;br /&gt;
* Fixes for bugs&lt;br /&gt;
* Fixes so codebase works with newly released distros&lt;br /&gt;
* Bug fix only version upgrades (especially where follows upstream policy)&lt;br /&gt;
&lt;br /&gt;
Unacceptable:&lt;br /&gt;
* General version upgrades&lt;br /&gt;
* New Features&lt;br /&gt;
&lt;br /&gt;
== Long Term Stable (LTS) for Yocto Project ==&lt;br /&gt;
There has been rising requirement and interest amongst the project’s members and its end-users for supporting a given release for longer than what a stable release is maintained. The following is a proposal for what the project could do with some thoughts on the specific decisions the project would have to make to allow this to happen. There are specific choices which would have to be made. Maintaining such an LTS will require resourcing and its likely that the people providing the resourcing will have influence over the final choices.&lt;br /&gt;
Term&lt;br /&gt;
The term is not yet determined but in principle could be anywhere between 3-5 years, maybe even longer, it ultimately depends on people being available to do the work. There are downstream projects which are relying on Yocto project releases and has a longer life cycle but are not using commercial OS Vendor solutions e.g. AGL, Microsoft Azure, RDK etc. They all are following their own cadence of deploying a given version of Yocto project release and do not join efforts since its completely driven by their own requirements. This would be an opportunity for the project to converge these projects onto a LTS release and create a large enough developer community to support a given LTS release.&lt;br /&gt;
;Proposal:&lt;br /&gt;
:We start with a 3 year plan but this could extend if there was demand and support for maintaining it. Would need dedicated commitment of resources at the start and later a commitment to extend.&lt;br /&gt;
&lt;br /&gt;
== Picking an LTS ==&lt;br /&gt;
This is hard with many different viewpoints. The first decision is whether to choose an LTS in advance or afterwards, elevating an existing stable release to LTS status. There are pros and cons to both. As a point of reference, the kernel has tried both but settled on deciding in advance.&lt;br /&gt;
;Proposal:&lt;br /&gt;
:We pick and announce an LTS in advance as this stands a better chance of people being able to align on it. This also allows the release to have focus on ensuring component choices have better long term support where possible. This implies 3.1 is the first viable candidate.&lt;br /&gt;
&lt;br /&gt;
== Policies within LTS ==&lt;br /&gt;
&lt;br /&gt;
A key question is whether the LTS follows the usual stable policies. In particular, how to handle the kernel versions in the LTS is a key question and could conflict with the “no upgrades” rule usually applied to a stable series. Certainly, an LTS release will likely only maintain LTS kernels. There is a possibility that multiple LTS kernels could exist in the project LTS release. For general recipe upgrades we’d follow stable policy which allows them in limited circumstances where upstream have a stable series or stable support model.&lt;br /&gt;
Whilst a “master first” policy is essential, for practicality not all stable intermediate releases may receive updates the LTS gets.&lt;br /&gt;
Proposal: We initially support the LTS the original release shipped with. We’d evaluate other similar vintage LTS kernels on a case by case basis depending on the status of upstream support. We need to be aware of the impact on test matrix if additional kernel versions were added and it would need to be resourced. The version of linux-libc-headers would not change to avoid user-space problems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How often would there be an LTS ==&lt;br /&gt;
&lt;br /&gt;
;Proposal:&lt;br /&gt;
:Initially aim for an LTS every 2 years as otherwise there would be too many LTS in parallel. Ultimately it would depend on resourcing.&lt;br /&gt;
&lt;br /&gt;
== Components to be covered ==&lt;br /&gt;
&lt;br /&gt;
The project components to be covered would need to match those included in our standard release process and should be clearly defined. Those components would be:&lt;br /&gt;
* Bitbake&lt;br /&gt;
* OE-Core&lt;br /&gt;
* Meta-yocto&lt;br /&gt;
* yocto-docs&lt;br /&gt;
* (no meta-mingw or meta-gplv2)&lt;br /&gt;
* (no vendor layers)&lt;br /&gt;
&lt;br /&gt;
== Who makes the final decision ==&lt;br /&gt;
&lt;br /&gt;
;Proposal:&lt;br /&gt;
:The TSC is the ultimate decision making body but it would make a decision based on community feedback, people committing resources and input from the member organisations. &lt;br /&gt;
            &lt;br /&gt;
== LTS Maintainership ==&lt;br /&gt;
&lt;br /&gt;
A LTS Maintainer is selected in the same manner as the Stable releases, i.e. the repo owner has the call. There could be more than one person who has ownership of the LTS branch but one may be identified as the point person. The Point person would be the one who handles bugzilla ownership/queries, build, QA and backporting concerns.&lt;br /&gt;
&lt;br /&gt;
The Yocto TSC would retain the QA test result review and release go/nogo decision for any releases.&lt;br /&gt;
&lt;br /&gt;
The LTS maintainer will be responsible in starting and monitoring builds. The Maintainer may have assistance from the community in resolving new issues identified during build and or the QA run.&lt;br /&gt;
&lt;br /&gt;
Backport reviews will be sent to the mailing list for community review.&lt;br /&gt;
A merge request will be sent to the appropriate repo owner once all issues found during the review have been addressed.&lt;br /&gt;
&lt;br /&gt;
== Infrastructure Needed ==&lt;br /&gt;
&lt;br /&gt;
Whilst not immediately obvious and whilst well suited to testing current development, the current autobuilder is not suited to building, maintaining and testing an LTS release. In particular the autobuilder workers are multiple different distros (to get wide test coverage) running “bare-metal” for performance. For security reasons we only have workers which are in current support and have upgrade feeds available. We already struggle with the stable branches in this area.&lt;br /&gt;
&lt;br /&gt;
In order to support an LTS release for the project, we’d propose that new autobuilder software infrastructure needs to be developed to support it. This could run on the same autobuilder hardware but we’d propose that for LTS, only one host distro be used for testing, probably an Ubuntu LTS because its easily available and has a long lifetime. This would most likely be in the form of a container based worker and the specific distro used would be used throughout the lifetime of the project LTS release. This would imply a worker/container combination per LTS release.&lt;br /&gt;
&lt;br /&gt;
Building such software infrastructure is definitely possible but also non-trivial and as such, the work in setting it up needs to be included in any LTS plan.&lt;br /&gt;
&lt;br /&gt;
An alternative could be to have a larger number of nodes running the chosen LTS distro and limiting the LTS builds to those workers. This could have implications for the build/testing time of the release. It could also have an impact on the availability of specialist processing workers such as the native ARM one. Performance testing is another area which would have to be carefully considered as the build time performance testing workers may not run the supported LTS distro.&lt;br /&gt;
&lt;br /&gt;
For simplicity, it is also proposed that only automated testing be used for testing the LTS and that any current manual QA is not performed. The main reason for this is to streamline and simplify the testing and release process to allow regular and frequent updates to the LTS release without dependencies on external factors. Anyone can obviously perform their own testing of the LTS releases in addition to this core automated testing.&lt;br /&gt;
&lt;br /&gt;
;Proposal:&lt;br /&gt;
:* Follow the same testing process as the original release&lt;br /&gt;
:* Only run virtualized tests&lt;br /&gt;
:* Only support one host distro, an Ubuntu LTS as it has right lifespan&lt;br /&gt;
:* Start by aiming to share the infrastructure meaning multiple LTS workers or LTS worker containers depending on funding and implementation&lt;br /&gt;
:* To share infrastructure this implies one autobuilder controller covering both potentially complicating configuration changes for master (likely manageable)&lt;br /&gt;
&lt;br /&gt;
== Resource Requirements/Summary ==&lt;br /&gt;
&lt;br /&gt;
The infrastructure requirements are easier to quantify and would likely consist of 2-3 additional additional worker machines over time for the above proposal as the minimum cost.&lt;br /&gt;
&lt;br /&gt;
The human resource element to track, test (using automation) and merge patches is harder to quantify but at a rough guess, is probably 50% of a person’s time for the lifespan of the LTS.&lt;br /&gt;
&lt;br /&gt;
This assumes that patches for various issues are forthcoming from others as its not realistic to expect one maintainer to handle creation of the various patches needed. The quality of the LTS will be directly related to the number of people working on the patches and them having the time to be able to ensure the patches are of the needed quality.&lt;br /&gt;
&lt;br /&gt;
== Other Considerations ==&lt;br /&gt;
&lt;br /&gt;
* Migration from one LTS to another&lt;br /&gt;
* Package compatibility from one LTS to another&lt;br /&gt;
* Should support subset of machines? Architectures?&lt;br /&gt;
* Prior Art Ubuntu: normal releases every six months (April and October), LTS every two years (every other April). Details and cadence chart at https://ubuntu.com/about/release-cycle.&lt;br /&gt;
* How we identify LTS releases (os-release, tags, wiki), pros and cons to changing&lt;br /&gt;
* If dynamic components such as go or rust are in core we may need a way to allow them to change at a higher rate of change due to the nature of the languages. Likely this can be done through an additional layer alongside the LTS to have the newer versions which users can collaborate on together. LTS “mixin” layers?&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Stable_branch_maintenance&amp;diff=76136</id>
		<title>Stable branch maintenance</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Stable_branch_maintenance&amp;diff=76136"/>
		<updated>2020-08-08T22:08:17Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: /* Stable branch maintainers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Yocto Project maintains stable branches of Poky (OE-Core and BitBake).   Typically, alongside the latest release the previous two releases are also maintained.&lt;br /&gt;
&lt;br /&gt;
== Stable branch maintainers ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Major version&lt;br /&gt;
! Current Version&lt;br /&gt;
! Branch name&lt;br /&gt;
! BitBake version&lt;br /&gt;
! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| 3.2&lt;br /&gt;
| Dev&lt;br /&gt;
| Gatesgarth&lt;br /&gt;
| 1.48&lt;br /&gt;
| Richard Purdie &amp;lt;richard.purdie@linuxfoundation.org&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 3.1&lt;br /&gt;
| 3.1.1&lt;br /&gt;
| Dunfell&lt;br /&gt;
| 1.46&lt;br /&gt;
| Steve Sakoman &amp;lt;steve@sakoman.com&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 3.0&lt;br /&gt;
| 3.0.2&lt;br /&gt;
| Zeus  &lt;br /&gt;
| 1.44&lt;br /&gt;
| Anuj/Armin&lt;br /&gt;
|-style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
| 2.7&lt;br /&gt;
| 2.7.3&lt;br /&gt;
| Warrior &lt;br /&gt;
| 1.42&lt;br /&gt;
| Armin Kuster &amp;lt;akuster808@gmail.com&amp;gt;&lt;br /&gt;
|-style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
| 2.6&lt;br /&gt;
| 2.6.4&lt;br /&gt;
| Thud&lt;br /&gt;
| 1.40&lt;br /&gt;
| Armin Kuster &amp;lt;akuster808@gmail.com&amp;gt;&lt;br /&gt;
|-style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
| 2.5&lt;br /&gt;
| 2.5.3&lt;br /&gt;
| sumo&lt;br /&gt;
| 1.38&lt;br /&gt;
| Armin Kuster &amp;lt;akuster808@gmail.com&amp;gt;&lt;br /&gt;
|- style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
| 2.4&lt;br /&gt;
| 2.4.4&lt;br /&gt;
| rocko&lt;br /&gt;
| 1.36&lt;br /&gt;
| Armin Kuster &amp;lt;akuster808@gmail.com&amp;gt;&lt;br /&gt;
|- style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
|2.3&lt;br /&gt;
|2.3.4&lt;br /&gt;
|pyro&lt;br /&gt;
|1.34&lt;br /&gt;
|Armin Kuster &amp;lt;akuster808@gmail.com&amp;gt;&lt;br /&gt;
|- style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
|2.2&lt;br /&gt;
|2.2.4&lt;br /&gt;
|morty&lt;br /&gt;
|1.32&lt;br /&gt;
|Armin Kuster &amp;lt;akuster808@gmail.com&amp;gt;&lt;br /&gt;
|- style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
|2.1&lt;br /&gt;
|2.1.3&lt;br /&gt;
|krogoth&lt;br /&gt;
|1.30&lt;br /&gt;
|Armin Kuster &amp;lt;akuster808@gmail.com&amp;gt;&lt;br /&gt;
|- style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
|2.0&lt;br /&gt;
|2.0.3&lt;br /&gt;
|jethro&lt;br /&gt;
|1.28&lt;br /&gt;
|Robert Yang &amp;lt;liezhi.yang@windriver.com&amp;gt;&lt;br /&gt;
|- style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
|1.8&lt;br /&gt;
|1.8.2&lt;br /&gt;
|fido&lt;br /&gt;
|1.26&lt;br /&gt;
|Joshua Lock &amp;lt;joshua.g.lock@intel.com&amp;gt;&lt;br /&gt;
|- style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
|1.7&lt;br /&gt;
|1.7.3&lt;br /&gt;
|dizzy&lt;br /&gt;
|1.24&lt;br /&gt;
|Armin Kuster &amp;lt;akuster808@gmail.com&amp;gt;&lt;br /&gt;
|- style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
|1.6&lt;br /&gt;
|1.6.3&lt;br /&gt;
|daisy&lt;br /&gt;
|1.22&lt;br /&gt;
|Saul Wold &amp;lt;sgw@linux.intel.com&amp;gt;&lt;br /&gt;
|- style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
|1.5&lt;br /&gt;
|1.5.4&lt;br /&gt;
|dora&lt;br /&gt;
|1.20&lt;br /&gt;
|Robert Yang &amp;lt;liezhi.yang@windriver.com&amp;gt;&lt;br /&gt;
|- style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
|1.4&lt;br /&gt;
|1.4.3[http://lists.yoctoproject.org/pipermail/yocto/2014-July/020699.html *]&lt;br /&gt;
|dylan&lt;br /&gt;
|1.18&lt;br /&gt;
|Paul Eggleton &amp;lt;paul.eggleton@linux.intel.com&amp;gt;&lt;br /&gt;
|- style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
|1.3&lt;br /&gt;
|1.3.2&lt;br /&gt;
|danny&lt;br /&gt;
|1.16&lt;br /&gt;
|Ross Burton &amp;lt;ross.burton@intel.com&amp;gt;&lt;br /&gt;
|- style=&amp;quot;color: slategray;&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(Versions in &amp;lt;font color=&amp;quot;slategray&amp;quot;&amp;gt;grey&amp;lt;/font&amp;gt; above are no longer actively maintained, but well-tested patches may still be accepted for them.)&lt;br /&gt;
&lt;br /&gt;
== Policies ==&lt;br /&gt;
See [[Stable Release and LTS]].&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Transcript:_creating_one_generic_Atom_BSP_from_another&amp;diff=13939</id>
		<title>Transcript: creating one generic Atom BSP from another</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Transcript:_creating_one_generic_Atom_BSP_from_another&amp;diff=13939"/>
		<updated>2015-01-05T11:59:29Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: Use a bulleted list for easier reading.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note: Though much of this page is still valid and can be useful in many cases, it should be noted that there are now tools that can help with the task of creating new BSPs and managing kernel patches and configuration settings for those BSPs, which you may want to consider first.  Detailed documentation and walk-throughs using those tools are available at the following pages:&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.yoctoproject.org/wiki/Yocto_BSP_Tools_Documentation Yocto BSP Tools Documentation]&lt;br /&gt;
* [https://wiki.yoctoproject.org/wiki/Transcript:_Using_the_Yocto_BSP_tools_to_manage_kernel_patches_and_config_items Transcript: Using the Yocto BSP tools to manage kernel patches and config items]&lt;br /&gt;
* [https://wiki.yoctoproject.org/wiki/Transcript:_Using_the_Yocto_BSP_tools_to_create_a_qemu_BSP Transcript: Using the Yocto BSP tools to create a qemu BSP]&lt;br /&gt;
* [https://wiki.yoctoproject.org/wiki/Transcript:_Using_the_Yocto_BSP_tools_to_create_a_meta-intel_BSP Transcript: Using the Yocto BSP tools to create a meta-intel BSP].&lt;br /&gt;
&lt;br /&gt;
Starting from scratch, we&#039;ll take a relatively generic Atom-based BSP and create another Atom-based BSP from that, that stands a good chance of booting and even booting into graphics, to serve as a starting point for a new BSP.&lt;br /&gt;
&lt;br /&gt;
First set up poky:&lt;br /&gt;
&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto$ git init&lt;br /&gt;
 Initialized empty Git repository in /usr/local/test/yocto/.git/&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto$ git remote add poky git://git.yoctoproject.org/poky.git&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto$ git remote update&lt;br /&gt;
 Fetching poky&lt;br /&gt;
 remote: Counting objects: 106111, done.&lt;br /&gt;
 remote: Compressing objects: 100% (36106/36106), done.&lt;br /&gt;
 remote: Total 106111 (delta 72275), reused 99193 (delta 66808)&lt;br /&gt;
 Receiving objects: 100% (106111/106111), 69.51 MiB | 518 KiB/s, done.&lt;br /&gt;
 Resolving deltas: 100% (72275/72275), done.&lt;br /&gt;
 From git://git.yoctoproject.org/poky&lt;br /&gt;
  * [new branch]      1.1_M1     -&amp;gt; poky/1.1_M1&lt;br /&gt;
  * [new branch]      1.1_M2     -&amp;gt; poky/1.1_M2&lt;br /&gt;
  * [new branch]      bernard    -&amp;gt; poky/bernard&lt;br /&gt;
  * [new branch]      blinky     -&amp;gt; poky/blinky&lt;br /&gt;
  * [new branch]      clyde      -&amp;gt; poky/clyde&lt;br /&gt;
  * [new branch]      elroy      -&amp;gt; poky/elroy&lt;br /&gt;
  * [new branch]      green      -&amp;gt; poky/green&lt;br /&gt;
  * [new branch]      laverne    -&amp;gt; poky/laverne&lt;br /&gt;
  * [new branch]      master     -&amp;gt; poky/master&lt;br /&gt;
  * [new branch]      pinky      -&amp;gt; poky/pinky&lt;br /&gt;
  * [new branch]      purple     -&amp;gt; poky/purple&lt;br /&gt;
  * [new tag]         1.1_M1.final -&amp;gt; 1.1_M1.final&lt;br /&gt;
  * [new tag]         1.1_M2.rc1 -&amp;gt; 1.1_M2.rc1&lt;br /&gt;
  * [new tag]         bernard-5.0.1 -&amp;gt; bernard-5.0.1&lt;br /&gt;
  * [new tag]         pinky-3.1.2 -&amp;gt; pinky-3.1.2&lt;br /&gt;
 From git://git.yoctoproject.org/poky&lt;br /&gt;
  * [new tag]         1.1_M1.rc1 -&amp;gt; 1.1_M1.rc1&lt;br /&gt;
  * [new tag]         1.1_M1.rc2 -&amp;gt; 1.1_M1.rc2&lt;br /&gt;
  * [new tag]         bernard-1.0rc1 -&amp;gt; bernard-1.0rc1&lt;br /&gt;
  * [new tag]         bernard-5.0 -&amp;gt; bernard-5.0&lt;br /&gt;
  * [new tag]         bernard-5.0-alpha -&amp;gt; bernard-5.0-alpha&lt;br /&gt;
  * [new tag]         bernard-5.0rc1 -&amp;gt; bernard-5.0rc1&lt;br /&gt;
  * [new tag]         bernard-5.0rc2 -&amp;gt; bernard-5.0rc2&lt;br /&gt;
  * [new tag]         laverne-4.0 -&amp;gt; laverne-4.0&lt;br /&gt;
  * [new tag]         laverne-4.0.1 -&amp;gt; laverne-4.0.1&lt;br /&gt;
  * [new tag]         m4         -&amp;gt; m4&lt;br /&gt;
  * [new tag]         purple-3.2 -&amp;gt; purple-3.2&lt;br /&gt;
  * [new tag]         purple-3.2.1 -&amp;gt; purple-3.2.1&lt;br /&gt;
 &lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto$ git checkout -b bernard0 poky/bernard&lt;br /&gt;
 Branch bernard0 set up to track remote branch bernard from poky.&lt;br /&gt;
 Switched to a new branch &#039;bernard0&#039;&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto$ git checkout -f&lt;br /&gt;
&lt;br /&gt;
Now check out meta-intel:&lt;br /&gt;
&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto$ mkdir meta-intel&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto$ cd meta-intel&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto/meta-intel$ git init&lt;br /&gt;
 Initialized empty Git repository in /usr/local/test/yocto/meta-intel/.git/&lt;br /&gt;
 &lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto/meta-intel$ git remote add meta-intel git://git.yoctoproject.org/meta-intel.git&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto/meta-intel$ git remote update&lt;br /&gt;
 Fetching meta-intel&lt;br /&gt;
 remote: Counting objects: 1240, done.&lt;br /&gt;
 remote: Compressing objects: 100% (1008/1008), done.&lt;br /&gt;
 remote: Total 1240 (delta 513), reused 85 (delta 27)&lt;br /&gt;
 Receiving objects: 100% (1240/1240), 1.55 MiB | 510 KiB/s, done.&lt;br /&gt;
 Resolving deltas: 100% (513/513), done.&lt;br /&gt;
 From git://git.yoctoproject.org/meta-intel&lt;br /&gt;
  * [new branch]      1.1_M1     -&amp;gt; meta-intel/1.1_M1&lt;br /&gt;
  * [new branch]      1.1_M2     -&amp;gt; meta-intel/1.1_M2&lt;br /&gt;
  * [new branch]      bernard    -&amp;gt; meta-intel/bernard&lt;br /&gt;
  * [new branch]      dvhart/n450 -&amp;gt; meta-intel/dvhart/n450&lt;br /&gt;
  * [new branch]      laverne    -&amp;gt; meta-intel/laverne&lt;br /&gt;
  * [new branch]      master     -&amp;gt; meta-intel/master&lt;br /&gt;
 &lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto/meta-intel$ git checkout -b bernard0 meta-intel/bernard&lt;br /&gt;
 Branch bernard0 set up to track remote branch bernard from meta-intel.&lt;br /&gt;
 Switched to a new branch &#039;bernard0&#039;&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto/meta-intel$ git checkout -f&lt;br /&gt;
&lt;br /&gt;
The crownbay-noemgd is the closest thing we have to generic for Atom-based BSPs, so let&#039;s start with that:&lt;br /&gt;
&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto/meta-intel$ cp -a meta-crownbay/ meta-mymachine&lt;br /&gt;
&lt;br /&gt;
We want to get rid of anything crownbay, but keep and rename anything crownbay-noemgd. So:&lt;br /&gt;
&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto/meta-intel$ rm meta-mymachine/conf/machine/crownbay.conf&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto/meta-intel$ mv meta-mymachine/conf/machine/crownbay-noemgd.conf meta-mymachine/conf/machine/mymachine.conf&lt;br /&gt;
&lt;br /&gt;
Next, let&#039;s look at mymachine.conf and see which, if any, changes we need there.  Aside from the obvious comment changes (lines starting with &#039;#&#039;), there&#039;s nothing to change except for the SRCREV lines at the end, which basically tell the recipe which kernel commits to use.&lt;br /&gt;
&lt;br /&gt;
First, we need to figure out which kernel we&#039;re using.  For our bernard checkout, we see from the line in the mymachine.conf we copied that it&#039;s linux-yocto-stable:&lt;br /&gt;
&lt;br /&gt;
 PREFERRED_PROVIDER_virtual/kernel ?= &amp;quot;linux-yocto-stable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
At the bottom of mymachine.conf, we see:&lt;br /&gt;
&lt;br /&gt;
 SRCREV_machine_pn-linux-yocto_crownbay-noemgd ?= &amp;quot;56fe215d3f1a2cc3a5a26482ac9809ba44495695&amp;quot;&lt;br /&gt;
 SRCREV_meta_pn-linux-yocto_crownbay-noemgd ?= &amp;quot;e1f85a470934a0cf6abde5d95533e74501822c6b&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 SRCREV_machine_pn-linux-yocto-stable_crownbay-noemgd ?= &amp;quot;56fe215d3f1a2cc3a5a26482ac9809ba44495695&amp;quot;&lt;br /&gt;
 SRCREV_meta_pn-linux-yocto-stable_crownbay-noemgd ?= &amp;quot;e1f85a470934a0cf6abde5d95533e74501822c6b&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Since we&#039;re only interested in linux-yocto-stable, we can remove the linux-yocto SRCREVS, but we need to update the SRCREVs for linux-yocto-stable.  So we&#039;ll change the linux-yocto-stable lines above to point to the machine and meta branches we&#039;ll use for our new BSP.&lt;br /&gt;
&lt;br /&gt;
For the initial version of the BSP, we&#039;ll use the &amp;quot;atom-pc-standard&amp;quot; machine branch, since we don&#039;t yet have our own, which is something to do in future iterations (not covered by this transcript - see the other tutorials for further steps).&lt;br /&gt;
&lt;br /&gt;
We can find the atom-pc-standard commit id to use by looking in the linux-yocto-2.6.34 kernel repo at http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-2.6.34/commit/?h=atom-pc-standard for the machine branch and http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-2.6.34/commit/?h=wrs_meta for the meta branch (note that branch names have changed in later repos e.g. linux-yocto, so keep that in mind if upgrading your kernel later.  So the final SRCREVS for our new kernel are:&lt;br /&gt;
&lt;br /&gt;
 SRCREV_machine_pn-linux-yocto-stable_mymachine ?= &amp;quot;72ca49ab08b8eb475cec82a10049503602325791&amp;quot;&lt;br /&gt;
 SRCREV_meta_pn-linux-yocto-stable_mymachine ?= &amp;quot;ec26387cb168e9e0976999b528b5a9dd62e3157a&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You also need to edit the meta-intel/meta-mymachine/conf/layer.conf to remove the crownbay lines and change the crownbay-noemgd lines from:&lt;br /&gt;
&lt;br /&gt;
 BBFILE_COLLECTIONS_crownbay-noemgd += &amp;quot;crownbay-noemgd&amp;quot;&lt;br /&gt;
 BBFILE_PATTERN_crownbay-noemgd := &amp;quot;^${LAYERDIR}/&amp;quot;&lt;br /&gt;
 BBFILE_PRIORITY_crownbay-noemgd = &amp;quot;6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to:&lt;br /&gt;
&lt;br /&gt;
 BBFILE_COLLECTIONS_mymachine += &amp;quot;mymachine&amp;quot;&lt;br /&gt;
 BBFILE_PATTERN_mymachine := &amp;quot;^${LAYERDIR}/&amp;quot;&lt;br /&gt;
 BBFILE_PRIORITY_mymachine = &amp;quot;6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Next, moving to recipes-bsp, we need to remove the crownbay formfactor and rename the crownbay-noemgd formfactor to mymachine:&lt;br /&gt;
&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto/meta-intel$ rm -rf meta-mymachine/recipes-bsp/formfactor/formfactor/crownbay&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto/meta-intel$ mv meta-mymachine/recipes-bsp/formfactor/formfactor/crownbay-noemgd/ meta-mymachine/recipes-bsp/formfactor/formfactor/mymachine&lt;br /&gt;
&lt;br /&gt;
Next, moving to recipes-graphics, remove anything with emgd in it - that&#039;s for crownbay and we don&#039;t care about it.&lt;br /&gt;
&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto/meta-intel$ rm -rf meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-emgd*&lt;br /&gt;
&lt;br /&gt;
We also need to remove the crownbay xorg.conf and rename the crownbay-noemgd xorg.conf:&lt;br /&gt;
&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto/meta-intel$ rm -rf meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto/meta-intel$ mv meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay-noemgd meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/mymachine&lt;br /&gt;
&lt;br /&gt;
This will leave us with a VESA xconfig.&lt;br /&gt;
&lt;br /&gt;
Next, moving to recipes-kernel, we need to make a couple changes to meta-intel/meta-mymachine/recipes-kernel/linux/linux-yocto-stable_git.bbappend.  Again, remove the crownbay lines and change the crownbay-noemgd lines from:&lt;br /&gt;
&lt;br /&gt;
 COMPATIBLE_MACHINE_crownbay-noemgd = &amp;quot;crownbay-noemgd&amp;quot;&lt;br /&gt;
 KMACHINE_crownbay-noemgd  = &amp;quot;crownbay&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 COMPATIBLE_MACHINE_mymachine = &amp;quot;mymachine&amp;quot;&lt;br /&gt;
 KMACHINE_mymachine  = &amp;quot;mymachine&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Finally, don&#039;t forget to update the top-level README to reflect the capabilities of your new BSP.&lt;br /&gt;
&lt;br /&gt;
You should now be able to build and boot a live image.  Before running the bitbake command, however, be sure to source the environment setup script:&lt;br /&gt;
&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto$ source poky-init-build-env yocto-build&lt;br /&gt;
 trz@elmorro:/usr/local/test/yocto/yocto-build$ bitbake poky-image-sato-live&lt;br /&gt;
&lt;br /&gt;
If it doesn&#039;t build, you typed in something wrong.&lt;br /&gt;
&lt;br /&gt;
If it doesn&#039;t boot, you have work to do that no transcript will help you with.&lt;br /&gt;
&lt;br /&gt;
And remember, this transcript was based on bernard, which for this BSP was based on the 2.6.34 &#039;stable&#039; kernel.  You probably don&#039;t want to base a new BSP on 2.6.34.  The BSP this transcript was based on switched to 2.6.34 soon after bernard, so you should be able to look at later version of it or other BSPs for hints on how to switch to a more recent kernel.  This BSP was chosen because the -noemgd branch was the most generic otherwise, and choosing something else would have caused more confusion than the simple text editing done here.&lt;br /&gt;
&lt;br /&gt;
You might be further ahead to try a more recent &#039;milestone&#039; branch of 1.1 to base your new BSP on, which would give you a more up-to-date system, but we used the bernard branch instead because that&#039;s more stable.&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Distribution_Support&amp;diff=13938</id>
		<title>Distribution Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Distribution_Support&amp;diff=13938"/>
		<updated>2015-01-02T10:43:23Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: /* Distribution Support */ Whoops, fix a few minor typos while I&amp;#039;m here.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Distribution Support ==&lt;br /&gt;
===Distribution Support ===&lt;br /&gt;
This page is to maintain a list of distributions validated to work with Yocto Project. Everyone is welcome to add distribution support information into this page.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:  This list is outdated&#039;&#039;&#039;.  Please refer to the documentation for the release you are using for a list of supported distributions.  For example [http://www.yoctoproject.org/docs/1.7/ref-manual/ref-manual.html#detailed-supported-distros  http://www.yoctoproject.org/docs/1.4/ref-manual/ref-manual.html#detailed-supported-distros].&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|| &#039;&#039;&#039;OS version&#039;&#039;&#039; || &#039;&#039;&#039;Host Arch&#039;&#039;&#039; || &#039;&#039;&#039;Status&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|| openSUSE 11.2 &amp;quot;Emerald&amp;quot; || -- || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/centos5.7|CentOS 5.7]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:red;&amp;quot; | FAIL&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/centos6.2|CentOS 6.2]] || 32bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/ubuntu7.04|Ubuntu 7.04]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:red;&amp;quot; | FAIL&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/ubuntu8.04|Ubuntu 8.04 LTS]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:red;&amp;quot; | FAIL&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/ubuntu10.04_32b|Ubuntu10.04]]  || 32bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/ubuntu11.04_64b|Ubuntu11.04]]  || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/fedora13_32b|Fedora 13]] || 32bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
|| Fedora 14 || -- || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/fedora15_32b|Fedora 15]] || 32bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/fedora15_64b|Fedora 15]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/fedora16_64b|Fedora 16]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/fedora17_64b|Fedora 17]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/fedora18_64b|Fedora 18]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/opensuse11.3_32b|OpenSUSE 11.3]] || 32bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/opensuse11.4_64b|OpenSUSE 11.4]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:red;&amp;quot; | FAIL&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/rhel6.2_64b|Red Hat Enterprise Linux Server 6.2]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
|[[Distro/DebianWheezy | Debian Wheezy]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:red;&amp;quot; | FAIL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to add a new entry or additional distro information ===&lt;br /&gt;
* Check if there is already a distribution listed on this page&lt;br /&gt;
* If there is no such distribution, you could add a new entry in above matrix for the distribution and add following information in the sub-page of this entry:&lt;br /&gt;
&lt;br /&gt;
 * Distribution (Fedora15/Ubuntu10.04/Opensuse11.4... etc):&lt;br /&gt;
 * Arch (32/64):&lt;br /&gt;
 * MACHINE (qemux86/qemuarm/qemuppc... etc):&lt;br /&gt;
 * TARGET (core-image-sato/core-image-sato-sdk... etc):&lt;br /&gt;
 * Commit/Release (7eea637db0.../master, 1.0.1 release):&lt;br /&gt;
 * Validated by/DATE (user@email.com - 2011-09-14):&lt;br /&gt;
 * Bug ID: (If the status of your testing is failure, pls. help to file a bug in our bugzilla, http://bugzilla.pokylinux.org)&lt;br /&gt;
&lt;br /&gt;
* If there is already a distribution in above matrix, it&#039;s better for you to check if your test result is consistent with the old result in matrix. You could update the &amp;quot;Status&amp;quot; field and add additional information with above format into sub-page of the distribution.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Distro Testing ==&lt;br /&gt;
=== Distro test coverage ===&lt;br /&gt;
Distro Testing is intended to catch bugs that are distribution specific using the yocto-autobuilder. The tests are all run on identical hardware and with all OS-es updated. The distributions used will be Fedora, Ubuntu, CentOS, OpenSuse with their latest update.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This is the list of the builds that are performed on Distro testing:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;article-table&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Build-set&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Images Built&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Target machine&lt;br /&gt;
|-&lt;br /&gt;
|nightly-world&lt;br /&gt;
|world&lt;br /&gt;
|qemux86&lt;br /&gt;
|-&lt;br /&gt;
|buildtools&lt;br /&gt;
|buildtools-tarball&lt;br /&gt;
|qemux86-64&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;5&amp;quot;|nightly-arm&lt;br /&gt;
|core-image-sato&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;5&amp;quot;|qemuarm&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-dev&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-sdk&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal-dev&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot;|nightly-multilib&lt;br /&gt;
|lib32-core-image-minimal&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot;|qemux86-64&lt;br /&gt;
|-&lt;br /&gt;
|lib32-core-image-sato&lt;br /&gt;
|-&lt;br /&gt;
|lib64-core-image-minimal&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot;|qemux86&lt;br /&gt;
|-&lt;br /&gt;
|lib64-core-image-sato&lt;br /&gt;
|-&lt;br /&gt;
|nightly-qa-systemd&lt;br /&gt;
|core-image-sato&lt;br /&gt;
|qemux86-64&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;10&amp;quot;|nightly-x86&lt;br /&gt;
|core-image-sato&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;5&amp;quot;|qemux86&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-dev&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-sdk&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal-dev&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;5&amp;quot;|qemux86-64&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-dev&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-sdk&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal-dev&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;10&amp;quot;|nightly-x86-64&lt;br /&gt;
|core-image-sato&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;5&amp;quot;|qemux86&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-dev&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-sdk&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal-dev&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;5&amp;quot;|qemux86-64&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-dev&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-sdk&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal-dev&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Distro Machines for 1.7 ===&lt;br /&gt;
Here is the list of the machines that Distro testing is being run against for 1.7&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;article-table&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|OS Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Host Arch&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Status&lt;br /&gt;
|-&lt;br /&gt;
|Ubuntu 14.04 LTS&lt;br /&gt;
|64 bit&lt;br /&gt;
|Pass&lt;br /&gt;
|-&lt;br /&gt;
|Fedora 20&lt;br /&gt;
|64 bit&lt;br /&gt;
|Pass&lt;br /&gt;
|-&lt;br /&gt;
|OpenSuse 13.1&lt;br /&gt;
|64 bit&lt;br /&gt;
|Pass&lt;br /&gt;
|-&lt;br /&gt;
|CentOS 6.5&lt;br /&gt;
|64 bit&lt;br /&gt;
|Pass&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Distribution_Support&amp;diff=13937</id>
		<title>Distribution Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Distribution_Support&amp;diff=13937"/>
		<updated>2015-01-02T10:41:29Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: /* Distribution Support */ Might as well link to the latest web page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Distribution Support ==&lt;br /&gt;
===Distribution Support ===&lt;br /&gt;
This page is to maintain a list of distributions validated work with Yocto. Everyone is welcomed to add distribution support information into this page.&lt;br /&gt;
&lt;br /&gt;
NOTE:  This list is out dated.  Please refer to the documentation for the release your using for a list of supported distributions.  For example [http://www.yoctoproject.org/docs/1.7/ref-manual/ref-manual.html#detailed-supported-distros  http://www.yoctoproject.org/docs/1.4/ref-manual/ref-manual.html#detailed-supported-distros].&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|| &#039;&#039;&#039;OS version&#039;&#039;&#039; || &#039;&#039;&#039;Host Arch&#039;&#039;&#039; || &#039;&#039;&#039;Status&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|| openSUSE 11.2 &amp;quot;Emerald&amp;quot; || -- || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/centos5.7|CentOS 5.7]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:red;&amp;quot; | FAIL&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/centos6.2|CentOS 6.2]] || 32bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/ubuntu7.04|Ubuntu 7.04]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:red;&amp;quot; | FAIL&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/ubuntu8.04|Ubuntu 8.04 LTS]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:red;&amp;quot; | FAIL&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/ubuntu10.04_32b|Ubuntu10.04]]  || 32bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/ubuntu11.04_64b|Ubuntu11.04]]  || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/fedora13_32b|Fedora 13]] || 32bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
|| Fedora 14 || -- || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/fedora15_32b|Fedora 15]] || 32bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/fedora15_64b|Fedora 15]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/fedora16_64b|Fedora 16]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/fedora17_64b|Fedora 17]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/fedora18_64b|Fedora 18]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/opensuse11.3_32b|OpenSUSE 11.3]] || 32bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/opensuse11.4_64b|OpenSUSE 11.4]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:red;&amp;quot; | FAIL&lt;br /&gt;
|-&lt;br /&gt;
||[[Distro/rhel6.2_64b|Red Hat Enterprise Linux Server 6.2]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:green;&amp;quot; | PASS&lt;br /&gt;
|-&lt;br /&gt;
|[[Distro/DebianWheezy | Debian Wheezy]] || 64bit || align=&amp;quot;center&amp;quot; style=&amp;quot;color:red;&amp;quot; | FAIL&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to add a new entry or additional distro information ===&lt;br /&gt;
* Check if there is already a distribution listed on this page&lt;br /&gt;
* If there is no such distribution, you could add a new entry in above matrix for the distribution and add following information in the sub-page of this entry:&lt;br /&gt;
&lt;br /&gt;
 * Distribution (Fedora15/Ubuntu10.04/Opensuse11.4... etc):&lt;br /&gt;
 * Arch (32/64):&lt;br /&gt;
 * MACHINE (qemux86/qemuarm/qemuppc... etc):&lt;br /&gt;
 * TARGET (core-image-sato/core-image-sato-sdk... etc):&lt;br /&gt;
 * Commit/Release (7eea637db0.../master, 1.0.1 release):&lt;br /&gt;
 * Validated by/DATE (user@email.com - 2011-09-14):&lt;br /&gt;
 * Bug ID: (If the status of your testing is failure, pls. help to file a bug in our bugzilla, http://bugzilla.pokylinux.org)&lt;br /&gt;
&lt;br /&gt;
* If there is already a distribution in above matrix, it&#039;s better for you to check if your test result is consistent with the old result in matrix. You could update the &amp;quot;Status&amp;quot; field and add additional information with above format into sub-page of the distribution.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Distro Testing ==&lt;br /&gt;
=== Distro test coverage ===&lt;br /&gt;
Distro Testing is intended to catch bugs that are distribution specific using the yocto-autobuilder. The tests are all run on identical hardware and with all OS-es updated. The distributions used will be Fedora, Ubuntu, CentOS, OpenSuse with their latest update.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
This is the list of the builds that are performed on Distro testing:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;article-table&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Build-set&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Images Built&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Target machine&lt;br /&gt;
|-&lt;br /&gt;
|nightly-world&lt;br /&gt;
|world&lt;br /&gt;
|qemux86&lt;br /&gt;
|-&lt;br /&gt;
|buildtools&lt;br /&gt;
|buildtools-tarball&lt;br /&gt;
|qemux86-64&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;5&amp;quot;|nightly-arm&lt;br /&gt;
|core-image-sato&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;5&amp;quot;|qemuarm&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-dev&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-sdk&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal-dev&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;4&amp;quot;|nightly-multilib&lt;br /&gt;
|lib32-core-image-minimal&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot;|qemux86-64&lt;br /&gt;
|-&lt;br /&gt;
|lib32-core-image-sato&lt;br /&gt;
|-&lt;br /&gt;
|lib64-core-image-minimal&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;2&amp;quot;|qemux86&lt;br /&gt;
|-&lt;br /&gt;
|lib64-core-image-sato&lt;br /&gt;
|-&lt;br /&gt;
|nightly-qa-systemd&lt;br /&gt;
|core-image-sato&lt;br /&gt;
|qemux86-64&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;10&amp;quot;|nightly-x86&lt;br /&gt;
|core-image-sato&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;5&amp;quot;|qemux86&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-dev&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-sdk&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal-dev&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;5&amp;quot;|qemux86-64&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-dev&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-sdk&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal-dev&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;10&amp;quot;|nightly-x86-64&lt;br /&gt;
|core-image-sato&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;5&amp;quot;|qemux86&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-dev&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-sdk&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal-dev&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; rowspan=&amp;quot;5&amp;quot;|qemux86-64&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-dev&lt;br /&gt;
|-&lt;br /&gt;
|core-image-sato-sdk&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal&lt;br /&gt;
|-&lt;br /&gt;
|core-image-minimal-dev&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Distro Machines for 1.7 ===&lt;br /&gt;
Here is the list of the machines that Distro testing is being run against for 1.7&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;article-table&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|OS Version&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Host Arch&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;|Status&lt;br /&gt;
|-&lt;br /&gt;
|Ubuntu 14.04 LTS&lt;br /&gt;
|64 bit&lt;br /&gt;
|Pass&lt;br /&gt;
|-&lt;br /&gt;
|Fedora 20&lt;br /&gt;
|64 bit&lt;br /&gt;
|Pass&lt;br /&gt;
|-&lt;br /&gt;
|OpenSuse 13.1&lt;br /&gt;
|64 bit&lt;br /&gt;
|Pass&lt;br /&gt;
|-&lt;br /&gt;
|CentOS 6.5&lt;br /&gt;
|64 bit&lt;br /&gt;
|Pass&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8342</id>
		<title>BitBake/UserManual</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8342"/>
		<updated>2013-01-09T12:31:10Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: /* Random observations by rday */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The current BitBake User Manual, as of Dec. 31, 2012 is quite out dated.  This page serves a a place to collect ideas for revisions that are required to bring the User Manual up to date.&lt;br /&gt;
&lt;br /&gt;
== Current TOC ==&lt;br /&gt;
&lt;br /&gt;
The chapter layout of the BitBake User Manual is currently:&lt;br /&gt;
&lt;br /&gt;
# Introduction&lt;br /&gt;
# Metadata&lt;br /&gt;
# File Download Support&lt;br /&gt;
# The bitbake command&lt;br /&gt;
&lt;br /&gt;
== What to Include? ==&lt;br /&gt;
&lt;br /&gt;
* As pointed out by rday, the patch function is inherent to oe-core, while the fetch function is inherent to bitbake.  So can one be discussed without the other?&lt;br /&gt;
&lt;br /&gt;
* Concepts:&lt;br /&gt;
**Explain each step in the bitbake process thoroughly.&lt;br /&gt;
**Provide context to commands.  The why, not just the how.&lt;br /&gt;
&lt;br /&gt;
== Lessons to Include ==&lt;br /&gt;
&lt;br /&gt;
* The Bitbaked Hello World&lt;br /&gt;
** Build on the work by [http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/ Eren Turkey] and the original tutorial at the [http://www.openembedded.org/wiki/BitBake_(dev) OpenEmbedded wiki].&lt;br /&gt;
&lt;br /&gt;
* Using the Bitbake Env Utility&lt;br /&gt;
&lt;br /&gt;
== Random observations by rday ==&lt;br /&gt;
&lt;br /&gt;
* While BitBake fetcher supports numerous fetching protocols, only half of them are even used so I would simply ignore the unused ones.  I made a bunch of notes on fetching [http://www.crashcourse.ca/wiki/index.php/BitBake_fetching_and_patching here].&lt;br /&gt;
&lt;br /&gt;
* Section 2.2.1 of current BitBake manual opens with discussion of &amp;quot;VAR_&amp;lt;override&amp;gt;_append&amp;quot; construct; that appears to be simply [http://lists.linuxtogo.org/pipermail/bitbake-devel/2013-January/003984.html broken and unused].  I would ignore it.  The other form, &amp;quot;VAR_append_&amp;lt;override&amp;gt;&amp;quot; is, of course, used massively and should be documented.&lt;br /&gt;
&lt;br /&gt;
* Variables that probably deserve more coverage:&lt;br /&gt;
** &amp;lt;tt&amp;gt;BB_DANGLINGAPPENDS_WARNONLY = &amp;quot;1&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deprecated/weird/dead stuff ==&lt;br /&gt;
&lt;br /&gt;
* All &amp;quot;proto=&amp;quot; should now be replaced with &amp;quot;protocol=&amp;quot; in SRC_URI, although the old form is still allowed but deprecated.&lt;br /&gt;
* All &amp;quot;pnum=&amp;quot; should now be replaced with &amp;quot;striplevel=&amp;quot; in SRC_URI for patches.&lt;br /&gt;
* Current BitBake manual shows a &amp;quot;this=ignored&amp;quot; parm for patches; total mystery what that means, nothing uses it, Chris Larson has no idea what it&#039;s for.  Ignore it.&lt;br /&gt;
&lt;br /&gt;
== Add Hob Documentation ==&lt;br /&gt;
&lt;br /&gt;
With Hob getting better and better, it would seem appropriate to include a chapter in the Bitbake User Manual documenting it.&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8306</id>
		<title>BitBake/UserManual</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8306"/>
		<updated>2013-01-02T13:32:45Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: /* Deprecated/weird/dead stuff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The current BitBake User Manual, as of Dec. 31, 2012 is quite out dated.  This page serves a a place to collect ideas for revisions that are required to the bring the User Manual up to date.&lt;br /&gt;
&lt;br /&gt;
== Current TOC ==&lt;br /&gt;
&lt;br /&gt;
The chapter layout of the BitBake User Manual is currently:&lt;br /&gt;
&lt;br /&gt;
# Introduction&lt;br /&gt;
# Metadata&lt;br /&gt;
# File Download Support&lt;br /&gt;
# The bitbake command&lt;br /&gt;
&lt;br /&gt;
== What to Include? ==&lt;br /&gt;
&lt;br /&gt;
* As pointed out by rday, the patch function is inherent to oe-core, while the fetch function is inherent to bitbake.  So can one be discussed without the other?&lt;br /&gt;
&lt;br /&gt;
* Concepts:&lt;br /&gt;
**Explain each step in the bitbake process thoroughly.&lt;br /&gt;
**Provide context to commands.  The why, not just the how.&lt;br /&gt;
&lt;br /&gt;
== Lessons to Include ==&lt;br /&gt;
&lt;br /&gt;
* The Bitbaked Hello World&lt;br /&gt;
** Build on the work by [http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/ Eren Turkey] and the original tutorial at the [http://www.openembedded.org/wiki/BitBake_(dev) OpenEmbedded wiki].&lt;br /&gt;
&lt;br /&gt;
* Using the Bitbake Env Utility&lt;br /&gt;
&lt;br /&gt;
== Random observations by rday ==&lt;br /&gt;
&lt;br /&gt;
* While BitBake fetcher supports numerous fetching protocols, only half of them are even used so I would simply ignore the unused ones.  I made a bunch of notes on fetching [http://www.crashcourse.ca/wiki/index.php/BitBake_fetching_and_patching here].&lt;br /&gt;
&lt;br /&gt;
* Section 2.2.1 of current BitBake manual opens with discussion of &amp;quot;VAR_&amp;lt;override&amp;gt;_append&amp;quot; construct; that appears to be simply [http://lists.linuxtogo.org/pipermail/bitbake-devel/2013-January/003984.html broken and unused].  I would ignore it.  The other form, &amp;quot;VAR_append_&amp;lt;override&amp;gt;&amp;quot; is, of course, used massively and should be documented.&lt;br /&gt;
&lt;br /&gt;
== Deprecated/weird/dead stuff ==&lt;br /&gt;
&lt;br /&gt;
* All &amp;quot;proto=&amp;quot; should now be replaced with &amp;quot;protocol=&amp;quot; in SRC_URI, although the old form is still allowed but deprecated.&lt;br /&gt;
* All &amp;quot;pnum=&amp;quot; should now be replaced with &amp;quot;striplevel=&amp;quot; in SRC_URI for patches.&lt;br /&gt;
* Current BitBake manual shows a &amp;quot;this=ignored&amp;quot; parm for patches; total mystery what that means, nothing uses it, Chris Larson has no idea what it&#039;s for.  Ignore it.&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8305</id>
		<title>BitBake/UserManual</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8305"/>
		<updated>2013-01-02T13:08:28Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: /* Random observations by rday */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The current BitBake User Manual, as of Dec. 31, 2012 is quite out dated.  This page serves a a place to collect ideas for revisions that are required to the bring the User Manual up to date.&lt;br /&gt;
&lt;br /&gt;
== Current TOC ==&lt;br /&gt;
&lt;br /&gt;
The chapter layout of the BitBake User Manual is currently:&lt;br /&gt;
&lt;br /&gt;
# Introduction&lt;br /&gt;
# Metadata&lt;br /&gt;
# File Download Support&lt;br /&gt;
# The bitbake command&lt;br /&gt;
&lt;br /&gt;
== What to Include? ==&lt;br /&gt;
&lt;br /&gt;
* As pointed out by rday, the patch function is inherent to oe-core, while the fetch function is inherent to bitbake.  So can one be discussed without the other?&lt;br /&gt;
&lt;br /&gt;
* Concepts:&lt;br /&gt;
**Explain each step in the bitbake process thoroughly.&lt;br /&gt;
**Provide context to commands.  The why, not just the how.&lt;br /&gt;
&lt;br /&gt;
== Lessons to Include ==&lt;br /&gt;
&lt;br /&gt;
* The Bitbaked Hello World&lt;br /&gt;
** Build on the work by [http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/ Eren Turkey] and the original tutorial at the [http://www.openembedded.org/wiki/BitBake_(dev) OpenEmbedded wiki].&lt;br /&gt;
&lt;br /&gt;
* Using the Bitbake Env Utility&lt;br /&gt;
&lt;br /&gt;
== Random observations by rday ==&lt;br /&gt;
&lt;br /&gt;
* While BitBake fetcher supports numerous fetching protocols, only half of them are even used so I would simply ignore the unused ones.  I made a bunch of notes on fetching [http://www.crashcourse.ca/wiki/index.php/BitBake_fetching_and_patching here].&lt;br /&gt;
&lt;br /&gt;
* Section 2.2.1 of current BitBake manual opens with discussion of &amp;quot;VAR_&amp;lt;override&amp;gt;_append&amp;quot; construct; that appears to be simply [http://lists.linuxtogo.org/pipermail/bitbake-devel/2013-January/003984.html broken and unused].  I would ignore it.  The other form, &amp;quot;VAR_append_&amp;lt;override&amp;gt;&amp;quot; is, of course, used massively and should be documented.&lt;br /&gt;
&lt;br /&gt;
== Deprecated/weird/dead stuff ==&lt;br /&gt;
&lt;br /&gt;
* All &amp;quot;proto=&amp;quot; should now be replaced with &amp;quot;protocol=&amp;quot;, although the old form is still allowed but deprecated.&lt;br /&gt;
* All &amp;quot;pnum=&amp;quot; should now be replaced with &amp;quot;striplevel=&amp;quot; for patches.&lt;br /&gt;
* Current BitBake manual shows a &amp;quot;this=ignored&amp;quot; parm for patches; total mystery what that means, nothing uses it.&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8304</id>
		<title>BitBake/UserManual</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8304"/>
		<updated>2013-01-02T13:07:53Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: /* Deprecated/weird/dead stuff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The current BitBake User Manual, as of Dec. 31, 2012 is quite out dated.  This page serves a a place to collect ideas for revisions that are required to the bring the User Manual up to date.&lt;br /&gt;
&lt;br /&gt;
== Current TOC ==&lt;br /&gt;
&lt;br /&gt;
The chapter layout of the BitBake User Manual is currently:&lt;br /&gt;
&lt;br /&gt;
# Introduction&lt;br /&gt;
# Metadata&lt;br /&gt;
# File Download Support&lt;br /&gt;
# The bitbake command&lt;br /&gt;
&lt;br /&gt;
== What to Include? ==&lt;br /&gt;
&lt;br /&gt;
* As pointed out by rday, the patch function is inherent to oe-core, while the fetch function is inherent to bitbake.  So can one be discussed without the other?&lt;br /&gt;
&lt;br /&gt;
* Concepts:&lt;br /&gt;
**Explain each step in the bitbake process thoroughly.&lt;br /&gt;
**Provide context to commands.  The why, not just the how.&lt;br /&gt;
&lt;br /&gt;
== Lessons to Include ==&lt;br /&gt;
&lt;br /&gt;
* The Bitbaked Hello World&lt;br /&gt;
** Build on the work by [http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/ Eren Turkey] and the original tutorial at the [http://www.openembedded.org/wiki/BitBake_(dev) OpenEmbedded wiki].&lt;br /&gt;
&lt;br /&gt;
* Using the Bitbake Env Utility&lt;br /&gt;
&lt;br /&gt;
== Random observations by rday ==&lt;br /&gt;
&lt;br /&gt;
* While BitBake fetcher supports numerous fetching protocols, only half of them are even used so I would simply ignore the unused ones.  I made a bunch of notes on fetching [http://www.crashcourse.ca/wiki/index.php/BitBake_fetching_and_patching here].&lt;br /&gt;
&lt;br /&gt;
* Section 2.2.1 of current BitBake manual opens with discussion of &amp;quot;VAR_&amp;lt;override&amp;gt;_append&amp;quot; construct; that appears to be simply [http://lists.linuxtogo.org/pipermail/bitbake-devel/2013-January/003984.html broken and unused].  I would ignore it.  The other form, &amp;quot;VAR_append_&amp;lt;override&amp;gt;&amp;quot;, is used massively, of course and should be documented.&lt;br /&gt;
&lt;br /&gt;
== Deprecated/weird/dead stuff ==&lt;br /&gt;
&lt;br /&gt;
* All &amp;quot;proto=&amp;quot; should now be replaced with &amp;quot;protocol=&amp;quot;, although the old form is still allowed but deprecated.&lt;br /&gt;
* All &amp;quot;pnum=&amp;quot; should now be replaced with &amp;quot;striplevel=&amp;quot; for patches.&lt;br /&gt;
* Current BitBake manual shows a &amp;quot;this=ignored&amp;quot; parm for patches; total mystery what that means, nothing uses it.&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8303</id>
		<title>BitBake/UserManual</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8303"/>
		<updated>2013-01-02T13:06:50Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: /* Random observations by rday */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The current BitBake User Manual, as of Dec. 31, 2012 is quite out dated.  This page serves a a place to collect ideas for revisions that are required to the bring the User Manual up to date.&lt;br /&gt;
&lt;br /&gt;
== Current TOC ==&lt;br /&gt;
&lt;br /&gt;
The chapter layout of the BitBake User Manual is currently:&lt;br /&gt;
&lt;br /&gt;
# Introduction&lt;br /&gt;
# Metadata&lt;br /&gt;
# File Download Support&lt;br /&gt;
# The bitbake command&lt;br /&gt;
&lt;br /&gt;
== What to Include? ==&lt;br /&gt;
&lt;br /&gt;
* As pointed out by rday, the patch function is inherent to oe-core, while the fetch function is inherent to bitbake.  So can one be discussed without the other?&lt;br /&gt;
&lt;br /&gt;
* Concepts:&lt;br /&gt;
**Explain each step in the bitbake process thoroughly.&lt;br /&gt;
**Provide context to commands.  The why, not just the how.&lt;br /&gt;
&lt;br /&gt;
== Lessons to Include ==&lt;br /&gt;
&lt;br /&gt;
* The Bitbaked Hello World&lt;br /&gt;
** Build on the work by [http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/ Eren Turkey] and the original tutorial at the [http://www.openembedded.org/wiki/BitBake_(dev) OpenEmbedded wiki].&lt;br /&gt;
&lt;br /&gt;
* Using the Bitbake Env Utility&lt;br /&gt;
&lt;br /&gt;
== Random observations by rday ==&lt;br /&gt;
&lt;br /&gt;
* While BitBake fetcher supports numerous fetching protocols, only half of them are even used so I would simply ignore the unused ones.  I made a bunch of notes on fetching [http://www.crashcourse.ca/wiki/index.php/BitBake_fetching_and_patching here].&lt;br /&gt;
&lt;br /&gt;
* Section 2.2.1 of current BitBake manual opens with discussion of &amp;quot;VAR_&amp;lt;override&amp;gt;_append&amp;quot; construct; that appears to be simply [http://lists.linuxtogo.org/pipermail/bitbake-devel/2013-January/003984.html broken and unused].  I would ignore it.  The other form, &amp;quot;VAR_append_&amp;lt;override&amp;gt;&amp;quot;, is used massively, of course and should be documented.&lt;br /&gt;
&lt;br /&gt;
== Deprecated/weird/dead stuff ==&lt;br /&gt;
&lt;br /&gt;
* All &amp;quot;proto=&amp;quot; should now be replaced with &amp;quot;protocol=&amp;quot;, although the old form is still allowed but deprecated.&lt;br /&gt;
* All &amp;quot;pnum=&amp;quot; should now be replaced with &amp;quot;striplevel=&amp;quot; for patches.&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8302</id>
		<title>BitBake/UserManual</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8302"/>
		<updated>2013-01-02T13:05:28Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: /* Random observations by rday */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The current BitBake User Manual, as of Dec. 31, 2012 is quite out dated.  This page serves a a place to collect ideas for revisions that are required to the bring the User Manual up to date.&lt;br /&gt;
&lt;br /&gt;
== Current TOC ==&lt;br /&gt;
&lt;br /&gt;
The chapter layout of the BitBake User Manual is currently:&lt;br /&gt;
&lt;br /&gt;
# Introduction&lt;br /&gt;
# Metadata&lt;br /&gt;
# File Download Support&lt;br /&gt;
# The bitbake command&lt;br /&gt;
&lt;br /&gt;
== What to Include? ==&lt;br /&gt;
&lt;br /&gt;
* As pointed out by rday, the patch function is inherent to oe-core, while the fetch function is inherent to bitbake.  So can one be discussed without the other?&lt;br /&gt;
&lt;br /&gt;
* Concepts:&lt;br /&gt;
**Explain each step in the bitbake process thoroughly.&lt;br /&gt;
**Provide context to commands.  The why, not just the how.&lt;br /&gt;
&lt;br /&gt;
== Lessons to Include ==&lt;br /&gt;
&lt;br /&gt;
* The Bitbaked Hello World&lt;br /&gt;
** Build on the work by [http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/ Eren Turkey] and the original tutorial at the [http://www.openembedded.org/wiki/BitBake_(dev) OpenEmbedded wiki].&lt;br /&gt;
&lt;br /&gt;
* Using the Bitbake Env Utility&lt;br /&gt;
&lt;br /&gt;
== Random observations by rday ==&lt;br /&gt;
&lt;br /&gt;
* While BitBake fetcher supports numerous fetching protocols, only half of them are even used so I would simply ignore the unused ones.  I made a bunch of notes on fetching [http://www.crashcourse.ca/wiki/index.php/BitBake_fetching_and_patching here].&lt;br /&gt;
&lt;br /&gt;
* Section 2.2.1 of current BitBake manual opens with discussion of &amp;quot;VAR_&amp;lt;override&amp;gt;_append&amp;quot; construct; that appears to be simply [http://lists.linuxtogo.org/pipermail/bitbake-devel/2013-January/003984.html broken and unused].  I would ignore it.  The other form, &amp;quot;VAR_append_&amp;lt;override&amp;gt;&amp;quot;, is used massively, of course and should be documented.&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8301</id>
		<title>BitBake/UserManual</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8301"/>
		<updated>2013-01-02T12:59:22Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: /* Random observations by rday */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The current BitBake User Manual, as of Dec. 31, 2012 is quite out dated.  This page serves a a place to collect ideas for revisions that are required to the bring the User Manual up to date.&lt;br /&gt;
&lt;br /&gt;
== Current TOC ==&lt;br /&gt;
&lt;br /&gt;
The chapter layout of the BitBake User Manual is currently:&lt;br /&gt;
&lt;br /&gt;
# Introduction&lt;br /&gt;
# Metadata&lt;br /&gt;
# File Download Support&lt;br /&gt;
# The bitbake command&lt;br /&gt;
&lt;br /&gt;
== What to Include? ==&lt;br /&gt;
&lt;br /&gt;
* As pointed out by rday, the patch function is inherent to oe-core, while the fetch function is inherent to bitbake.  So can one be discussed without the other?&lt;br /&gt;
&lt;br /&gt;
* Concepts:&lt;br /&gt;
**Explain each step in the bitbake process thoroughly.&lt;br /&gt;
**Provide context to commands.  The why, not just the how.&lt;br /&gt;
&lt;br /&gt;
== Lessons to Include ==&lt;br /&gt;
&lt;br /&gt;
* The Bitbaked Hello World&lt;br /&gt;
** Build on the work by [http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/ Eren Turkey] and the original tutorial at the [http://www.openembedded.org/wiki/BitBake_(dev) OpenEmbedded wiki].&lt;br /&gt;
&lt;br /&gt;
* Using the Bitbake Env Utility&lt;br /&gt;
&lt;br /&gt;
== Random observations by rday ==&lt;br /&gt;
&lt;br /&gt;
* While BitBake fetcher supports numerous fetching protocols, only half of them are even used so I would simply ignore the unused ones.  I made a bunch of notes on fetching [http://www.crashcourse.ca/wiki/index.php/BitBake_fetching_and_patching here]..&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8300</id>
		<title>BitBake/UserManual</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8300"/>
		<updated>2013-01-02T12:59:08Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: /* Random observations by rday */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The current BitBake User Manual, as of Dec. 31, 2012 is quite out dated.  This page serves a a place to collect ideas for revisions that are required to the bring the User Manual up to date.&lt;br /&gt;
&lt;br /&gt;
== Current TOC ==&lt;br /&gt;
&lt;br /&gt;
The chapter layout of the BitBake User Manual is currently:&lt;br /&gt;
&lt;br /&gt;
# Introduction&lt;br /&gt;
# Metadata&lt;br /&gt;
# File Download Support&lt;br /&gt;
# The bitbake command&lt;br /&gt;
&lt;br /&gt;
== What to Include? ==&lt;br /&gt;
&lt;br /&gt;
* As pointed out by rday, the patch function is inherent to oe-core, while the fetch function is inherent to bitbake.  So can one be discussed without the other?&lt;br /&gt;
&lt;br /&gt;
* Concepts:&lt;br /&gt;
**Explain each step in the bitbake process thoroughly.&lt;br /&gt;
**Provide context to commands.  The why, not just the how.&lt;br /&gt;
&lt;br /&gt;
== Lessons to Include ==&lt;br /&gt;
&lt;br /&gt;
* The Bitbaked Hello World&lt;br /&gt;
** Build on the work by [http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/ Eren Turkey] and the original tutorial at the [http://www.openembedded.org/wiki/BitBake_(dev) OpenEmbedded wiki].&lt;br /&gt;
&lt;br /&gt;
* Using the Bitbake Env Utility&lt;br /&gt;
&lt;br /&gt;
== Random observations by rday ==&lt;br /&gt;
&lt;br /&gt;
* While BitBake fetcher supports numerous fetching protocols, only half of them are even used so I would simply ignore discussing the unused ones.  I made a bunch of notes on fetching [http://www.crashcourse.ca/wiki/index.php/BitBake_fetching_and_patching here]..&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8299</id>
		<title>BitBake/UserManual</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=BitBake/UserManual&amp;diff=8299"/>
		<updated>2013-01-02T12:57:33Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: /* Lessons to Include */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The current BitBake User Manual, as of Dec. 31, 2012 is quite out dated.  This page serves a a place to collect ideas for revisions that are required to the bring the User Manual up to date.&lt;br /&gt;
&lt;br /&gt;
== Current TOC ==&lt;br /&gt;
&lt;br /&gt;
The chapter layout of the BitBake User Manual is currently:&lt;br /&gt;
&lt;br /&gt;
# Introduction&lt;br /&gt;
# Metadata&lt;br /&gt;
# File Download Support&lt;br /&gt;
# The bitbake command&lt;br /&gt;
&lt;br /&gt;
== What to Include? ==&lt;br /&gt;
&lt;br /&gt;
* As pointed out by rday, the patch function is inherent to oe-core, while the fetch function is inherent to bitbake.  So can one be discussed without the other?&lt;br /&gt;
&lt;br /&gt;
* Concepts:&lt;br /&gt;
**Explain each step in the bitbake process thoroughly.&lt;br /&gt;
**Provide context to commands.  The why, not just the how.&lt;br /&gt;
&lt;br /&gt;
== Lessons to Include ==&lt;br /&gt;
&lt;br /&gt;
* The Bitbaked Hello World&lt;br /&gt;
** Build on the work by [http://hambedded.org/blog/2012/11/24/from-bitbake-hello-world-to-an-image/ Eren Turkey] and the original tutorial at the [http://www.openembedded.org/wiki/BitBake_(dev) OpenEmbedded wiki].&lt;br /&gt;
&lt;br /&gt;
* Using the Bitbake Env Utility&lt;br /&gt;
&lt;br /&gt;
== Random observations by rday ==&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Documentation&amp;diff=8210</id>
		<title>Documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Documentation&amp;diff=8210"/>
		<updated>2012-12-15T11:37:23Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: Fix link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See the http://yoctoproject.org/documentation page on the website for more information on this project.&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=Recipe_%26_Patch_Style_Guide&amp;diff=8199</id>
		<title>Recipe &amp; Patch Style Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=Recipe_%26_Patch_Style_Guide&amp;diff=8199"/>
		<updated>2012-12-13T13:36:19Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: &amp;quot;LIC_FILE_CHKSUM&amp;quot; -&amp;gt; &amp;quot;LIC_FILES_CHKSUM&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Motivation =&lt;br /&gt;
&lt;br /&gt;
As with most style guides, the idea here is to have a consistent format and look&lt;br /&gt;
so that when someone new comes to the scene they can learn quickly and get involved.&lt;br /&gt;
This will also help the reviewers and maintainers understand what changes are being&lt;br /&gt;
made by contributors.&lt;br /&gt;
&lt;br /&gt;
= Recipes file format and style =&lt;br /&gt;
&lt;br /&gt;
As a brief summary:&lt;br /&gt;
&lt;br /&gt;
* Consistent whitespace throughout the file&lt;br /&gt;
* File follows a roughly standard variable order&lt;br /&gt;
* Patches are all documented&lt;br /&gt;
* No legacy staging&lt;br /&gt;
* Use BBCLASSEXTEND where possible instead of -native versions&lt;br /&gt;
* No -sdk or -nativesdk packages, use BBCLASSEXTEND&lt;br /&gt;
* pkgconfig .pc files are correct and don&#039;t need manual mangling&lt;br /&gt;
* No custom do_configure for autotooled projects&lt;br /&gt;
* Uses &amp;quot;make install&amp;quot; where at all possible&lt;br /&gt;
** if recipe installs can we patch make install and push upstream&lt;br /&gt;
&lt;br /&gt;
==== Additional MetaData ====&lt;br /&gt;
&lt;br /&gt;
All recipes should aim to specify the following fields where possible:&lt;br /&gt;
&lt;br /&gt;
* DESCRIPTION&lt;br /&gt;
* SUMMARY&lt;br /&gt;
* HOMEPAGE&lt;br /&gt;
* BUGTRACKER&lt;br /&gt;
* LICENSE&lt;br /&gt;
* LIC_FILES_CHKSUM&lt;br /&gt;
* DISTRO_PN_ALIAS&lt;br /&gt;
 &lt;br /&gt;
The DESCRIPTION should give an extended (possibly multi-line) description of what&lt;br /&gt;
recipe provides.&lt;br /&gt;
&lt;br /&gt;
SUMMARY should give an 80 character/one line maximum short summary of the description.&lt;br /&gt;
Note that by default, DESCRIPTION is set to the value of SUMMARY, so if you only have&lt;br /&gt;
a short description to use, just set SUMMARY.&lt;br /&gt;
&lt;br /&gt;
== White Space Management ==&lt;br /&gt;
&lt;br /&gt;
* The correct spacing for a variable is FOO = &amp;quot;BAR&amp;quot;.&lt;br /&gt;
* Use quotes on the right hand side of assignments: FOO = &amp;quot;BAR&amp;quot;&lt;br /&gt;
* Indentation of multiline variables such as SRC_URI is desirable.&lt;br /&gt;
* Most variables such as SRC_URI should use spaces.&lt;br /&gt;
* For multiple-line continuations, use spaces for indenting as developers tend to use different amount of spaces per tab.&lt;br /&gt;
* Shell functions should use tabs&lt;br /&gt;
* Python functions must use spaces (4 spaces per indent).&lt;br /&gt;
* No spaces are allowed after the line continuation symbol&lt;br /&gt;
* Comments inside bb files are allowed using the &#039;#&#039; character at the beginning of a line, but you cannot use a comment within a continuation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== File Naming Convention ==&lt;br /&gt;
&lt;br /&gt;
[[Versioning Policy|Use $packagename_$version.bb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Guidelines for task functions ==&lt;br /&gt;
&lt;br /&gt;
* Put the &#039;&#039;inherit&#039;&#039; declaration after the initial variables are set up and before any custom &#039;&#039;do_&#039;&#039; routines. This is flexible as ordering is often important.&lt;br /&gt;
* If you define custom &#039;&#039;do_&#039;&#039; routines, keep them in the order of the tasks being executed, that is:&lt;br /&gt;
** do_fetch&lt;br /&gt;
** do_unpack&lt;br /&gt;
** do_patch&lt;br /&gt;
** do_configure&lt;br /&gt;
** do_compile&lt;br /&gt;
** do_install&lt;br /&gt;
** do_populate_sysroot&lt;br /&gt;
** do_package&lt;br /&gt;
&lt;br /&gt;
* Don&#039;t use &#039;&#039;cp&#039;&#039; to put files into staging or destination directories, use &#039;&#039;install&#039;&#039; instead.&lt;br /&gt;
* Don&#039;t use &#039;&#039;mkdir&#039;&#039; to create destination directories, use &#039;&#039;install -d&#039;&#039; instead.&lt;br /&gt;
&lt;br /&gt;
== Preferred variable ordering ==&lt;br /&gt;
&lt;br /&gt;
* There is a standard set of variables often found in a .bb file and the preferred order to make the file easily readable to seasoned developers is&lt;br /&gt;
** DESCRIPTION&lt;br /&gt;
** AUTHOR&lt;br /&gt;
** HOMEPAGE&lt;br /&gt;
** SECTION&lt;br /&gt;
** PRIORITY&lt;br /&gt;
** LICENSE&lt;br /&gt;
** DEPENDS&lt;br /&gt;
** SRCDATE&lt;br /&gt;
** SRCREV&lt;br /&gt;
** PV&lt;br /&gt;
** PR&lt;br /&gt;
** SRC_URI&lt;br /&gt;
** S&lt;br /&gt;
** inherit ...&lt;br /&gt;
** build class specific variables, i.e. EXTRA_QMAKEVARS_POST&lt;br /&gt;
** task overrides, i.e. do_configure&lt;br /&gt;
** PACKAGE_ARCH&lt;br /&gt;
** PACKAGES&lt;br /&gt;
** FILES&lt;br /&gt;
** RDEPENDS&lt;br /&gt;
** RRECOMMENDS&lt;br /&gt;
** RSUGGESTS&lt;br /&gt;
** PROVIDES&lt;br /&gt;
** RPROVIDES&lt;br /&gt;
** RCONFLICTS&lt;br /&gt;
&lt;br /&gt;
* Variables related to the same package (*_{PN} and similar) should be kept together and after any PACKAGES definition&lt;br /&gt;
* Variables operating on packages (R* ones so RDEPENDS, RRECOMMENDS, RPROVIDES and so on as well as variables like ALLOW_EMPTY) should always specify the package they apply to, e.g. RDEPENDS_${PN} = &amp;quot;x&amp;quot;, not RDEPENDS = &amp;quot;x&amp;quot;&lt;br /&gt;
* Recipes are sensitive to variable order so the above is a guideline, not an absolute rule.&lt;br /&gt;
&lt;br /&gt;
== Example Recipe ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SUMMARY = &amp;quot;X11 Code Viewer&amp;quot;&lt;br /&gt;
DESCRIPTION = &amp;quot;Allow viewing of X11 code in a fancy way which allows easier \&lt;br /&gt;
               and more productive X11 programming&amp;quot;&lt;br /&gt;
AUTHOR = &amp;quot;John Bazz &amp;lt;john.bazz@example.org&amp;gt;&amp;quot;&lt;br /&gt;
HOMEPAGE = &amp;quot;http://www.example.org/xcv/&amp;quot;&lt;br /&gt;
SECTION = &amp;quot;x11/applications&amp;quot;&lt;br /&gt;
PRIORITY = &amp;quot;optional&amp;quot;&lt;br /&gt;
LICENSE = &amp;quot;GPLv2&amp;quot;&lt;br /&gt;
DEPENDS = &amp;quot;libsm libx11 libxext libxaw&amp;quot;&lt;br /&gt;
SRCDATE = &amp;quot;20600815&amp;quot;&lt;br /&gt;
PV = &amp;quot;0.0+cvs${SRCDATE}&amp;quot;&lt;br /&gt;
PR = &amp;quot;r5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# upstream does not yet publish any release so we have to fetch last working version from CVS&lt;br /&gt;
SRC_URI = &amp;quot;cvs://anonymous@xcv.example.org/cvsroot/xcv;module=xcv \&lt;br /&gt;
           file://toolbar-resize-fix.patch;patch=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
S = &amp;quot;${WORKDIR}/xcv/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
inherit autotools&lt;br /&gt;
&lt;br /&gt;
do_configure_prepend() {&lt;br /&gt;
    rm ${S}/aclocal.m4&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
do_install() {&lt;br /&gt;
    install -d ${D}${bindir}&lt;br /&gt;
    install -d ${D}${mandir}/man1&lt;br /&gt;
&lt;br /&gt;
    install -m 0755 xcv ${D}${bindir}/   &lt;br /&gt;
    install -m 0644 xcv.1.gz ${D}${mandir}/man1/&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
RDEPENDS_${PN} = &amp;quot;shared-mime-info&amp;quot;&lt;br /&gt;
RRECOMMENDS_${PN} = &amp;quot;ctags&amp;quot;&lt;br /&gt;
RCONFLICTS_${PN} = &amp;quot;xcv2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Patches =&lt;br /&gt;
&lt;br /&gt;
Patches (i.e. patch files within the metadata, which are referred to in SRC_URI) should contain information about where they came from and why they are required, as the project moves forward, we want to increase the quality of the data that is made available to the community. This can be done in the recipes and also in the patch files in order to understand why the patch exists and to help future maintainer to understand why it is required. The following information covers how to incorporate and manage patches within the meta-data.&lt;br /&gt;
&lt;br /&gt;
For details on how to format newly created patches or properly submit existing patches for incorporation, please refer to the &#039;&#039;&#039;[[Contribution_Guidelines]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== New style patch application ==&lt;br /&gt;
&lt;br /&gt;
The patch and pnum parameters have been renamed to the more logical apply and striplevel. The apply parameter takes either &amp;quot;yes&amp;quot; or &amp;quot;no&amp;quot; and the striplevel parameter takes an integer (0, 1, etc).&lt;br /&gt;
&lt;br /&gt;
Both parameters are now optional with &amp;quot;sane&amp;quot; defaults.&lt;br /&gt;
&lt;br /&gt;
The apply parameter is optional for SRC_URI lines with patch or diff extensions, which will default to being applied.&lt;br /&gt;
&lt;br /&gt;
The striplevel parameter is also optional with a default striplevel of 1.&lt;br /&gt;
&lt;br /&gt;
Old style parameters (patch and pnum) will continue to work for some time but it would be useful to move to the new style syntax as people are updating other parts of their recipes.&lt;br /&gt;
&lt;br /&gt;
Therefore a patch line would be changed from:&lt;br /&gt;
&lt;br /&gt;
 file://some.patch;patch=1;pnum=2&lt;br /&gt;
&lt;br /&gt;
to: &lt;br /&gt;
&lt;br /&gt;
 file://some.patch;striplevel=2 &lt;br /&gt;
&lt;br /&gt;
and a patch line:&lt;br /&gt;
&lt;br /&gt;
 file://another.diff;patch=1;pnum=1&lt;br /&gt;
&lt;br /&gt;
could be changed to:&lt;br /&gt;
&lt;br /&gt;
 file://another.diff&lt;br /&gt;
&lt;br /&gt;
= License Fields =&lt;br /&gt;
&lt;br /&gt;
== LICENSE Metadata ==&lt;br /&gt;
&lt;br /&gt;
* The LICENSE information in the .bb file needs to be practical.&lt;br /&gt;
* if there&#039;s &amp;quot;or any later version&amp;quot; in GPL related copyright, append &amp;quot;+&amp;quot; then which effectively means below:&lt;br /&gt;
 GPLv2, GPLv2+, GPLv3, GPLv3+, LGPLv2, LGPLv2+, LGPLv2.1, LGPLv2.1+, LGPLv3, LGPLv3+&lt;br /&gt;
* Scripts generated by autotools are not counted for licensing (they are always under GPL)&lt;br /&gt;
* Dual license: GPLv2 | BSD&lt;br /&gt;
* Multiple licenses: GPLv3+ &amp;amp; LGPLv2.1+&lt;br /&gt;
* GPLv3 (correction may be required!)&lt;br /&gt;
 anti-tivoization in GPLv3 only applies to User Products, which per definition is “either &lt;br /&gt;
 (1) a “consumer product”, which means any tangible personal property which is normally &lt;br /&gt;
 used for personal, family, or household purposes, or (2) anything designed or sold for &lt;br /&gt;
 incorporation into a dwelling.&amp;quot;&lt;br /&gt;
* For package changing its license, better to keep new license in .inc file with old license in corresponding .bb file. Take readline for example:&lt;br /&gt;
 readline.inc: LICENSE = &amp;quot;GPLv3+&amp;quot;&lt;br /&gt;
 readline_5.2.bb: LICENSE = &amp;quot;GPLv2&amp;quot;&lt;br /&gt;
* we can treat MIT-style license as &amp;quot;MIT&amp;quot;, meaning that any lawyer can tell it derivatives from standard form, such as below one:&lt;br /&gt;
&lt;br /&gt;
 Permission to use, copy, modify, distribute, and sell this software and its&lt;br /&gt;
 documentation for any purpose is hereby granted without fee, provided that&lt;br /&gt;
 the above copyright notice appear in all copies and that both that copyright&lt;br /&gt;
 notice and this permission notice appear in supporting documentation, and&lt;br /&gt;
 that the name of the copyright holders not be used in advertising or&lt;br /&gt;
 publicity pertaining to distribution of the software without specific,&lt;br /&gt;
 written prior permission.  The copyright holders make no representations&lt;br /&gt;
 about the suitability of this software for any purpose.  It is provided &amp;quot;as&lt;br /&gt;
 is&amp;quot; without express or implied warranty.&lt;br /&gt;
* some package may have complex license, such as wireless-tool:&lt;br /&gt;
 most of files are GPLv2; &lt;br /&gt;
 one part in file is GPLv2+; &lt;br /&gt;
 some of them are dual licensed, such as sample_enc.c under LGPL | MPL | BSD.&lt;br /&gt;
In such case, first ignore the GPLv2+ bit since there is no way you could ever ship the package under say GPLv3 due to many headers being v2 only.&lt;br /&gt;
Since there are files that are GPLv2 only, the answer is no. The LICENSE field is therefore primarily GPLv2 and we can ignore the 2+ bits.&lt;br /&gt;
If they&#039;re a key part, the recipe becomes &amp;quot;GPLv2 &amp;amp; (LGPL | MPL | BSD)&amp;quot;&lt;br /&gt;
* automake may generate COPYING automatically if there&#039;s no such one existing (e.g. Xsettings-client-0.10). A short answer is to add a MIT-style COPYING in poky and then install it before autotools work. See last section for detail description&lt;br /&gt;
* all .bb files require LICENSE fields, even for those Poky specific (which are MIT).&lt;br /&gt;
* ask on the ML for license information for those local files we don&#039;t know their origins&lt;br /&gt;
* Name Sub-Packages with different Licenses&lt;br /&gt;
** LICENSE = &amp;quot;LGPLv2.1 &amp;amp; GPLv3+&amp;quot;&lt;br /&gt;
** LICENSE_libidn = &amp;quot;LGPLv2.1&amp;quot;&lt;br /&gt;
** LICENSE_libidn-tests = &amp;quot;GPLv3+&amp;quot;&lt;br /&gt;
* when listing sub-package license, remember to use names included in PACKAGES instead of source directories, e.g:&lt;br /&gt;
 LICENSE = &amp;quot;GPLv2 &amp;amp; LGPLv2 &amp;amp; BSD &amp;amp; MIT&amp;quot;&lt;br /&gt;
 LICENSE_lib/ext2fs = &amp;quot;LGPLv2&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 Better to use:&lt;br /&gt;
 LICENSE_e2fsprogs-mke2fs = &amp;quot;LGPLv2&amp;quot;&lt;br /&gt;
 because mke2fs is a package name&lt;br /&gt;
----&lt;br /&gt;
* Two variants of the license, the New BSD License/Modified BSD License, and the Simplified BSD License/FreeBSD License have been verified as GPL-compatible free software licenses by the Free Software Foundation, while the original has not been accepted as an open source license(http://en.wikipedia.org/wiki/Original_BSD_license#4-clause)&lt;br /&gt;
* The original BSD license also includes a clause requiring all advertising of the software to display a notice crediting its authors. This &amp;quot;advertising clause&amp;quot; (since disavowed by UC Berkeley) is present in the modified MIT License used by XFree86 (http://en.wikipedia.org/wiki/MIT_License)&lt;br /&gt;
* http://en.wikipedia.org/wiki/Comparison_of_free_software_licenses&lt;br /&gt;
* http://www.opensource.org/licenses/alphabetical&lt;br /&gt;
* http://www.gnu.org/licenses/license-list.html&lt;br /&gt;
&lt;br /&gt;
=== Autotools adds wrong COPYING ===&lt;br /&gt;
&lt;br /&gt;
Autotools add the wrong COPYING license to source code with out COPYING, to ensure that we have the correct and consistent license, add the correct license file to the SRC_URI List and a do_config_prepend().&lt;br /&gt;
&lt;br /&gt;
 SRC_URI = &amp;quot;... \&lt;br /&gt;
         ...&lt;br /&gt;
         file://XXX-license&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 do_configure_prepend() {&lt;br /&gt;
         # This package doesn&#039;t ship with its own COPYING file and &lt;br /&gt;
         # autotools will install a GPLv2 one instead of MIT. Add the&lt;br /&gt;
         # correct license here to avoid confusion.&lt;br /&gt;
         cp ${WORKDIR}/MIT-style-license ${S}/COPYING&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== License Updates ==&lt;br /&gt;
&lt;br /&gt;
There are 2 parts to the licensing update that needs to happen in the recipe files, first is the LICENSE metadata, and the second is the License Verification with LIC_FILES_CHKSUM&lt;br /&gt;
&lt;br /&gt;
=== LICENSE ===&lt;br /&gt;
&lt;br /&gt;
* GPLv2, GPLv2+, GPLv3, GPLv3+, LGPLv2,&lt;br /&gt;
* LGPLv2+, LGPLv2.1, LGPLv2.1+, LGPLv3, LGPLv3+&lt;br /&gt;
* Dual license: GPLv2 | BSD&lt;br /&gt;
* Multiple licenses: GPLv3+ &amp;amp; LGPLv2.1+&lt;br /&gt;
* Name Sub-Packages with different Licenses&lt;br /&gt;
** LICENSE = &amp;quot;LGPLv2.1 &amp;amp; GPLv3+&amp;quot;&lt;br /&gt;
** LICENSE_libidn = &amp;quot;LGPLv2.1&amp;quot;&lt;br /&gt;
** LICENSE_libidn-tests = &amp;quot;GPLv3+&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== LIC_FILES_CHKSUM ===&lt;br /&gt;
If a LICENSE or COPYING file exists, use it along with the license text from one source (header file preferred), if there is inconsistencies (multi versions, different licenses) report this information and then we can determine what the next steps should be to reconcile. Next steps include internal review and working with upstream community to reconcile licenses.&lt;br /&gt;
&lt;br /&gt;
* How to specify the LIC_FILES_CHKSUM variable:&lt;br /&gt;
 LIC_FILES_CHKSUM = “file://COPYING;md5=xxxx \&lt;br /&gt;
                     file://licfile1.txt;beginline=5;endline=29;md5=yyyy \&lt;br /&gt;
                     file://licfile2.txt;endline=50;md5=zzzz \&lt;br /&gt;
                     ...“&lt;br /&gt;
&lt;br /&gt;
* Explanation:&lt;br /&gt;
This file lists all the files with the text of licenses for the source code. It is also possible to specify on which line the license text starts and on which line it ends within that file using the “beginline” &amp;amp; “endline” parameters. If the “beginline” parameter is not specified then license text begins from the 1st line is assumed. Similarly if “endline” parameter is not specified then the license text ends at the last line in the file is assumed. So if a file contains only licensing information, then there is no need to specify “beginline” &amp;amp; “endline” parameters.&lt;br /&gt;
&lt;br /&gt;
The “md5” parameter stores the md5 checksum of the license text. So if the license text changes in any way, it’s md5 sum will differ and will not match with the previously stored md5 checksum. This mismatch will trigger build failure, notifying developer about the license text md5 mismatch, and allowing the developer to review the license text changes. Also note that if md5 checksum is not matched while building, the correct md5 checksum is printed in the build log.&lt;br /&gt;
&lt;br /&gt;
There is no limit on how many files can be specified. But generally every project would need specifying of just one or two files for license tracking. Many projects would have a “COPYING” file which will store all the license information for all the source code files. If the “COPYING” file is valid then tracking only that file would be enough.&lt;br /&gt;
&lt;br /&gt;
* Tips on using the LIC_FILES_CHKSUM variable:&lt;br /&gt;
1.	 if you specify empty or invalid “md5” parameter;  then while building the package, bitbake will give md5 not matched error, and also show the correct “md5” parameter value in the build log &lt;br /&gt;
&lt;br /&gt;
2.	If the whole file contains only license text, then there is no need to specify “beginline” and “endline” parameters.&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=FAQ&amp;diff=7119</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=FAQ&amp;diff=7119"/>
		<updated>2012-08-21T16:51:06Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Yocto Project Public Messages and FAQ&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Last edited: 29 June, 2012&lt;br /&gt;
&lt;br /&gt;
Note: technical FAQs are being added to the end of this document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: What is the Yocto Project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; The Yocto Project provides open source, high-quality infrastructure and tools to help developers create their own custom Linux distributions for any hardware architecture and across multiple market segments. The Yocto Project is intended to provide a helpful starting point for developers. The Yocto Project hosts other projects as well, including the Poky build system, Autobuilder automated build and test system, and the Embedded GLIBC (EGLIBC)C library. The Linux Foundation welcomes the participation of embedded vendors, developers, and other open source projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: What does the Linux Foundation hope to achieve with the Yocto Project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; This year’s annual survey of embedded developers conducted by Embedded Market Forecasters reported that the two primary factors contributing to embedded developers’ choice of Operating Systems (OS) in their designs are cost (44.6%) and the availability of source code (33.1%). These factors have contributed to the explosion of demand for Linux in embedded devices. Until now, embedded vendors and their partners relied on deep customization, requiring developers to wrestle with rapidly changing software and difficult build and maintenance cycles. The Linux Foundation recognized that an opportunity existed for a collaboratively developed, open source project that would build high-quality tools for the embedded Linux ecosystem. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: How does the Yocto Project help Linux reach a wider embedded audience?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; This set of collaboratively developed, open source development tools focused on the embedded segment speeds embedded vendors’ time to market by establishing a shared build infrastructure. This enables Linux across the widest possible spectrum of devices, projects, and platforms. The Yocto Project has a great start on the code required to solve these problems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: Isn’t the Yocto Project just yet another Linux distribution?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; No.  The Yocto Project is a set of tools and components, including a highly configurable build system, that enables developers to construct their own custom distributions, targeted for specific embedded devices. It is not, itself, a Linux distribution. Rather, it is capable of producing an image for a particular embedded device without dictating the composition of the Linux distribution actually built or the hardware architecture used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: What benefits does the Yocto Project provide embedded developers and how is the Yocto Project superior to existing, similar tools?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Unlike build systems based on shell scripts or makefiles, the Yocto Project automates how source is fetched from a variety of upstream sources or from local project repositories. Updating to a new version of a package is often as easy as renaming a recipe file. It has a powerful customization architecture that allows the choice of a wide variety of footprint sizes as well as control over the choice or absence of components such as graphics subsystems, visualization middleware, and services.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A complete set of Linux package versions is specified in the metadata for the project; these versions are known to work correctly together. A robust effort within the project is dedicated to keeping this selection of packages fresh and up-to-date. Unlike other systems, however, only a single version of each package is typically provided with the project at any given time. This ensures that the packages are known to work well together, while providing the freedom to replace them at any time as the needs of a given embedded project mature.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Yocto Project is package-format agnostic - supporting both major Linux packaging systems (.rpm and .deb), as well as the embedded-friendly ipk format. The Yocto Project is also architecturally agnostic - supporting all major embedded architectures: ARM, 32- and 64-bit x86, PowerPC, and MIPS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Yocto Project shares the core build tool (BitBake) and metadata syntax with OpenEmbedded, particularly the core set of components known as openembedded-core. This commonality provides automatic familiarity for developers already using OpenEmbedded. However, the learning curve for getting started with the Yocto Project is less steep. It is easier for new users to create a working distribution with the Yocto Project, and more work is being done currently on this subject with the new Hob graphical user interface.&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
When a distribution is created with the Yocto Project, the build tool creates an application development SDK tailored to that distribution.  This SDK can plug into the Eclipse IDE or it can be run as a command-line development system, complete with cross tools for the host and development tools for the device being developed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: How does the existing embedded workflow compare to the Yocto Project and where can embedded developers save time?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Existing embedded developers have many systems from which to choose. Once a system is chosen and a device&#039;s OS has been created, it can often be very difficult and time consuming to trim the distribution to an appropriate footprint size and assemble a working set of components. Then, for the developer’s next project, if updated components are needed, perhaps for bug fixes, security fixes, or new hardware support, the developer typically must start over, with little ability to re-use prior work on distributions. The Yocto Project solves these problems by providing a single focus for embedded development, requiring less time to get a working and up-to-date distribution together. In addition, if commercial support is desired, it is quite simple to transition to a supporting operating system vendor (OSV) who offers products and services compatible with the Yocto Project. All of the major embedded Linux OSVs are active members of the Yocto Project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: Does the Yocto Project have a special governance model, or is it managed as an open source project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; The Yocto Project is governed as an open source project working group under the auspices of the Linux Foundation. The Yocto Project Advisory Board consists of representatives from the major sponsoring organizations. This group advises the project on direction and provides resources, but all decisions are made by the project&#039;s Maintainers. In addition, there are Interest Groups who drive project feature requirements and provide direction on various aspects of project governance, including finances and infrastructure, and an Architect who coordinates the work of the Maintainers and sets project direction under the guidance of the Advisory Board and its subgroups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: Why not just call this project Poky?  What has changed between Poky and the Yocto Project?&#039;&#039;&#039;&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; The Yocto Project is an umbrella project. Accordingly, it includes a number of projects and resources specifically intended for facilitating development with Linux on embedded devices, and it is an appropriate place for larger organizations to collaborate on the development of build infrastructure for embedded Linux. Poky is one of the the largest components of the Yocto Project, and Poky continues as an independent, open source project developing the build system used by the Yocto Project, as well as by other open source projects. &lt;br /&gt;
&lt;br /&gt;
Poky is a reference system for the Yocto Project, showing how the tools work together. It includes BitBake, openembedded-core, and several other components that anyone can use to start developing with embedded Linux. Poky as a build system is tested by the Yocto Project teams before each release. When you download and use the Yocto Project build system, you are actually downloading Poky and using it to create a distribution that by default is also named Poky. (You can, of course, name your distribution anything you like.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: What is the difference between OpenEmbedded and the Yocto Project?&#039;&#039;&#039;&lt;br /&gt;
  &lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; The Yocto Project and OpenEmbedded share a core collection of metadata called openembedded-core. However, the two organizations remain separate, each with its own focus. OpenEmbedded provides a comprehensive set of metadata for a wide variety of architectures, features, and applications. The Yocto Project focuses on providing powerful, easy-to-use, interoperable, well-tested tools, metadata, and board support packages (BSPs) for a core set of architectures and specific boards. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: Who defines the root filesystem and metadata?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Metadata represents the versions of the various components in a distribution, such as the particular versions of the Linux kernel or libraries. The project supplies an example set of metadata that can generate several example distributions. The actual metadata used for the construction of a custom distribution may be supplied by a commercial vendor or created by an embedded developer. The root filesystem is defined in the metadata for a given build of a distribution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: What are the criteria for baseline metadata?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; The project has selected several major embedded architectures (32- and 64-bit x86, ARM, MIPS, and PowerPC) and footprint sizes (minimal, sato, lsb). Metadata has been created that generates a working build for these architectures and footprints while providing up-to-date and modern versions of the various open source components. We also supply metadata for a number of other components (&amp;quot;world&amp;quot;), which can be pulled into a custom distribution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: What tool sets are included in the Yocto Project?  When will they be available?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; The development toolchain is based on GCC. However, if a project contributor wished to add metadata that uses another toolchain, the project would be happy to consider it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: What about graphics drivers? Will they be validated and integrated?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Yes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: How will graphics IP in GPL drivers be handled?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; The Board Support Packages (BSPs) supplied in the open source project are generally focused on open source code. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: Where do BSPs come from?  Who creates them?  What if they need to include proprietary information?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; A small set of example BSPs has been created and is maintained for our supported architectures. Commercial Linux vendors, OSVs, silicon suppliers, and board vendors may supply their own BSPs. Proprietary information can be delivered in a BSP, and its distribution is handled by the supplier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: Are there tools that allow the removal of a package from the build?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Yes. The recipe for a given distribution can be modified to remove a package.  An end developer may add or remove packages from the specified path in the build process.  This allows for a completely customized Linux distribution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: How can one view the dependencies of packages and the resulting growth in code size as packages are added?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; There are tools within BitBake that enable this level of examination.&lt;br /&gt;
&lt;br /&gt;
“bitbake -g targetname” creates depends.dot and task-depends.dot files in the current directory. These files show which packages and tasks depend on which other packages and tasks and are useful for debugging purposes. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;bitbake -g -u depexp targetname&amp;quot; shows results in a more human-readable, GUI style. A simple mount of the resulting root image will show how much storage space is being used.&lt;br /&gt;
&lt;br /&gt;
In addition, the Hob is a new graphical user interface for BitBake that makes these tools much easier to use. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: What is the path for upgrading just drivers, or for upgrading drivers and related updates to the kernel?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; For a given 6-month release of the Yocto Project, the version of the kernel is frozen 6 weeks before release.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: How often is the kernel updated?  How will we know what version of the kernel is used in any particular Yocto Project release?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Given the release cycle for the kernel, every 6-month release of the Yocto Project usually has a new kernel. Specific announcements are made on the Yocto Project mailing list and blogs. In addition, the release notes for any release contains specific information about which kernel is included with that release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: Is the kernel included in the Yocto Project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Metadata referring to a particular kernel version is provided in Yocto Project releases.  Of course, patches to the kernel (as with any of the source code in the project) can be applied by the developer. The Yocto Project’s kernel patching system is based on &amp;quot;git&amp;quot; and looks for patches in a Git branch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: What are some possible debugging targets?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; QEMU is the target for emulation. Several actual hardware targets are also supported, as well as software emulators for various hardware models as provided by silicon vendors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Q: What is the overall support plan for the Yocto Project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Security patches and critical bug fixes are supplied one release back. No toolchain or kernel changes are allowed for these updates.  Support for longer periods of time can be supplied by commercial OSVs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: What is meant by automated test capability?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; The Yocto Project includes a standard framework for testing on target devices. This allows many existing tests to be reused across projects, reducing rework.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: If a customer wants a commercial distribution of the Yocto Project, are there potential candidates for productization and commercial distribution?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Yes, all major commercial OSVs currently participate in the Yocto Project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: For which software development boards is the Yocto Project validated?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Version 1.1 was validated against:&lt;br /&gt;
* ARM Beagleboard C4 and xM&lt;br /&gt;
* Several Intel Atom SoCs&lt;br /&gt;
* PowerPC - fsl-mpc8315e-rdb&lt;br /&gt;
* MIPS - Ubiquity Networks Router Station Pro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: Is user interface development possible with the Yocto Project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; User Interface development is supported with the Yocto Project. The distribution resulting from a Yocto Project build is just like any other Linux distribution. Developers may build graphical interfaces using frameworks such as Qt, Clutter, or GTK+, all of which are included.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: Is the Yocto Project a project or a product? How much customer effort is required to productize the Yocto Project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; The Yocto Project is an open source project with support provided by the open source community. Products can be created by OSVs who use the Yocto Project as their upstream or by customers who create their own “roll your own” Linux products from the Yocto Project.&lt;br /&gt;
&lt;br /&gt;
== Usage FAQs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: How can I add a package to my project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; As with any complex system, the real answer is &#039;&#039;it depends&#039;&#039;, but of course that is not very helpful. The simplest method for adding a single package to your build is to add a line like this to &amp;lt;code&amp;gt;conf/local.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 IMAGE_INSTALL_append = &amp;quot; package&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Use your own package name in place of &#039;&#039;&#039;package&#039;&#039;&#039;. Note the leading space before the package name.  If you want to add multiple packages, you can&lt;br /&gt;
use multiple lines like the above, or list all packages on a single line with:&lt;br /&gt;
&lt;br /&gt;
 IMAGE_INSTALL_append = &amp;quot; package1 package2 package3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For more information, read [http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#usingpoky-extend-addpkg this chapter in the Yocto Project Development Manual].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: How can I use my own kernel with my project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; If you just want to change the kernel configuration, you can follow [http://www.yoctoproject.org/docs/current/kernel-manual/kernel-manual.html#kernel-configuration these instructions] to edit the stock kernel&#039;s configuration using &amp;lt;code&amp;gt;make menuconfig&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you have a separate kernel you wish to use, the simplest method for adding a new kernel to your build is to create a recipe for it and then add a line like this to &amp;lt;code&amp;gt;conf/local.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &lt;br /&gt;
 PREFERRED_PROVIDER_virtual/kernel= &amp;quot;&amp;lt;i&amp;gt;your-recipe-for-kernel&amp;lt;/i&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You can find several kernel examples in the Yocto Project file&#039;s meta/recipes-kernel/linux directory that you can use as references. [http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#platdev-newmachine-kernel Look here] for more information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: Who may I contact for further questions regarding the Yocto Project?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; For any additional questions, please contact [mailto:jeffrey.osier-mixon@intel.com Jeff Osier-Mixon], the Yocto Project Community Manager.&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
	<entry>
		<id>https://wiki.yoctoproject.org/wiki/index.php?title=How_do_I&amp;diff=5078</id>
		<title>How do I</title>
		<link rel="alternate" type="text/html" href="https://wiki.yoctoproject.org/wiki/index.php?title=How_do_I&amp;diff=5078"/>
		<updated>2012-03-21T09:46:23Z</updated>

		<summary type="html">&lt;p&gt;Rpjday: /* Q: How create my own source download mirror ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Q: How do get the package manager binaries on my target rootfs? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Make sure your image has IMAGE_FEATURES += &amp;quot;package-management&amp;quot; included.&lt;br /&gt;
&lt;br /&gt;
== Q: How create my own source download mirror ? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; &lt;br /&gt;
Make a complete build with these variables set in your local.conf.&lt;br /&gt;
&lt;br /&gt;
SOURCE_MIRROR_URL ?= &amp;quot;file://source_mirror/sources/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
INHERIT += &amp;quot;own-mirrors&amp;quot; &lt;br /&gt;
&lt;br /&gt;
BB_GENERATE_MIRROR_TARBALLS = &amp;quot;1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
After a complete build, copy all _files_(not symlinks) in your download directory to the desired source mirror directory&lt;br /&gt;
Test by setting variables below in local.conf&lt;br /&gt;
SOURCE_MIRROR_URL ?= &amp;quot;file://source_mirror/sources/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
INHERIT += &amp;quot;own-mirrors&amp;quot; &lt;br /&gt;
&lt;br /&gt;
BB_GENERATE_MIRROR_TARBALLS = &amp;quot;1&amp;quot; &lt;br /&gt;
&lt;br /&gt;
BB_NO_NETWORK = &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Q: How do I put yocto on a hard drive? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; bitbake core-image-sato or core-image-sato-sdk&lt;br /&gt;
&lt;br /&gt;
# have a suitable partition on the disk - say partition #3&lt;br /&gt;
# this partition will show up as sde3 on my host machine and sda3 on the atom&lt;br /&gt;
# mkfs.ext3 /dev/sde3&lt;br /&gt;
# mount /dev/sde3 /mnt/target&lt;br /&gt;
# mount -o loop tmp/deploy/images/core-image-sato-sdk.ext3 /mnt/target-ext3&lt;br /&gt;
# cp -a /mnt/target-ext3/* /mnt/target&lt;br /&gt;
# grub-install --recheck --root-directory=/mnt/target /dev/sde&lt;br /&gt;
&lt;br /&gt;
If grub install passed, copy the following to /mnt/target/boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
 set default=&amp;quot;0&amp;quot;&lt;br /&gt;
 set timeout=&amp;quot;30&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 menuentry &#039;Yocto SDK&#039; {&lt;br /&gt;
       insmod part_msdos&lt;br /&gt;
       insmod ext2&lt;br /&gt;
       set root=&#039;(hd0,msdos3)&#039;&lt;br /&gt;
       linux /boot/bzImage root=/dev/sda3&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thats it - this should boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Q: How do I put my recipe into Yocto? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; Let&#039;s use the Hello World example from Section 3.1.2 of the Yocto Project Reference Manual and expand on it.&lt;br /&gt;
&lt;br /&gt;
* In this example, I&#039;ll start with a new meta layer named &amp;quot;meta-jfa&amp;quot; in the Yocto Project files directory, which is named &amp;quot;poky&amp;quot;.  Then, I will add the new recipe and build the image, which is named &amp;quot;core-image-minimal&amp;quot;.  I will build it using the autotooled package option.  Once built, the image will have the “hello” application.&lt;br /&gt;
&lt;br /&gt;
;Step One&lt;br /&gt;
:Create the following directory structure in the ~/poky directory. I&#039;ll use my initials to denote the layer and recipe name:&lt;br /&gt;
 &lt;br /&gt;
 mkdir meta-jfa&lt;br /&gt;
 mkdir meta-jfa/conf&lt;br /&gt;
 mkdir meta-jfa/recipes-jfa&lt;br /&gt;
 mkdir meta-jfa/recipes-jfa/hello&lt;br /&gt;
&lt;br /&gt;
;Step Two&lt;br /&gt;
:Next, to make sure the recipe gets searched and located, I&#039;ll create the layer.conf file in the meta-jfa/conf directory as follows:&lt;br /&gt;
&lt;br /&gt;
 # We have a conf and classes directory, add to BBPATH &lt;br /&gt;
 BBPATH := &amp;quot;${BBPATH}:${LAYERDIR}&amp;quot; &lt;br /&gt;
 # We have a packages directory, add to BBFILES &lt;br /&gt;
 BBFILES := &amp;quot;${BBFILES} ${LAYERDIR}/recipes-*/*/*.bb \ &lt;br /&gt;
            ${LAYERDIR}/recipes-*/*/*.bbappend&amp;quot; &lt;br /&gt;
 BBFILE_COLLECTIONS += &amp;quot;jfa&amp;quot; &lt;br /&gt;
 BBFILE_PATTERN_jfa := &amp;quot;^${LAYERDIR}/&amp;quot; &lt;br /&gt;
 BBFILE_PRIORITY_jfa = &amp;quot;5&lt;br /&gt;
&lt;br /&gt;
;Step Three&lt;br /&gt;
:Now I need to put the recipe (.bb) file into the right directory.  So, I will put the file hello_2.7.bb into the meta-jfa/recipes-jfa/hello directory. I picked version 2.7 of the hello program by going to the gnu site for the application (ftp://ftp.gnu.org/gnu/hello/) and downloading it to checkout the version I wanted to include. hello-2.7.tar.gz is the most current. I downloaded it locally and expanded it to look at the license information.  The hello_2.7.bb file contains the following:&lt;br /&gt;
&lt;br /&gt;
 DESCRIPTION = &amp;quot;GNU Helloworld application&amp;quot; &lt;br /&gt;
 SECTION = &amp;quot;examples&amp;quot; &lt;br /&gt;
 LICENSE = &amp;quot;GPLv3+&amp;quot; &lt;br /&gt;
 LIC_FILES_CHKSUM = &amp;quot;file://COPYING;md5=d32239bcb673463ab874e80d47fae504&amp;quot; &lt;br /&gt;
 PR = &amp;quot;r0&amp;quot; &lt;br /&gt;
 SRC_URI = &amp;quot;${GNU_MIRROR}/hello/hello-${PV}.tar.gz&amp;quot; &lt;br /&gt;
 inherit autotools gettext &lt;br /&gt;
:Here is some explanation for a few of the recipe statements:&lt;br /&gt;
:* LIC_FILES_CHKSUM =  is required and, using file location defaults, points to the COPYING file that is part of the tarball that is downloaded from the SRC_URI address. The md5= part of the statement is generated by running “md5sum COPYING” against the COPYING file I downloaded to examine.&lt;br /&gt;
:* ${PV} in the SRC_URI statement is picked up from the part of the recipe file name after the “_”. In this case PV =2.7.&lt;br /&gt;
&lt;br /&gt;
;Step Four&lt;br /&gt;
:The recipe is built, so now I can run it:&lt;br /&gt;
&lt;br /&gt;
 cd ~/poky&lt;br /&gt;
 source oe-init-build-env build-hello.  &lt;br /&gt;
&lt;br /&gt;
;Step Five&lt;br /&gt;
:Before I can use BitBake I need to edit two files.  Sourcing the oe-init-build-env file above leaves me in the build-hello directory.  Before issuing the bitbake command I need to edit the files conf/local.conf and conf/bblayers.conf in that build-hello directory.  The bblayers.conf needs to have the one line added to include the layer you created.&lt;br /&gt;
&lt;br /&gt;
 # LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf &lt;br /&gt;
 # changes incompatibly &lt;br /&gt;
 LCONF_VERSION = &amp;quot;4&amp;quot; &lt;br /&gt;
 BBFILES ?= &amp;quot;&amp;quot; &lt;br /&gt;
 BBLAYERS = &amp;quot; \ &lt;br /&gt;
   /home/jim/poky/meta \ &lt;br /&gt;
   /home/jim/poky/meta-yocto \ &lt;br /&gt;
   /home/jim/poky/meta-jfa \&lt;br /&gt;
 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Step Six&lt;br /&gt;
:The conf/local.conf file needs to have the parallel processing lines edited to speed up the baking on multicore systems.  I can do that by uncommenting the BB_NUMBER_THREADS and PARALLEL_MAKE variables.  Generally, I would set them equal to twice the number of cores used by my host machine.  By default, the MACHINE variable is set to qemux86 and for this example is fine.  I need to add a line to include the hello package I am building into the image by adding the following line:&lt;br /&gt;
&lt;br /&gt;
 POKY_EXTRA_INSTALL += &amp;quot;hello&amp;quot; &lt;br /&gt;
&lt;br /&gt;
;Step Seven&lt;br /&gt;
:Now I can bake it with this command:&lt;br /&gt;
 bitbake core-image-minimal&lt;br /&gt;
;Step Eight&lt;br /&gt;
:Once the image is built, I can test it by starting the QEMU emulator:&lt;br /&gt;
&lt;br /&gt;
 runqemu qemux86&lt;br /&gt;
&lt;br /&gt;
;Step Nine&lt;br /&gt;
:Once the emulator comes up, login as root with no password.  Then, at the prompt, enter &amp;quot;hello&amp;quot; to run your application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Q: How do I setup Intel&amp;amp;reg; Atom&amp;amp;trade; Processor E6xx based system for media playback? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A:&#039;&#039;&#039; To playback media files on an Atom E6xx processor, you need to have the EMGD GFX driver installed.  There is a README on this installation in the meta-crownbay directory. However, the official support for EMGD with accelerated 3D and media decode is scheduled for release 1.2, but is in the git repository now, so you need to start with branch, &amp;quot;master&amp;quot; of both the poky and meta-intel repository. And you will need the Intel Crownbay reference platform for the Atom E6xx processor or similar hardware.&lt;br /&gt;
&lt;br /&gt;
; Step 1&lt;br /&gt;
Follow the Appendix A example in the Yocto Project Development Manual, but instead of editing out the crownbay references and using the crownbay-noemgd, you do the opposite.&lt;br /&gt;
&lt;br /&gt;
One edit you need to add to the Appendix A instructions is for the file ~/poky/meta-intel/meta-mymachine/conf/mymachine.conf.  You need to add the following statement to include audio features needed for the audio part of the videos:&lt;br /&gt;
 MACHINE_FEATURES += &amp;quot;alsa&amp;quot;&lt;br /&gt;
&lt;br /&gt;
; Step 2&lt;br /&gt;
In the Appendix A example a couple of changes are needed to the conf/local.conf and conf/bblayers.conf file edits from the standard example. The bblayers.conf file BBLAYERS statement should look like below, except correct the absolute path to match your system:&lt;br /&gt;
 BBLAYERS ?= &amp;quot; \&lt;br /&gt;
  /home/jim/poky/meta \&lt;br /&gt;
  /home/jim/poky/meta-yocto \&lt;br /&gt;
  /home/jim/poky/meta-intel \&lt;br /&gt;
  /home/jim/poky/meta-intel/meta-mymachine \&lt;br /&gt;
  &amp;quot;&lt;br /&gt;
The local.conf file should have some statements in addition to what the Appendix A used:&lt;br /&gt;
 LICENSE_FLAGS_WHITELIST = &amp;quot;license_emgd-driver-bin_1.10&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # The 2 statements below allow the playing of MP3 files. &lt;br /&gt;
 # Not specific to videos, but usually included on media use systems.&lt;br /&gt;
 LICENSE_FLAGS_WHITELIST += &amp;quot;commercial&amp;quot;&lt;br /&gt;
 POKY_EXTRA_INSTALL += &amp;quot;gst-fluendo-mp3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # add debug development tweaks and test applications, which include amixer, aplay, arecord, etc.&lt;br /&gt;
 EXTRA_IMAGE_FEATURES = &amp;quot;debug-tweaks tools-testapps&amp;quot;&lt;br /&gt;
; Step 3&lt;br /&gt;
After bitbaking the core-image-sato image, I put the .ext3 image on a hard drive per the above How Do I. I also added some h.264, mp4, m4a, and mp3 files to play with before moving the hard drive to the target hardware system.&lt;br /&gt;
&lt;br /&gt;
I used both the Sato GUI Music and Video players to play the files.&lt;br /&gt;
&lt;br /&gt;
That&#039;s all there is to it.&lt;/div&gt;</summary>
		<author><name>Rpjday</name></author>
	</entry>
</feed>