<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.openembedded.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jhelwig</id>
	<title>Openembedded.org - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.openembedded.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jhelwig"/>
	<link rel="alternate" type="text/html" href="https://www.openembedded.org/wiki/Special:Contributions/Jhelwig"/>
	<updated>2026-05-06T13:29:41Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=Category_talk:FAQ&amp;diff=2319</id>
		<title>Category talk:FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=Category_talk:FAQ&amp;diff=2319"/>
		<updated>2010-05-28T15:07:24Z</updated>

		<summary type="html">&lt;p&gt;Jhelwig: Undo revision 2317 by 212.235.107.114 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Old Wiki Faq =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The old wiki installation seems to have eaten the FAQ page.  Let&#039;s try to restore some of the information from [http://web.archive.org/web/20070222090436/www.openembedded.org/node/28/edit web.archive.org], this will need to be compared with [http://74.125.39.104/search?q=cache%3Aoe.linuxtogo.org%2Fnode%2F28%2Fdiff%2F1140&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;aq=t&amp;amp;rls=com.ubuntu:en-US:unofficial&amp;amp;client=firefox-a the last known-good version] from google (mark all text on that page to make it visible).  Content still to be moved follows&lt;br /&gt;
&lt;br /&gt;
--[[User:Laibsch|Laibsch]] 23:08, 4 June 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
= Development =&lt;br /&gt;
&lt;br /&gt;
== 1. what does OpenEmbedded keyword X do? ==&lt;br /&gt;
Check out the documentation in the following file: http://www.openembedded.org/repo/org.openembedded.dev/conf/documentation.conf&lt;br /&gt;
&lt;br /&gt;
== 2. How can I make bitbake to use a specific version of &amp;lt;tool&amp;gt;? ==&lt;br /&gt;
See [http://www.openembedded.org/search/node/PREFERRED_VERSION PREFERRED_VERSION]&lt;br /&gt;
&lt;br /&gt;
== 3. How can I make bitbake use proxychains when doing cvs operations? ==&lt;br /&gt;
See [http://www.openembedded.org/search/node/FETCH_COMMAND FETCH_COMMAND] and [http://www.openembedded.org/search/node/UPDATE_COMMAND UPDATE_COMMAND]&lt;br /&gt;
&lt;br /&gt;
== 4. What is the easiest way to convert Debian ARM packages to ipkg&#039;s (if size doesn&#039;t matter)? ==&lt;br /&gt;
mv foo.deb foo.ipk&lt;br /&gt;
&lt;br /&gt;
== 5. How do I add a package to OE? ==&lt;br /&gt;
Most of the time adding a package to OE will not be as easy as 1-2-3.  Many software developers do not cross-compile their packages and are generally unaware of [[Users Manual/Rules Of Thumb|good design decisions]] that facilitate or break cross-compilation.&lt;br /&gt;
&lt;br /&gt;
== 6. How can I do a recursive make? ==&lt;br /&gt;
&lt;br /&gt;
Implement a structure along the following lines.&lt;br /&gt;
&lt;br /&gt;
 do_compile {&lt;br /&gt;
     for i in dir; oe_runmake ...; done&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 7. How do I set a variable according to the kernel version of the package being built? ==&lt;br /&gt;
&lt;br /&gt;
Use base_conditional in the following manner:&lt;br /&gt;
&lt;br /&gt;
 CFLAGS_append = &#039;${@base_conditional(&amp;quot;KERNEL_MAJOR_VERSION&amp;quot;, &amp;quot;2.6&amp;quot;, &amp;quot; -D__Linux26__ &amp;quot;, &amp;quot; -D__Linux24__ &amp;quot;,d)}&#039;&lt;br /&gt;
&lt;br /&gt;
In the example above &#039;&#039;-D__Linux26__&#039;&#039; will be added to the existing CFLAGS if the kernel is 2.6 and &#039;&#039;-D__Linux24__&#039;&#039; if the kernel is 2.4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 8. What is ARM EABI and how do I use it? ==&lt;br /&gt;
ARM EABI is the informal name for the ABI for the ARM Architecture standard developed by ARM Ltd and others.  This standard explains how tools should generate object and excecutable files.&lt;br /&gt;
* http://www.codesourcery.com/gnu_toolchains/arm/faq.html#q_gnu_linux_long_long&lt;br /&gt;
* http://www.arm.com/products/DevTools/ABI.html&lt;br /&gt;
* http://wiki.debian.org/ArmEabiPort&lt;br /&gt;
&lt;br /&gt;
To instruct OE to build EABI parts, you typically need the following in your distro conf file:&lt;br /&gt;
  TARGET_OS=-gnueabi&lt;br /&gt;
See the Angstrom distro for an example: http://www.openembedded.org/repo/org.openembedded.dev/conf/distro/angstrom.conf&lt;br /&gt;
http://www.openembedded.org/repo/org.openembedded.dev/conf/distro/angstrom-2006.9.conf&lt;br /&gt;
&lt;br /&gt;
You also need to make sure your kernel has the needed support.  From the codesourcery faq, you need the following:&lt;br /&gt;
* CONFIG_EABI must be enabled&lt;br /&gt;
* Kernel must include support for NPTL&lt;br /&gt;
* kernel versions earlier than 2.6.17 should be avoided&lt;br /&gt;
&lt;br /&gt;
== 9. What is NPTL and how do I use it in OE? ==&lt;br /&gt;
NPTL is the Native POSIX Thread Library which is a software feature that enables the Linux kernel to run programs written to use POSIX Threads very efficiently.  It is meant to replace an older implementation named Linuxthreads.&lt;br /&gt;
* [http://en.wikipedia.org/wiki/LinuxThreads]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library]&lt;br /&gt;
* to check what threading library you have, run the following command: getconf GNU_LIBPTHREAD_VERSION.  You can also type: &lt;br /&gt;
/lib/libc.so.6 to get information on what threading lib is used.&lt;br /&gt;
&lt;br /&gt;
There are two options for threading (from pb email):&lt;br /&gt;
* With linuxthreads, you need glibc-initial, then gcc-cross-initial,&lt;br /&gt;
then glibc, then gcc-cross.&lt;br /&gt;
* With nptl, you need glibc-initial, then gcc-cross-initial, then&lt;br /&gt;
glibc-intermediate, then gcc-cross, then glibc.&lt;br /&gt;
&lt;br /&gt;
To use linuxthreads, you need something like the following:&lt;br /&gt;
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = glibc&lt;br /&gt;
&lt;br /&gt;
For NPTL, this becomes:&lt;br /&gt;
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = glibc-intermediate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 10. How do I apply for read-write status to the OpenEmbedded monotone repo? ==&lt;br /&gt;
&lt;br /&gt;
Hang around IRC in #oe, use the dev mailing list or some other way to get in [http://www.openembedded.org/contact contact] with the OE devs.  Explain to them why you think you should be given rw access.  If your request is granted, [http://www.openembedded.org/wiki/MonotonePhraseBook create your key and send it to the maintainers].&lt;br /&gt;
&lt;br /&gt;
== 11. How do I add additional packages to a bootstrap-image generated image? ==&lt;br /&gt;
&lt;br /&gt;
You can add packages to your build by setting the MACHINE_EXTRA_RDEPENDS or DISTRO_EXTRA_RDEPENDS in a conf file.  Note, you must rebuild task-base after changing these variables (bitbake task-base -crebuild) as bitbake has no way of knowing task-base has changed.  See [http://bec-systems.com/web/content/view/59/9/] for a  more detailed explanation. &lt;br /&gt;
&lt;br /&gt;
== 12. What order are conf files parsed for variable assignment? ==&lt;br /&gt;
See oe/conf/bitbake.conf.  There should be a section that looks something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
include conf/site.conf&lt;br /&gt;
include conf/auto.conf&lt;br /&gt;
include conf/local.conf&lt;br /&gt;
include conf/build/${BUILD_SYS}.conf&lt;br /&gt;
include conf/target/${TARGET_SYS}.conf&lt;br /&gt;
include conf/machine/${MACHINE}.conf&lt;br /&gt;
include conf/distro/${DISTRO}.conf&lt;br /&gt;
include conf/documentation.conf&lt;br /&gt;
require conf/sanity.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A straight &amp;quot;=&amp;quot; assignment in a machine or distro conf file will overwrite a local.conf setting.  Therefore, machine and distro conf files should use the &amp;quot;+=&amp;quot; assignment if it is useful for local.conf to be able to append to a variable.&lt;br /&gt;
&lt;br /&gt;
= Build Errors =&lt;br /&gt;
== 1. chown error during do_install process ==&lt;br /&gt;
As the OE build process runs a normal using, any install process that changes file ownership or groups must be run using fakeroot.  This typically involves the following change in the recipe bb file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
fakeroot do_install () {&lt;br /&gt;
	oe_runmake &amp;quot;DSTROOT=${D}&amp;quot; install&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. Error: autoreconf2.50: unrecognized option --exclude=libtoolize ==&lt;br /&gt;
For some reason the base system&#039;s autoreconf is being used instead of the OE version (from autoconf-native)&lt;br /&gt;
&lt;br /&gt;
For me personally this was a problem with my BBPATH having the paths to two branches in it org.openembedded.oz354x and org.openembedded.dev. Removing the one i wasn&#039;t trying to build, remove the tmp dir and start bitbake over fixed it.&lt;br /&gt;
&lt;br /&gt;
== 3. Error: Building libtool-native dies with &amp;quot;configure: error: source directory already configured; run &amp;quot;make distclean&amp;quot; there first&amp;quot; ==&lt;br /&gt;
Your build dir path has one or more symlinks in it.  Don&#039;t do that!&lt;br /&gt;
&lt;br /&gt;
== 4. Error: run.do_patchcleancmd.4326: line 442: syntax error near unexpected token `&#039;INHIBIT_PACKAGE_STRIP&#039;,&#039;` ==&lt;br /&gt;
known bug -- see: http://bugs.openembedded.org/Ticket/Display.html?id=257  There are several workarounds:&lt;br /&gt;
** inherit package in the offending bb files&lt;br /&gt;
** set INHERIT += &amp;quot;package_ipk debian&amp;quot; in your distro or local.conf file&lt;br /&gt;
&lt;br /&gt;
== 5. I updated OE.db and now my builds are failing during the glibc compile, complaining about bad symbol definitions. What&#039;s wrong? ==&lt;br /&gt;
&lt;br /&gt;
As of this writing, the version of glibc in the .dev branch of OE calls for a version of binutils it really shouldn&#039;t use. A patch has been applied to some DISTRO .confs which forces the &amp;quot;correct&amp;quot; version of binutils (&amp;lt;2.17) for the moment. But if the DISTRO .conf file you&#039;re building with isn&#039;t patched, a workaround is to add the following line to your local.conf file:&lt;br /&gt;
&lt;br /&gt;
 PREFERRED_VERSION_binutils-cross = &amp;quot;2.16&amp;quot;&lt;br /&gt;
&lt;br /&gt;
then reset the glibc build with&lt;br /&gt;
&lt;br /&gt;
 bitbake glibc -c clean&lt;br /&gt;
&lt;br /&gt;
and start from where you left off.&lt;br /&gt;
&lt;br /&gt;
== 6. My build dies during the qemu-native section. What gives? ==&lt;br /&gt;
If the error is:&lt;br /&gt;
 | ERROR: QEMU requires SDL or Cocoa for graphical output&lt;br /&gt;
 | To build QEMU without graphical output configure with --disable-gfx-check &lt;br /&gt;
 | Note that this will disable all output from the virtual graphics card.&lt;br /&gt;
 | FATAL: oe_runconf failed&lt;br /&gt;
Then install SDL headers (apt-get install libsdl1.2-dev under Ubuntu/Debian).&lt;br /&gt;
&lt;br /&gt;
Else another workaround: Install qemu from the distribution for your development computer, and include &lt;br /&gt;
 ASSUME_PROVIDED +=&amp;quot;qemu-native&amp;quot;&lt;br /&gt;
in your local.conf file.&lt;br /&gt;
&lt;br /&gt;
== 7. Bitbake tells me to &amp;quot;Please set TARGET_OS directly, or choose a MACHINE or DISTRO that does so.&amp;quot;, but my local.conf file already does. ==&lt;br /&gt;
&lt;br /&gt;
Be sure you are not running bitbake as root. Doing so breaks Bitbake&#039;s use of chroot.&lt;br /&gt;
&lt;br /&gt;
== 8. qemu crashes during generation of binary locales ==&lt;br /&gt;
&lt;br /&gt;
Set ENABLE_BINARY_LOCALE_GENERATION = &amp;quot;0&amp;quot; in your local.conf.  This is probably a x86_64 issue.&lt;br /&gt;
&lt;br /&gt;
== 9. sanity checker complains &amp;quot;/proc/sys/vm/mmap_min_addr is not 0&amp;quot; on Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
Ubuntu Hardy Heron has this value set to 65536 by default. &lt;br /&gt;
see /etc/sysctl.conf content below&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 # protect bottom 64k of memory from mmap to prevent NULL-dereference&lt;br /&gt;
 # attacks against potential future kernel security vulnerabilities.&lt;br /&gt;
 # (Added in kernel 2.6.23.)&lt;br /&gt;
 vm.mmap_min_addr = 65536&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since Wine suffers from the same feature, a temporary and permenant fix &lt;br /&gt;
is already known. &lt;br /&gt;
See this link (duh!) : http://wiki.winehq.org/PreloaderPageZeroProblem&lt;br /&gt;
&lt;br /&gt;
Q: Why is this necessary? I&#039;m using debian, and mmap_min_addr is 4096, but I run qemu all the time, and it seems to work fine.&lt;br /&gt;
&lt;br /&gt;
= Debugging OE Builds =&lt;br /&gt;
OE is not perfect.  Due to the size, complexity, rapid pace of development, and lack of maintainers, you will often be presented with an opportunity to debug OE builds :).  Fortunately, OE is easy to debug once you know a few tricks:&lt;br /&gt;
&lt;br /&gt;
== 1. Debugging tips ==&lt;br /&gt;
* learn to use interactive bitbake (`bitbake -i`)&lt;br /&gt;
* The [[BitBake]] `--verbose` option will print package dependencies.  This is very useful when trying to determine why a package is being built.&lt;br /&gt;
* The [[BitBake]] `-D` option will increase debugging level.  Note `-D -D` is also a valid option and can be used to determine what conf files are being used -- look for lines begining with conf.&lt;br /&gt;
&lt;br /&gt;
== 2. How do I re-build a failing package? ==&lt;br /&gt;
There are several options:&lt;br /&gt;
* `bitbake -b &amp;lt;path to bb file&amp;gt;`&lt;br /&gt;
* `bitbake &amp;lt;package name&amp;gt;`&lt;br /&gt;
* start bitbake interactive mode (`bitbake -i`) and then run `build &amp;lt;package name&amp;gt;`&lt;br /&gt;
&lt;br /&gt;
== 3. How do I clean a package? ==&lt;br /&gt;
There are several options:&lt;br /&gt;
* `bitbake -b &amp;lt;path to bb file&amp;gt; -c clean`&lt;br /&gt;
* `bitbake &amp;lt;package name&amp;gt; -c clean`&lt;br /&gt;
* start bitbake interactive mode (`bitbake -i`) and then run `clean &amp;lt;package name&amp;gt;`&lt;br /&gt;
You may also put several package names after the command e.g.&lt;br /&gt;
* `bitbake -c clean pack1 pack2 ...`&lt;br /&gt;
Sometimes you want to clean a particular package version from your build/tmp/work directory. In this case use&lt;br /&gt;
* for example `bitbake -c clean gcc-cross-initial-4.1.1`&lt;br /&gt;
Note: You have to use the package directory name here from your work directory without the trailing `-rx`. That means there is not an underscore before the package version but a simple dash.&lt;br /&gt;
The above is quite useful if you want to clean up a work directory from unwanted versions of the same package.&lt;br /&gt;
&lt;br /&gt;
The ipk file in the directory deploy/ipk is not deleted when you perform a clean on a certain package. So make sure you manually rebuild the cleaned package in order to get an updated ipk or delete the ipk prior to a build.&lt;br /&gt;
&lt;br /&gt;
== 4. What tasks are available for a package/recipe? ==&lt;br /&gt;
Building an OE package consists of a number of tasks.  These tasks can be listed with the OE listtasks task.  Each task can be run individually.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bitbake -b &amp;lt;path to bb file&amp;gt; -c listtasks&lt;br /&gt;
NOTE: package matchbox-0.9.1: started&lt;br /&gt;
NOTE: package matchbox-0.9.1-r0: task do_listtasks: started&lt;br /&gt;
do_listtasks&lt;br /&gt;
do_compile&lt;br /&gt;
do_stage&lt;br /&gt;
do_build&lt;br /&gt;
do_mrproper&lt;br /&gt;
do_fetch&lt;br /&gt;
do_configure&lt;br /&gt;
do_clean&lt;br /&gt;
do_emit_manifest&lt;br /&gt;
do_populate_staging&lt;br /&gt;
do_package&lt;br /&gt;
do_unpack&lt;br /&gt;
do_install&lt;br /&gt;
do_showdata&lt;br /&gt;
do_patch&lt;br /&gt;
NOTE: package matchbox-0.9.1-r0: task do_listtasks: completed&lt;br /&gt;
NOTE: package matchbox-0.9.1: completed&lt;br /&gt;
Build statistics:&lt;br /&gt;
  Attempted builds: 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. How do I view the value of OE variables for a package? ==&lt;br /&gt;
* Use the [[BitBake]] command.  &lt;br /&gt;
** `bitbake -e ../openembedded/recipes/meta/bootstrap-image.bb`&lt;br /&gt;
** `bitbake -e &amp;lt;package name&amp;gt;`&lt;br /&gt;
* Use the [[OpenEmbedded]] showdata command.  Ex: `bitbake -b ../openembedded/recipes/meta/bootstrap-image.bb -c showdata`&lt;br /&gt;
&lt;br /&gt;
== 6. How do I unpack ipk files? ==&lt;br /&gt;
ipk package files can be unpackaged with the `ar` command.  Ex: `ar x &amp;lt;path to ipk file&amp;gt;`  You can also inspect the files inside an ipk and get other information with the dpkg command if your distribution has it.&lt;/div&gt;</summary>
		<author><name>Jhelwig</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=Category_talk:FAQ&amp;diff=2315</id>
		<title>Category talk:FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=Category_talk:FAQ&amp;diff=2315"/>
		<updated>2010-05-26T13:18:51Z</updated>

		<summary type="html">&lt;p&gt;Jhelwig: Undo revision 2314 by 212.235.107.114 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Old Wiki Faq =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The old wiki installation seems to have eaten the FAQ page.  Let&#039;s try to restore some of the information from [http://web.archive.org/web/20070222090436/www.openembedded.org/node/28/edit web.archive.org], this will need to be compared with [http://74.125.39.104/search?q=cache%3Aoe.linuxtogo.org%2Fnode%2F28%2Fdiff%2F1140&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;aq=t&amp;amp;rls=com.ubuntu:en-US:unofficial&amp;amp;client=firefox-a the last known-good version] from google (mark all text on that page to make it visible).  Content still to be moved follows&lt;br /&gt;
&lt;br /&gt;
--[[User:Laibsch|Laibsch]] 23:08, 4 June 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
= Development =&lt;br /&gt;
&lt;br /&gt;
== 1. what does OpenEmbedded keyword X do? ==&lt;br /&gt;
Check out the documentation in the following file: http://www.openembedded.org/repo/org.openembedded.dev/conf/documentation.conf&lt;br /&gt;
&lt;br /&gt;
== 2. How can I make bitbake to use a specific version of &amp;lt;tool&amp;gt;? ==&lt;br /&gt;
See [http://www.openembedded.org/search/node/PREFERRED_VERSION PREFERRED_VERSION]&lt;br /&gt;
&lt;br /&gt;
== 3. How can I make bitbake use proxychains when doing cvs operations? ==&lt;br /&gt;
See [http://www.openembedded.org/search/node/FETCH_COMMAND FETCH_COMMAND] and [http://www.openembedded.org/search/node/UPDATE_COMMAND UPDATE_COMMAND]&lt;br /&gt;
&lt;br /&gt;
== 4. What is the easiest way to convert Debian ARM packages to ipkg&#039;s (if size doesn&#039;t matter)? ==&lt;br /&gt;
mv foo.deb foo.ipk&lt;br /&gt;
&lt;br /&gt;
== 5. How do I add a package to OE? ==&lt;br /&gt;
Most of the time adding a package to OE will not be as easy as 1-2-3.  Many software developers do not cross-compile their packages and are generally unaware of [[Users Manual/Rules Of Thumb|good design decisions]] that facilitate or break cross-compilation.&lt;br /&gt;
&lt;br /&gt;
== 6. How can I do a recursive make? ==&lt;br /&gt;
&lt;br /&gt;
Implement a structure along the following lines.&lt;br /&gt;
&lt;br /&gt;
 do_compile {&lt;br /&gt;
     for i in dir; oe_runmake ...; done&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 7. How do I set a variable according to the kernel version of the package being built? ==&lt;br /&gt;
&lt;br /&gt;
Use base_conditional in the following manner:&lt;br /&gt;
&lt;br /&gt;
 CFLAGS_append = &#039;${@base_conditional(&amp;quot;KERNEL_MAJOR_VERSION&amp;quot;, &amp;quot;2.6&amp;quot;, &amp;quot; -D__Linux26__ &amp;quot;, &amp;quot; -D__Linux24__ &amp;quot;,d)}&#039;&lt;br /&gt;
&lt;br /&gt;
In the example above &#039;&#039;-D__Linux26__&#039;&#039; will be added to the existing CFLAGS if the kernel is 2.6 and &#039;&#039;-D__Linux24__&#039;&#039; if the kernel is 2.4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 8. What is ARM EABI and how do I use it? ==&lt;br /&gt;
ARM EABI is the informal name for the ABI for the ARM Architecture standard developed by ARM Ltd and others.  This standard explains how tools should generate object and excecutable files.&lt;br /&gt;
* http://www.codesourcery.com/gnu_toolchains/arm/faq.html#q_gnu_linux_long_long&lt;br /&gt;
* http://www.arm.com/products/DevTools/ABI.html&lt;br /&gt;
* http://wiki.debian.org/ArmEabiPort&lt;br /&gt;
&lt;br /&gt;
To instruct OE to build EABI parts, you typically need the following in your distro conf file:&lt;br /&gt;
  TARGET_OS=-gnueabi&lt;br /&gt;
See the Angstrom distro for an example: http://www.openembedded.org/repo/org.openembedded.dev/conf/distro/angstrom.conf&lt;br /&gt;
http://www.openembedded.org/repo/org.openembedded.dev/conf/distro/angstrom-2006.9.conf&lt;br /&gt;
&lt;br /&gt;
You also need to make sure your kernel has the needed support.  From the codesourcery faq, you need the following:&lt;br /&gt;
* CONFIG_EABI must be enabled&lt;br /&gt;
* Kernel must include support for NPTL&lt;br /&gt;
* kernel versions earlier than 2.6.17 should be avoided&lt;br /&gt;
&lt;br /&gt;
== 9. What is NPTL and how do I use it in OE? ==&lt;br /&gt;
NPTL is the Native POSIX Thread Library which is a software feature that enables the Linux kernel to run programs written to use POSIX Threads very efficiently.  It is meant to replace an older implementation named Linuxthreads.&lt;br /&gt;
* [http://en.wikipedia.org/wiki/LinuxThreads]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library]&lt;br /&gt;
* to check what threading library you have, run the following command: getconf GNU_LIBPTHREAD_VERSION.  You can also type: &lt;br /&gt;
/lib/libc.so.6 to get information on what threading lib is used.&lt;br /&gt;
&lt;br /&gt;
There are two options for threading (from pb email):&lt;br /&gt;
* With linuxthreads, you need glibc-initial, then gcc-cross-initial,&lt;br /&gt;
then glibc, then gcc-cross.&lt;br /&gt;
* With nptl, you need glibc-initial, then gcc-cross-initial, then&lt;br /&gt;
glibc-intermediate, then gcc-cross, then glibc.&lt;br /&gt;
&lt;br /&gt;
To use linuxthreads, you need something like the following:&lt;br /&gt;
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = glibc&lt;br /&gt;
&lt;br /&gt;
For NPTL, this becomes:&lt;br /&gt;
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = glibc-intermediate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 10. How do I apply for read-write status to the OpenEmbedded monotone repo? ==&lt;br /&gt;
&lt;br /&gt;
Hang around IRC in #oe, use the dev mailing list or some other way to get in [http://www.openembedded.org/contact contact] with the OE devs.  Explain to them why you think you should be given rw access.  If your request is granted, [http://www.openembedded.org/wiki/MonotonePhraseBook create your key and send it to the maintainers].&lt;br /&gt;
&lt;br /&gt;
== 11. How do I add additional packages to a bootstrap-image generated image? ==&lt;br /&gt;
&lt;br /&gt;
You can add packages to your build by setting the MACHINE_EXTRA_RDEPENDS or DISTRO_EXTRA_RDEPENDS in a conf file.  Note, you must rebuild task-base after changing these variables (bitbake task-base -crebuild) as bitbake has no way of knowing task-base has changed.  See [http://bec-systems.com/web/content/view/59/9/] for a  more detailed explanation. &lt;br /&gt;
&lt;br /&gt;
== 12. What order are conf files parsed for variable assignment? ==&lt;br /&gt;
See oe/conf/bitbake.conf.  There should be a section that looks something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
include conf/site.conf&lt;br /&gt;
include conf/auto.conf&lt;br /&gt;
include conf/local.conf&lt;br /&gt;
include conf/build/${BUILD_SYS}.conf&lt;br /&gt;
include conf/target/${TARGET_SYS}.conf&lt;br /&gt;
include conf/machine/${MACHINE}.conf&lt;br /&gt;
include conf/distro/${DISTRO}.conf&lt;br /&gt;
include conf/documentation.conf&lt;br /&gt;
require conf/sanity.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A straight &amp;quot;=&amp;quot; assignment in a machine or distro conf file will overwrite a local.conf setting.  Therefore, machine and distro conf files should use the &amp;quot;+=&amp;quot; assignment if it is useful for local.conf to be able to append to a variable.&lt;br /&gt;
&lt;br /&gt;
= Build Errors =&lt;br /&gt;
== 1. chown error during do_install process ==&lt;br /&gt;
As the OE build process runs a normal using, any install process that changes file ownership or groups must be run using fakeroot.  This typically involves the following change in the recipe bb file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
fakeroot do_install () {&lt;br /&gt;
	oe_runmake &amp;quot;DSTROOT=${D}&amp;quot; install&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. Error: autoreconf2.50: unrecognized option --exclude=libtoolize ==&lt;br /&gt;
For some reason the base system&#039;s autoreconf is being used instead of the OE version (from autoconf-native)&lt;br /&gt;
&lt;br /&gt;
For me personally this was a problem with my BBPATH having the paths to two branches in it org.openembedded.oz354x and org.openembedded.dev. Removing the one i wasn&#039;t trying to build, remove the tmp dir and start bitbake over fixed it.&lt;br /&gt;
&lt;br /&gt;
== 3. Error: Building libtool-native dies with &amp;quot;configure: error: source directory already configured; run &amp;quot;make distclean&amp;quot; there first&amp;quot; ==&lt;br /&gt;
Your build dir path has one or more symlinks in it.  Don&#039;t do that!&lt;br /&gt;
&lt;br /&gt;
== 4. Error: run.do_patchcleancmd.4326: line 442: syntax error near unexpected token `&#039;INHIBIT_PACKAGE_STRIP&#039;,&#039;` ==&lt;br /&gt;
known bug -- see: http://bugs.openembedded.org/Ticket/Display.html?id=257  There are several workarounds:&lt;br /&gt;
** inherit package in the offending bb files&lt;br /&gt;
** set INHERIT += &amp;quot;package_ipk debian&amp;quot; in your distro or local.conf file&lt;br /&gt;
&lt;br /&gt;
== 5. I updated OE.db and now my builds are failing during the glibc compile, complaining about bad symbol definitions. What&#039;s wrong? ==&lt;br /&gt;
&lt;br /&gt;
As of this writing, the version of glibc in the .dev branch of OE calls for a version of binutils it really shouldn&#039;t use. A patch has been applied to some DISTRO .confs which forces the &amp;quot;correct&amp;quot; version of binutils (&amp;lt;2.17) for the moment. But if the DISTRO .conf file you&#039;re building with isn&#039;t patched, a workaround is to add the following line to your local.conf file:&lt;br /&gt;
&lt;br /&gt;
 PREFERRED_VERSION_binutils-cross = &amp;quot;2.16&amp;quot;&lt;br /&gt;
&lt;br /&gt;
then reset the glibc build with&lt;br /&gt;
&lt;br /&gt;
 bitbake glibc -c clean&lt;br /&gt;
&lt;br /&gt;
and start from where you left off.&lt;br /&gt;
&lt;br /&gt;
== 6. My build dies during the qemu-native section. What gives? ==&lt;br /&gt;
If the error is:&lt;br /&gt;
 | ERROR: QEMU requires SDL or Cocoa for graphical output&lt;br /&gt;
 | To build QEMU without graphical output configure with --disable-gfx-check &lt;br /&gt;
 | Note that this will disable all output from the virtual graphics card.&lt;br /&gt;
 | FATAL: oe_runconf failed&lt;br /&gt;
Then install SDL headers (apt-get install libsdl1.2-dev under Ubuntu/Debian).&lt;br /&gt;
&lt;br /&gt;
Else another workaround: Install qemu from the distribution for your development computer, and include &lt;br /&gt;
 ASSUME_PROVIDED +=&amp;quot;qemu-native&amp;quot;&lt;br /&gt;
in your local.conf file.&lt;br /&gt;
&lt;br /&gt;
== 7. Bitbake tells me to &amp;quot;Please set TARGET_OS directly, or choose a MACHINE or DISTRO that does so.&amp;quot;, but my local.conf file already does. ==&lt;br /&gt;
&lt;br /&gt;
Be sure you are not running bitbake as root. Doing so breaks Bitbake&#039;s use of chroot.&lt;br /&gt;
&lt;br /&gt;
== 8. qemu crashes during generation of binary locales ==&lt;br /&gt;
&lt;br /&gt;
Set ENABLE_BINARY_LOCALE_GENERATION = &amp;quot;0&amp;quot; in your local.conf.  This is probably a x86_64 issue.&lt;br /&gt;
&lt;br /&gt;
== 9. sanity checker complains &amp;quot;/proc/sys/vm/mmap_min_addr is not 0&amp;quot; on Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
Ubuntu Hardy Heron has this value set to 65536 by default. &lt;br /&gt;
see /etc/sysctl.conf content below&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 # protect bottom 64k of memory from mmap to prevent NULL-dereference&lt;br /&gt;
 # attacks against potential future kernel security vulnerabilities.&lt;br /&gt;
 # (Added in kernel 2.6.23.)&lt;br /&gt;
 vm.mmap_min_addr = 65536&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since Wine suffers from the same feature, a temporary and permenant fix &lt;br /&gt;
is already known. &lt;br /&gt;
See this link (duh!) : http://wiki.winehq.org/PreloaderPageZeroProblem&lt;br /&gt;
&lt;br /&gt;
Q: Why is this necessary? I&#039;m using debian, and mmap_min_addr is 4096, but I run qemu all the time, and it seems to work fine.&lt;br /&gt;
&lt;br /&gt;
= Debugging OE Builds =&lt;br /&gt;
OE is not perfect.  Due to the size, complexity, rapid pace of development, and lack of maintainers, you will often be presented with an opportunity to debug OE builds :).  Fortunately, OE is easy to debug once you know a few tricks:&lt;br /&gt;
&lt;br /&gt;
== 1. Debugging tips ==&lt;br /&gt;
* learn to use interactive bitbake (`bitbake -i`)&lt;br /&gt;
* The [[BitBake]] `--verbose` option will print package dependencies.  This is very useful when trying to determine why a package is being built.&lt;br /&gt;
* The [[BitBake]] `-D` option will increase debugging level.  Note `-D -D` is also a valid option and can be used to determine what conf files are being used -- look for lines begining with conf.&lt;br /&gt;
&lt;br /&gt;
== 2. How do I re-build a failing package? ==&lt;br /&gt;
There are several options:&lt;br /&gt;
* `bitbake -b &amp;lt;path to bb file&amp;gt;`&lt;br /&gt;
* `bitbake &amp;lt;package name&amp;gt;`&lt;br /&gt;
* start bitbake interactive mode (`bitbake -i`) and then run `build &amp;lt;package name&amp;gt;`&lt;br /&gt;
&lt;br /&gt;
== 3. How do I clean a package? ==&lt;br /&gt;
There are several options:&lt;br /&gt;
* `bitbake -b &amp;lt;path to bb file&amp;gt; -c clean`&lt;br /&gt;
* `bitbake &amp;lt;package name&amp;gt; -c clean`&lt;br /&gt;
* start bitbake interactive mode (`bitbake -i`) and then run `clean &amp;lt;package name&amp;gt;`&lt;br /&gt;
You may also put several package names after the command e.g.&lt;br /&gt;
* `bitbake -c clean pack1 pack2 ...`&lt;br /&gt;
Sometimes you want to clean a particular package version from your build/tmp/work directory. In this case use&lt;br /&gt;
* for example `bitbake -c clean gcc-cross-initial-4.1.1`&lt;br /&gt;
Note: You have to use the package directory name here from your work directory without the trailing `-rx`. That means there is not an underscore before the package version but a simple dash.&lt;br /&gt;
The above is quite useful if you want to clean up a work directory from unwanted versions of the same package.&lt;br /&gt;
&lt;br /&gt;
The ipk file in the directory deploy/ipk is not deleted when you perform a clean on a certain package. So make sure you manually rebuild the cleaned package in order to get an updated ipk or delete the ipk prior to a build.&lt;br /&gt;
&lt;br /&gt;
== 4. What tasks are available for a package/recipe? ==&lt;br /&gt;
Building an OE package consists of a number of tasks.  These tasks can be listed with the OE listtasks task.  Each task can be run individually.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bitbake -b &amp;lt;path to bb file&amp;gt; -c listtasks&lt;br /&gt;
NOTE: package matchbox-0.9.1: started&lt;br /&gt;
NOTE: package matchbox-0.9.1-r0: task do_listtasks: started&lt;br /&gt;
do_listtasks&lt;br /&gt;
do_compile&lt;br /&gt;
do_stage&lt;br /&gt;
do_build&lt;br /&gt;
do_mrproper&lt;br /&gt;
do_fetch&lt;br /&gt;
do_configure&lt;br /&gt;
do_clean&lt;br /&gt;
do_emit_manifest&lt;br /&gt;
do_populate_staging&lt;br /&gt;
do_package&lt;br /&gt;
do_unpack&lt;br /&gt;
do_install&lt;br /&gt;
do_showdata&lt;br /&gt;
do_patch&lt;br /&gt;
NOTE: package matchbox-0.9.1-r0: task do_listtasks: completed&lt;br /&gt;
NOTE: package matchbox-0.9.1: completed&lt;br /&gt;
Build statistics:&lt;br /&gt;
  Attempted builds: 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. How do I view the value of OE variables for a package? ==&lt;br /&gt;
* Use the [[BitBake]] command.  &lt;br /&gt;
** `bitbake -e ../openembedded/recipes/meta/bootstrap-image.bb`&lt;br /&gt;
** `bitbake -e &amp;lt;package name&amp;gt;`&lt;br /&gt;
* Use the [[OpenEmbedded]] showdata command.  Ex: `bitbake -b ../openembedded/recipes/meta/bootstrap-image.bb -c showdata`&lt;br /&gt;
&lt;br /&gt;
== 6. How do I unpack ipk files? ==&lt;br /&gt;
ipk package files can be unpackaged with the `ar` command.  Ex: `ar x &amp;lt;path to ipk file&amp;gt;`  You can also inspect the files inside an ipk and get other information with the dpkg command if your distribution has it.&lt;/div&gt;</summary>
		<author><name>Jhelwig</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=BeagleBoard&amp;diff=2301</id>
		<title>BeagleBoard</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=BeagleBoard&amp;diff=2301"/>
		<updated>2010-05-09T17:08:50Z</updated>

		<summary type="html">&lt;p&gt;Jhelwig: Undo revision 2300 by 60.19.24.7 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Kernel Support in OE ==&lt;br /&gt;
&lt;br /&gt;
=== Linux  ===&lt;br /&gt;
&lt;br /&gt;
OpenEmbedded offers more than one kernel for the BeagleBoard. All come with several patches but the support of the BeagleBoard hardware is not perfect yet.&lt;br /&gt;
The table summarizes the current status of hardware support. Please note that this applies to the kernels we have in OE only.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Boot &lt;br /&gt;
! USB OTG &lt;br /&gt;
! USB host &lt;br /&gt;
! DVI &lt;br /&gt;
! Audio out&lt;br /&gt;
! Audio in&lt;br /&gt;
! S-Video out&lt;br /&gt;
! MMC / SD&lt;br /&gt;
! RS232&lt;br /&gt;
! Flash&lt;br /&gt;
! DSP&lt;br /&gt;
! SGX&lt;br /&gt;
|-&lt;br /&gt;
| 2.6.27-r11&lt;br /&gt;
| style=&amp;quot;background:yellow;&amp;quot; | host only &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:yellow;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:red;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;background:red;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| 2.6.28-r12&lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; |   &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;background:green;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Currently 2.6.27 is the default kernel in OE. If you want to build 2.6.28 you can set PREFERRED_VERSION_linux-omap = &amp;quot;2.6.28&amp;quot; in your local.conf. Then build the kernel &amp;lt;code&amp;gt;bitbake virtual/kernel&amp;lt;/code&amp;gt; or a filesystem that should include the kernel modules.&lt;br /&gt;
Another way to build the desired kernel is to point OE to the kernel bb directly. &lt;br /&gt;
&lt;br /&gt;
[[Category: Machine]]&lt;/div&gt;</summary>
		<author><name>Jhelwig</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=Talk:Stable&amp;diff=2295</id>
		<title>Talk:Stable</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=Talk:Stable&amp;diff=2295"/>
		<updated>2010-05-05T13:46:42Z</updated>

		<summary type="html">&lt;p&gt;Jhelwig: Spam removal.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jhelwig</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=Talk:BitBake&amp;diff=2292</id>
		<title>Talk:BitBake</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=Talk:BitBake&amp;diff=2292"/>
		<updated>2010-05-02T14:07:54Z</updated>

		<summary type="html">&lt;p&gt;Jhelwig: Spam removal.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jhelwig</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=Talk:Index.php/Documentation&amp;diff=2291</id>
		<title>Talk:Index.php/Documentation</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=Talk:Index.php/Documentation&amp;diff=2291"/>
		<updated>2010-05-02T14:07:37Z</updated>

		<summary type="html">&lt;p&gt;Jhelwig: Spam removal.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jhelwig</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=TSC&amp;diff=2283</id>
		<title>TSC</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=TSC&amp;diff=2283"/>
		<updated>2010-04-19T16:45:25Z</updated>

		<summary type="html">&lt;p&gt;Jhelwig: Undo revision 2282 by 67.202.107.22 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=OE Technical Steering Committee=&lt;br /&gt;
&lt;br /&gt;
The TSC consists of 5 people and will be elected by, and ultimately be answerable to, the members of the OE e.V.&lt;br /&gt;
&lt;br /&gt;
= Members =&lt;br /&gt;
&lt;br /&gt;
 Graeme Gregory (XorA)&lt;br /&gt;
 Koen Kooi&lt;br /&gt;
 Chris Larson (kergoth)&lt;br /&gt;
 Michael &#039;Mickey&#039; Lauer (mickeyl)&lt;br /&gt;
 Richard Purdie (RP)&lt;br /&gt;
&lt;br /&gt;
= Responsibilities =&lt;br /&gt;
&lt;br /&gt;
On a day-to-day basis the TSC will be responsible for making&lt;br /&gt;
tactical policy decisions, resolving disputes between contributors,&lt;br /&gt;
administering access control to the git tree, and generally promoting&lt;br /&gt;
good development practice.&lt;br /&gt;
&lt;br /&gt;
= Decision Making =&lt;br /&gt;
&lt;br /&gt;
Decisions are made where necessary by majority vote. Once a decision is made by&lt;br /&gt;
the technical steering committee, the decision should be respected as a democratic decision.&lt;br /&gt;
&lt;br /&gt;
[[Category:Policy]]&lt;/div&gt;</summary>
		<author><name>Jhelwig</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=User_talk:Laibsch&amp;diff=2281</id>
		<title>User talk:Laibsch</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=User_talk:Laibsch&amp;diff=2281"/>
		<updated>2010-04-19T14:06:54Z</updated>

		<summary type="html">&lt;p&gt;Jhelwig: Undo revision 2280 by 91.205.73.232 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ToDo&lt;br /&gt;
* think about policy for allowing and denying access to certain pages and groups of pages&lt;br /&gt;
* [http://linuxtogo.org/~leggewie/index.php/Interwiki_links interwiki links] to bug tracker, etc.&lt;br /&gt;
* is mail working correctly?  I don&#039;t seem to receive any.  Maybe my addy is incorrect.&lt;br /&gt;
&lt;br /&gt;
== Naming again ==&lt;br /&gt;
&lt;br /&gt;
Hi Laibsch, your [http://wiki.openembedded.net/index.php?title=Devshell&amp;amp;curid=187&amp;amp;diff=1296&amp;amp;oldid=1223 change] is an example for additional work resulting from misunderstanding abbreviations by wiki users (see [[Category talk:Dev]]). For a casual user it is not clear what &#039;&#039;Dev&#039;&#039; stands for. &#039;&#039;Developer&#039;&#039;? &#039;&#039;Development&#039;&#039;? &#039;&#039;Device&#039;&#039;? Once again i suggest to rename ambiguous pages and categories. -- [[User:Sledz|Sledz]] 07:58, 11 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: A wiki is a wiki and that is what it should remain being.  The [[:Category:Dev]] page clearly states what it is about.  No matter what you do, people will have different perceptions or plainly not read what is there.  I think it is a question of overhead vs. flexibility.  I choose flexibility to make users want to contribute to the wiki.  The overhead is far less than the time we spent arguing about it. --[[User:Laibsch|Laibsch]] 12:08, 11 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
PS: What about putting [[Openembedded:Help]] to the sidebar now?&lt;br /&gt;
&lt;br /&gt;
== Header Level ==&lt;br /&gt;
&lt;br /&gt;
Hi Laibsch, once again me, the nitpicker. ;-)&lt;br /&gt;
&lt;br /&gt;
You [http://wiki.openembedded.net/index.php?title=Infrastructure&amp;amp;curid=158&amp;amp;diff=1345&amp;amp;oldid=1340 reverted] my header level fixup at the [[Infrastructure]] page. In MediaWiki applications it is common practise, that the page title itself is header level 1, so all subheaders should be level 2 (see e.g. Wikipedia.org). This clear structure is very helpful if you want to export the pages to other formats (e.g. PDF for printing). -- [[User:Sledz|Sledz]] 15:49, 17 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I was unaware of this, but it looks like indeed Wikipedia follows this practice.  Not sure if this wiki will be exported to PDF, but how would we do this?  IOW, where would it make a practical difference?  Until now, I just found it natural to start header level at 1.  --[[User:Laibsch|Laibsch]] 20:38, 17 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: For PDF export there are a lot of MediaWiki extensions e.g. [http://www.mediawiki.org/wiki/Extension:PDF_Writer PDF Writer] together with [http://www.mediawiki.org/wiki/Extension:Collection Collection] or [http://www.mediawiki.org/wiki/Extension:Pdf_Book PdfBook] and [http://www.mediawiki.org/wiki/Extension:Pdf_Export PdfExport]. And as said before header level 1 is used for the page title itself. -- [[User:Sledz|Sledz]] 15:41, 18 May 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Jhelwig</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=Upgrading_packages&amp;diff=2279</id>
		<title>Upgrading packages</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=Upgrading_packages&amp;diff=2279"/>
		<updated>2010-04-16T03:10:12Z</updated>

		<summary type="html">&lt;p&gt;Jhelwig: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please follow these steps when upgrading a package to a more recent version.  This is not to be seen as dogma, but rather as best practice.  There are basically two cases we need to consider:&lt;br /&gt;
&lt;br /&gt;
# You do want to keep the version of the bb file that is in OE now (somebody else needs this particular version)&lt;br /&gt;
# You don&#039;t.&lt;br /&gt;
&lt;br /&gt;
Make sure you add an appropriate entry in checksums.ini and run the file through contrib/source-checker/oe-checksums-sorter.py if the new version fetches new sources.&lt;br /&gt;
&lt;br /&gt;
= You do not need to keep the last version of the package =&lt;br /&gt;
&lt;br /&gt;
# Use &amp;quot;[http://www.kernel.org/pub/software/scm/git/docs/git-mv.html &amp;lt;u&amp;gt;git-mv&amp;lt;/u&amp;gt;] packages/$pkg/$file_v1.bb packages/$pkg/$file_v2.bb&amp;quot; so that we don&#039;t accumulate unecessary cruft.&lt;br /&gt;
# make &amp;lt;u&amp;gt;further changes&amp;lt;/u&amp;gt; to packages/$pkg/$file_v2.bb as appropriate.&lt;br /&gt;
# At the very minimum do a &amp;lt;u&amp;gt;compilation test&amp;lt;/u&amp;gt; &amp;quot;bitbake $file&amp;quot; to make sure the new package does at least fetch and compile.&lt;br /&gt;
# inspect the output of &amp;quot;&amp;lt;u&amp;gt;git diff&amp;lt;/u&amp;gt; packages/$pkg/&amp;quot;.  Is this really what you want to commit?&lt;br /&gt;
# Final step, &amp;lt;u&amp;gt;publish your work&amp;lt;/u&amp;gt;.  &amp;quot;git commit packages/$pkg/ &amp;amp;&amp;amp; git push&amp;quot;.  Include conf/checksums.ini in your commit, if appropriate (see above).&lt;br /&gt;
&lt;br /&gt;
= You do want to keep the last version of the package =&lt;br /&gt;
&lt;br /&gt;
Same as above, except instead of the first step:&lt;br /&gt;
&lt;br /&gt;
 cp packages/$pkg/$file_v1.bb packages/$pkg/$file_v2.bb&lt;br /&gt;
 git-add packages/$pkg/$file_v2.bb&lt;br /&gt;
&lt;br /&gt;
= Removing recipes = &lt;br /&gt;
&lt;br /&gt;
Although preventing the accumulation of cruft in the repository is good, you should take into account that distributions may be using a certain recipe and depend upon it. Therefore, before removing a recipe from the repository, do a grep in the &#039;conf/distro&#039; directory. If the version you are going to remove is being explicitly used, send the respective patch to the development mailing list for &#039;RFC&#039; first.&lt;br /&gt;
&lt;br /&gt;
: This is too restrictive and I think above paragraph was added to this page without a directive from the core team who should have been the one to decide.  preferred-om-2008-versions.inc looks down virtually all recipes.  In essence, the above requirement for RFC translates into &amp;quot;all old versions have to accumulate in HEAD or an RFC for their removal sent&amp;quot;.  I don&#039;t think that is what we want.  I will certainly not follow that like a slave for packages that I maintain (For example, I will update libassa in a minute to 3.5.0 without keeping 3.4.2 around and wasting my time on re-libtoolizing an obsolete version of a fringe package.  Sorry). --[[User:Laibsch|Laibsch]] 22:07, 18 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Category:Policy]]&lt;/div&gt;</summary>
		<author><name>Jhelwig</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=Mailing_lists&amp;diff=2278</id>
		<title>Mailing lists</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=Mailing_lists&amp;diff=2278"/>
		<updated>2010-04-10T23:11:03Z</updated>

		<summary type="html">&lt;p&gt;Jhelwig: Fix broken subscribe link for openembedded-commits&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
||openembedded-devel@lists.openembedded.org || [http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel subscribe] || [http://thread.gmane.org/gmane.comp.handhelds.openembedded archive*]&lt;br /&gt;
|-&lt;br /&gt;
||openembedded-commits@lists.openembedded.org || [http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-commits subscribe] || [http://thread.gmane.org/gmane.comp.handhelds.openembedded.scm archive*]&lt;br /&gt;
|-&lt;br /&gt;
||openembedded-issues@lists.openembedded.org ||  || [http://lists.linuxtogo.org/pipermail/openembedded-issues/ archive]&lt;br /&gt;
|-&lt;br /&gt;
||openembedded-users@lists.openembedded.org ||  || [http://thread.gmane.org/gmane.comp.handhelds.openembedded.user archive*]&lt;br /&gt;
|-&lt;br /&gt;
||openembedded-stablebranch@lists.openembedded.org ||  || [http://thread.gmane.org/gmane.comp.handhelds.openembedded.stable archive*]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
* denotes a searchable archive&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last three mailing lists were removed from our server.&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;/div&gt;</summary>
		<author><name>Jhelwig</name></author>
	</entry>
	<entry>
		<id>https://www.openembedded.org/w/index.php?title=Getting_started_with_OE-Classic&amp;diff=2268</id>
		<title>Getting started with OE-Classic</title>
		<link rel="alternate" type="text/html" href="https://www.openembedded.org/w/index.php?title=Getting_started_with_OE-Classic&amp;diff=2268"/>
		<updated>2010-04-03T18:46:21Z</updated>

		<summary type="html">&lt;p&gt;Jhelwig: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setting up the toolchain and doing a build =&lt;br /&gt;
&lt;br /&gt;
Before starting to configure your OE installation by following the instructions on this page make sure you have read [[OEandYourDistro|how OE fits in with your host distribution]] and the [[RequiredSoftware|required software for compilation]].&lt;br /&gt;
&lt;br /&gt;
== Directory Structure ==&lt;br /&gt;
The base directory of your Openembedded environment (&amp;lt;nowiki&amp;gt;/stuff/&amp;lt;/nowiki&amp;gt;) is the location where sources will be checked out (or unpacked).&lt;br /&gt;
&lt;br /&gt;
* You must choose a location with &#039;&#039;&#039;no symlinks above it&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* If you work in a chrooted environment and have ccache installed it is highly recommended to &#039;su - &amp;lt;username&amp;gt;&#039; after you have chrooted. Compilation may fail because ccache needs a valid &amp;lt;nowiki&amp;gt;$HOME&amp;lt;/nowiki&amp;gt;, which is usually set when using a user account. It is recommended that ccache is not installed on systems used to build OpenEmbedded as it has been known to introduce other subtle build failures.&lt;br /&gt;
&lt;br /&gt;
To create the directory structure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ mkdir -p /stuff/build/conf&lt;br /&gt;
$ cd /stuff/&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Obtaining BitBake ==&lt;br /&gt;
To start using OE, you must first obtain the build tool it needs: &amp;lt;nowiki&amp;gt;bitbake&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to run bitbake without installing it, as a sibling directory of &amp;lt;nowiki&amp;gt;openembedded/&amp;lt;/nowiki&amp;gt; and &amp;lt;nowiki&amp;gt;build/&amp;lt;/nowiki&amp;gt; directories. Indeed, as bitbake is written in python it does not need to be compiled. You&#039;ll just have to set the PATH variable so that the [[BitBake]] tools are accessible (see [[#Setup the environment|Setup the environment]] section).&lt;br /&gt;
&lt;br /&gt;
===Getting a working bitbake===&lt;br /&gt;
&lt;br /&gt;
Bitbake switched from a svn repository to a git one, and the former is stuck at version 1.8.13, so when you try to build you may face an error: &amp;quot;Bitbake version 1.8.16 is required and version 1.8.13 was found&amp;quot;. In that case please fetch released version or use git repository.&lt;br /&gt;
&lt;br /&gt;
Which version is safe to use? Last release one is always working. When OE changes require newer version of BitBake metadata is changed and you will get message like above.&lt;br /&gt;
&lt;br /&gt;
One note for those who want to play with development versions of BitBake - Python 2.6 may be required by newer versions. This can be a problem for some Linux distributions.&lt;br /&gt;
&lt;br /&gt;
Basically the easier and faster solution (at the moment I&#039;m writing) is to get release one.&lt;br /&gt;
&lt;br /&gt;
  wget http://download.berlios.de/bitbake/bitbake-1.8.18.tar.gz&lt;br /&gt;
&lt;br /&gt;
Laibsch also provides a [http://oss.leggewie.org/oe/deb/bitbake_1.8.18-1_all.deb deb-package for bitbake 1.8.18] that should work in all current Ubuntu and Debian releases.&lt;br /&gt;
&lt;br /&gt;
===Using releases===&lt;br /&gt;
&lt;br /&gt;
Visit [http://developer.berlios.de/projects/bitbake/ BitBake homepage] and download tarball with latest release. For normal usage we suggest using 1.8.x (stable branch) versions. Unpack it to &#039;&#039;&#039;/stuff/bitbake/&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Obtaining OpenEmbedded using Git ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: &#039;&#039;Once upon a time OpenEmbedded was using Monotone for version control. If you have an OE Monotone repository on your computer, you should replace it with the Git repository.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: &#039;&#039;These are only brief instructions. For a longer description about using Git with OpenEmbedded refer to [[Git]] and [[GitPhraseBook]].&lt;br /&gt;
&lt;br /&gt;
The OpenEmbedded project resides in a Git repository. You can find it at &#039;&#039;git://git.openembedded.org/openembedded&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Web interface is: http://cgit.openembedded.org/&lt;br /&gt;
&lt;br /&gt;
To obtain Openembedded:&lt;br /&gt;
# Install git&lt;br /&gt;
# Go to the base directory of your OpenEmbedded environment&lt;br /&gt;
 $ cd /stuff/&lt;br /&gt;
# Checkout the repository&lt;br /&gt;
 $ git clone git://git.openembedded.org/openembedded&lt;br /&gt;
&lt;br /&gt;
or for the firewall challenged try&lt;br /&gt;
 $ git clone http://repo.or.cz/r/openembedded.git&lt;br /&gt;
&lt;br /&gt;
This is the data you&#039;ll be using for all the work.&lt;br /&gt;
&lt;br /&gt;
=== Updating OpenEmbedded ===&lt;br /&gt;
The .dev branch of OE is updated very frequently (as much as several times an hour). The distro branches are not updated as much but still fairly often. It seems good practice to update your OE tree at least daily. To do this, run&lt;br /&gt;
 $ git pull&lt;br /&gt;
(note: this must be done in the directory created by the checkout of openembedded. On this page, this directory is &amp;lt;tt&amp;gt;/stuff/openembedded&amp;lt;/tt&amp;gt;, but my checkout generated a directory &amp;lt;tt&amp;gt;/stuff/openembedded&amp;lt;/tt&amp;gt;. Check the name of your subdir, and use the name on your machine in the following examples)&lt;br /&gt;
&lt;br /&gt;
== Create local configuration ==&lt;br /&gt;
It&#039;s now time to create your local configuration.&lt;br /&gt;
While you could copy the default local.conf.sample like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ cd /stuff/&lt;br /&gt;
$ cp openembedded/conf/local.conf.sample build/conf/local.conf&lt;br /&gt;
$ vi build/conf/local.conf&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is actually recommended to start smaller and keep local.conf.sample in the background and add entries from there step-by-step as you understand and need them. Please, do not just edit build/conf/local.conf.sample but actually READ it (read it and then edit).&lt;br /&gt;
&lt;br /&gt;
For building a .dev branch, in your &amp;lt;nowiki&amp;gt;local.conf&amp;lt;/nowiki&amp;gt; file, you should have at least the following three entries. Example for the Angstrom distribution and the Openmoko gta01 machine:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
BBFILES = &amp;quot;/stuff/openembedded/recipes/*/*.bb&amp;quot;&lt;br /&gt;
DISTRO = &amp;quot;angstrom-2008.1&amp;quot;&lt;br /&gt;
MACHINE = &amp;quot;om-gta01&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you choose to install OE in your home directory, modify local.conf to refer to the OE paths as  /home/&amp;lt;username&amp;gt;/ rather than ~/. It does not find the *.bb packages otherwise.&lt;br /&gt;
&lt;br /&gt;
== Setup the environment ==&lt;br /&gt;
One of the four command sets below will need to be run every time you open a terminal for development. (You can automate this in ~/.profile, /etc/profile, or perhaps use a script to set the necessary variables for using [[BitBake]].)&lt;br /&gt;
&lt;br /&gt;
If you followed the recommendation above to use [[BitBake]] from Git:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ export BBPATH=/stuff/build:/stuff/openembedded&lt;br /&gt;
$ export PATH=/stuff/bitbake/bin:$PATH&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you installed [[BitBake]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ export BBPATH=/stuff/build:/stuff/openembedded&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternative syntax for those using the tcsh shell (e.g FreeBSD):&lt;br /&gt;
 &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ setenv PATH &amp;quot;/stuff/bitbake/bin:&amp;quot;$PATH&lt;br /&gt;
$ setenv BBPATH &amp;quot;/stuff/build:/stuff/openembedded:&amp;quot;$BBPATH&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Start building ==&lt;br /&gt;
The primary interface to the build system is the &amp;lt;nowiki&amp;gt;bitbake&amp;lt;/nowiki&amp;gt; command (see the bitbake users manual). &amp;lt;nowiki&amp;gt;bitbake&amp;lt;/nowiki&amp;gt; will download and patch stuff from the network, so it helps if you are on a well connected machine.&lt;br /&gt;
&lt;br /&gt;
Note that you should issue all bitbake commands from inside of the &amp;lt;nowiki&amp;gt;build/&amp;lt;/nowiki&amp;gt; directory, or you should override TMPDIR to point elsewhere (by default it goes to &amp;lt;nowiki&amp;gt;tmp/&amp;lt;/nowiki&amp;gt; relative to the directory you run the tools in).&lt;br /&gt;
&lt;br /&gt;
Here are some example invocations:&lt;br /&gt;
&lt;br /&gt;
Building a single package (e.g. nano):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake nano&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Building package sets (e.g. task-base):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake task-base&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Special note for&#039;&#039; &amp;lt;nowiki&amp;gt;task-base&amp;lt;/nowiki&amp;gt;: you may need additional setup for building this very one task. More details in [[ZaurusKernels]]&lt;br /&gt;
&lt;br /&gt;
Building a group of packages and deploying them into a rootfs image:&lt;br /&gt;
&lt;br /&gt;
GPE:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake x11-gpe-image&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
X11:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake x11-image&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OPIE:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake opie-image&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;NOTE:&#039;&#039;&#039; kergoth says it will take around 10GB of disk space to build an opie or gpe image for one architecture.&amp;lt;br&amp;gt;&lt;br /&gt;
sledge says: You can reduce it to ~4GB by [[Advanced_configuration|INHERIT += &amp;quot;rm_work&amp;quot;]])&lt;br /&gt;
&lt;br /&gt;
(&#039;&#039;&#039;NOTE:&#039;&#039;&#039; if you are using your custom kernel - set &amp;quot;Use the ARM EABI to compile the kernel (AEABI)&amp;quot; option in &amp;quot;Kernel Features&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
See the /stuff/openembedded/recipes/meta/ directory if you&#039;re curious about what meta/task and image targets exist.&lt;br /&gt;
&lt;br /&gt;
Building a single package, bypassing the long parse step (and therefore its dependencies--use with care):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ bitbake -b /stuff/openembedded/recipes/blah/blah.bb&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[Useful targets]] for a description of some of the more useful meta-packages. You will typically need at least one of the base images (&amp;lt;nowiki&amp;gt;bootstrap-image&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;opie-image&amp;lt;/nowiki&amp;gt; or &amp;lt;nowiki&amp;gt;gpe-image&amp;lt;/nowiki&amp;gt;), and if and only if you&#039;re building for an [http://wiki.openzaurus.org/Main_Page OpenZaurus] target requiring an installer image (such as C3000), an additional &amp;lt;nowiki&amp;gt;pivotboot-image&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Output of the build process (temporary files, log files and the binaries) all ends up in the &amp;lt;nowiki&amp;gt;tmp&amp;lt;/nowiki&amp;gt; directory.  Most interesting is probably the &amp;lt;nowiki&amp;gt;tmp/work/&amp;lt;/nowiki&amp;gt; directory.  Just have a look around the [[DirectoryStructure]].            &lt;br /&gt;
&lt;br /&gt;
Images generated by building package groups like &amp;lt;nowiki&amp;gt;opie-image&amp;lt;/nowiki&amp;gt; or &amp;lt;nowiki&amp;gt;pivotboot-image&amp;lt;/nowiki&amp;gt; are placed in the &amp;lt;nowiki&amp;gt;tmp/deploy/images/&amp;lt;/nowiki&amp;gt; directory. Individual ipkg packages are put in &amp;lt;nowiki&amp;gt;tmp/deploy/ipk&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Adding Packages ==&lt;br /&gt;
# Create [[bbfile]].&lt;br /&gt;
# Try building it locally.&lt;br /&gt;
# Fix eventual problems.&lt;br /&gt;
# Send .[[bbfile]] or an [[OePatch]] to the [http://wiki.openembedded.net/index.php/Mailing_Lists openembedded-devel mailing list]. Please note that changes should comply with the [[Commit_Policy | commit policy]].&lt;br /&gt;
&lt;br /&gt;
= Problems =&lt;br /&gt;
Try to solve problems first by checking that you have done everything right, that nothing has changed from this description and that you have the latest code (see [[GitPhraseBook]]). Look also in the log file (referenced in any error message you will receive). If you still have problems, try checking [[PossibleFailures]] and [http://www.openembedded.org/wiki/OeFaq#builderrors common build errors].  &lt;br /&gt;
Above links are dead, you can try the [[:Category:FAQ]].  If problems persist, ask on [[IRC]] or in the [[Mailing lists|openembedded mailing list]].&lt;br /&gt;
&lt;br /&gt;
The Openembedded metadata is changing constantly.  This implies several things:&lt;br /&gt;
&lt;br /&gt;
# Once you have a &amp;quot;known good&amp;quot; version that works well on your system, keep it!  To update, clone a new copy; don&#039;t overwrite that working version until it&#039;s known to be safe.&lt;br /&gt;
# To resolve build problems, &amp;quot;git pull&amp;quot; is your good friend.  Many times, the issues will already be fixed in the current tree.&lt;br /&gt;
# Not all metadata updates cause the local caches to update correctly.  Sometimes you&#039;ll need to remove the &amp;quot;.../tmp&amp;quot; work directory and rebuild from scratch.&lt;br /&gt;
# Similar issues apply to the package sources you download.&lt;br /&gt;
&lt;br /&gt;
= Portability issues =&lt;br /&gt;
Make sure to set &amp;lt;nowiki&amp;gt;TARGET_OS&amp;lt;/nowiki&amp;gt; to something other than linux in local.conf if your host isn&#039;t linux.&lt;br /&gt;
&lt;br /&gt;
GNU extensions to tools are often required.  Symlink GNU patch, make, and cp (from fileutils), chmod, sed, find, tar, awk into your OE development path.&lt;br /&gt;
&lt;br /&gt;
FreeBSD 4 users: Perl 5.0 is too old.  A more recent perl must be available as &amp;lt;nowiki&amp;gt;/usr/bin/perl&amp;lt;/nowiki&amp;gt;.  Unfortunately just having more recent perl in the path isn&#039;t good enough.  Some scripts are hard-coded for &amp;lt;nowiki&amp;gt;/usr/bin/perl&amp;lt;/nowiki&amp;gt;.  You can test for which perl you&#039;re using by typing perl -v.  see /usr/ports/UPDATING for instructions on updating perl. Don&#039;t forget to do a use.perl port as instructed in /usr/ports/UPDATING&lt;br /&gt;
&lt;br /&gt;
FreeBSD users: Set &amp;lt;nowiki&amp;gt;BUILD_OS&amp;lt;/nowiki&amp;gt; in local.conf to freebsdN where N is your major version number.  At least the cross gcc wants this.&lt;br /&gt;
&lt;br /&gt;
FreeBSD users: The build process of glibc uses a very long command line at some places.  Increase ARG_MAX to at least 131072, by editing /usr/sys/sys/syslimits.h and recompile your kernel (and reboot).&lt;br /&gt;
&lt;br /&gt;
= Productivity notes =&lt;br /&gt;
Use the interactive bitbake mode (&amp;quot;bitbake -i&amp;quot;) to speed up work when debugging or developing .bb files. Remember to run &amp;quot;parse&amp;quot; at the prompt first. Go!&lt;br /&gt;
&lt;br /&gt;
If you want to save some compile time or are interested in additional tweaks to local.conf take a look at the [[Advanced configuration]] page.&lt;br /&gt;
&lt;br /&gt;
[[Category:User]]&lt;/div&gt;</summary>
		<author><name>Jhelwig</name></author>
	</entry>
</feed>