<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de-AT">
	<id>https://becomwiki.live.md-websolutions.com/index.php?action=history&amp;feed=atom&amp;title=OpenEmbedded%3A_Development</id>
	<title>OpenEmbedded: Development - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://becomwiki.live.md-websolutions.com/index.php?action=history&amp;feed=atom&amp;title=OpenEmbedded%3A_Development"/>
	<link rel="alternate" type="text/html" href="https://becomwiki.live.md-websolutions.com/index.php?title=OpenEmbedded:_Development&amp;action=history"/>
	<updated>2026-05-13T13:28:24Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in BECOM Systems Support</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://becomwiki.live.md-websolutions.com/index.php?title=OpenEmbedded:_Development&amp;diff=126&amp;oldid=prev</id>
		<title>Peter: 1 Version importiert</title>
		<link rel="alternate" type="text/html" href="https://becomwiki.live.md-websolutions.com/index.php?title=OpenEmbedded:_Development&amp;diff=126&amp;oldid=prev"/>
		<updated>2023-10-31T08:03:06Z</updated>

		<summary type="html">&lt;p&gt;1 Version importiert&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de-AT&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 31. Oktober 2023, 10:03 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;de-AT&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(kein Unterschied)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Peter</name></author>
	</entry>
	<entry>
		<id>https://becomwiki.live.md-websolutions.com/index.php?title=OpenEmbedded:_Development&amp;diff=125&amp;oldid=prev</id>
		<title>en&gt;Peter: 1 Version importiert</title>
		<link rel="alternate" type="text/html" href="https://becomwiki.live.md-websolutions.com/index.php?title=OpenEmbedded:_Development&amp;diff=125&amp;oldid=prev"/>
		<updated>2023-08-22T19:35:48Z</updated>

		<summary type="html">&lt;p&gt;1 Version importiert&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Building an image ==&lt;br /&gt;
&lt;br /&gt;
Before you can use BitBake and OpenEmbedded, you have to set some environment variables. Change your working directory to &amp;#039;&amp;#039;btmxc&amp;#039;&amp;#039;:&lt;br /&gt;
 robert@bltLinux:~/oe$ cd btmxc&lt;br /&gt;
 robert@bltLinux:~/oe/btmxc$ ls&lt;br /&gt;
 bitbakeenv  conf  oeenv  scripts  tmp&lt;br /&gt;
and source the &amp;#039;&amp;#039;oeenv&amp;#039;&amp;#039; file (mind the space after the dot):&lt;br /&gt;
 robert@bltLinux:~/oe/btmxc$ . oeenv&lt;br /&gt;
 robert@bltLinux:~/oe/btmxc$&lt;br /&gt;
If you got your own copy of BitBake and you installed it in oe/bitbake/, you must also source&lt;br /&gt;
the &amp;#039;&amp;#039;bitbakeenv&amp;#039;&amp;#039; file. It will add BitBake&amp;#039;s path to your $PATH. (Note that you have to do this&lt;br /&gt;
step after sourcing oeenv, because oeenv sets the $OEBASE variable.)&lt;br /&gt;
 robert@bltLinux:~/oe/btmxc$ . bitbakeenv&lt;br /&gt;
 robert@bltLinux:~/oe/btmxc$&lt;br /&gt;
Every time you execute bitbake you should be in this directory. BitBake will generate a subfolder &amp;#039;&amp;#039;tmp&amp;#039;&amp;#039; here, where it stores everything!&lt;br /&gt;
&lt;br /&gt;
Now lets build our first image. Note that we use &amp;#039;&amp;#039;blt-image&amp;#039;&amp;#039; generically here. You have to use&lt;br /&gt;
the correct image name for your board according to the list below.&lt;br /&gt;
&lt;br /&gt;
 robert@bltLinux:~/oe/btmxc$ &amp;#039;&amp;#039;&amp;#039;bitbake blt-image&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 NOTE: Handling BitBake files: \ (6638/6638) [100 %]&lt;br /&gt;
 NOTE: Parsing finished. 6345 cached, 0 parsed, 293 skipped, 0 masked.&lt;br /&gt;
 NOTE: Cache is clean, not saving.&lt;br /&gt;
 NOTE: build 200904142114: started&lt;br /&gt;
 OE Build Configuration:&lt;br /&gt;
 BB_VERSION = &amp;quot;1.8.12&amp;quot;&lt;br /&gt;
 METADATA_BRANCH = &amp;quot;stable/2009&amp;quot;&lt;br /&gt;
 METADATA_REVISION = &amp;quot;13e3e087e4d45555ee29caf09576961db9e5f30e&amp;quot;&lt;br /&gt;
 TARGET_ARCH = &amp;quot;arm&amp;quot;&lt;br /&gt;
 TARGET_OS = &amp;quot;linux-gnueabi&amp;quot;&lt;br /&gt;
 MACHINE = &amp;quot;btmxc31&amp;quot;&lt;br /&gt;
 DISTRO = &amp;quot;angstrom&amp;quot;&lt;br /&gt;
 DISTRO_VERSION = &amp;quot;2009.X-test-20090414&amp;quot;&lt;br /&gt;
 TARGET_FPU = &amp;quot;hard&amp;quot;&lt;br /&gt;
 NOTE: Resolving any missing task queue dependencies&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
The first compilation of an image will take several hours since BitBake will build everything, starting from the cross tool chain and ending&lt;br /&gt;
with the root file system. &lt;br /&gt;
&lt;br /&gt;
Afterwards you can find the image ready at &lt;br /&gt;
 /oe/btmxc/tmp/deploy/glibc/images/[machine]/&lt;br /&gt;
&lt;br /&gt;
Usually, there are two types of image files:&lt;br /&gt;
;[name][machine].tar.bz2&lt;br /&gt;
:This is a bzip2-compressed tar-archive containing the complete root file system. Unpack it for mounting via NFS or setting up an SD card.&lt;br /&gt;
;[name][machine].jffs2&lt;br /&gt;
:This is a jffs2 image (Journalling Flash File System) you can place in NOR or NAND flash.&lt;br /&gt;
&lt;br /&gt;
=== Images for Bluetechnix hardware ===&lt;br /&gt;
&lt;br /&gt;
We provide recipes for one or more demo images in our OpenEmbedded repo for each module. Image recipes are contained in &amp;#039;&amp;#039;oe/openembedded/recipes/images/&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
;SBC-i.MX51&lt;br /&gt;
:sbc-imx51-console-image.bb&lt;br /&gt;
:sbc-imx51-qtembedded-image.bb&lt;br /&gt;
:sbc-imx51-gnome-image.bb&lt;br /&gt;
;CM-i.MX27 with DEV-i.MX27/35&lt;br /&gt;
:btmxc27-image.bb&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
;CM-i.MX35 with DEV-i.MX27/35&lt;br /&gt;
:btmxc35-image.bb&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
(To compile, don&amp;#039;t enter the &amp;quot;.bb&amp;quot; suffix, e.g. &amp;#039;&amp;#039;bitbake sbc-imx51-gnome-image&amp;#039;&amp;#039;.)&lt;br /&gt;
&lt;br /&gt;
== Building and installing a package ==&lt;br /&gt;
&lt;br /&gt;
Similarly to building an image, you can build a single package or application with OpenEmbedded. For example, to build the &amp;#039;&amp;#039;mtdutils&amp;#039;&amp;#039; package, enter&lt;br /&gt;
 robert@bltLinux:~/oe/btmxc$ bitbake mtdutils&lt;br /&gt;
&lt;br /&gt;
BitBake also offers a &amp;quot;dry-run&amp;quot; option &amp;#039;&amp;#039;-n&amp;#039;&amp;#039;. It is useful if you want to check in advance which dependencies must be compiled for your package.&lt;br /&gt;
 robert@bltLinux:~/oe/btmxc$ bitbake -n mtd-utils&lt;br /&gt;
&lt;br /&gt;
This package is not automatically added to an image, but BitBake generates an &amp;#039;&amp;#039;.ipk&amp;#039;&amp;#039; install package. These package files are placed in&lt;br /&gt;
 oe/btmxc/tmp/deploy/glibc/ipk/[architecture]&lt;br /&gt;
&lt;br /&gt;
You can use find to get all the mtd-utils .ipks, if you don&amp;#039;t know what architecture the package has (it is either your machine, something starting with &amp;#039;&amp;#039;arm&amp;#039;&amp;#039;, or &amp;quot;all&amp;quot;):&lt;br /&gt;
 harald@WS-HP4600-35:~/oe/btmxc/tmp/deploy/glibc/ipk$ find . -name &amp;quot;mtd-utils*ipk&amp;quot;&lt;br /&gt;
 ./armv7a/mtd-utils_1.2.0+git-r4.5_armv7a.ipk&lt;br /&gt;
 ./armv7a/mtd-utils-dbg_1.2.0+git-r4.5_armv7a.ipk&lt;br /&gt;
 ./armv7a/mtd-utils-dev_1.2.0+git-r4.5_armv7a.ipk&lt;br /&gt;
 harald@WS-HP4600-35:~/oe/btmxc/tmp/deploy/glibc/ipk$&lt;br /&gt;
&lt;br /&gt;
Now, if you want to install the package &amp;#039;&amp;#039;mtd-utils&amp;#039;&amp;#039; on your target, copy the .ipk file to your i.MX board and enter the following (on the TARGET!):&lt;br /&gt;
 opkg install mtd-utils_1.2.0+git-r4.5_armv7a.ipk&lt;br /&gt;
&lt;br /&gt;
== Cleaning/removing a package ==&lt;br /&gt;
&lt;br /&gt;
To clean a package with OpenEmbedded, type e.g.&lt;br /&gt;
 robert@bltLinux:~/oe/btmxc$ bitbake -c clean mtd-utils&lt;br /&gt;
This of course works also with image files. If you modify image recipes (e.g., by adding or removing packages), you have to clean and rebuild the image with OpenEmbedded for the changes to take effect&lt;br /&gt;
in the &amp;#039;&amp;#039;.tar.bz2&amp;#039;&amp;#039; and &amp;#039;&amp;#039;.jffs&amp;#039;&amp;#039; files.&lt;br /&gt;
&lt;br /&gt;
If you want to remove a package on the target, i.e. your i.MX board, type e.g. (on the TARGET)&lt;br /&gt;
 opkg remove mtd-utils&lt;br /&gt;
&lt;br /&gt;
== Devshell ==&lt;br /&gt;
&lt;br /&gt;
The BitBake development shell (devshell) places you inside the source code of a package and sets all environment variables (for compiler, etc.) that BitBake would also set while building the package.&lt;br /&gt;
It can be useful during development if you want to modify the source code and interrupt BitBake between unpacking the source and compiling the source.&lt;br /&gt;
&lt;br /&gt;
If the package was built before, clean it before starting the devshell. Otherwise BitBake detects that the package was successfully built and refuses to do it again.&lt;br /&gt;
 harald@WS-HP4600-35:~/oe/btmxc$ bitbake -c clean mtd-utils&lt;br /&gt;
&lt;br /&gt;
To open the devshell for e.g. mtd-utils, type&lt;br /&gt;
 harald@WS-HP4600-35:~/oe/btmxc$ bitbake -c devshell mtd-utils&lt;br /&gt;
&lt;br /&gt;
A new terminal window will be opened automatically. You can look e.g. at the $CC variable:&lt;br /&gt;
 harald@WS-HP4600-35:~/imx/oe51/btmxc/tmp/work/armv7a-angstrom-linux-gnueabi/mtd-utils-1.2.0+git-r4/git$ echo $CC&lt;br /&gt;
 ccache arm-angstrom-linux-gnueabi-gcc -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp&lt;br /&gt;
&lt;br /&gt;
With some packages, you can also try to directly compile within the devshell, mostly by simply typing &amp;#039;&amp;#039;make&amp;#039;&amp;#039; in the appropriate directory.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
===Invalid MD5 sum===&lt;br /&gt;
If the build fails because of an invalid md5 sum, run the &amp;#039;&amp;#039;fetch&amp;#039;&amp;#039; task on the recipe causing this error, then build again. The re-fetch might solve the problem.&lt;br /&gt;
 harald@WS-HP4600-35:~/oe/btmxc$ bitbake -c fetch [packagename]&lt;br /&gt;
&lt;br /&gt;
===Package fails to build===&lt;br /&gt;
In case a package fails to build, run the clean task on it, then build again. E.g.&lt;br /&gt;
 bitbake -c clean [packagename]&lt;br /&gt;
 bitbake failed-image&lt;br /&gt;
&lt;br /&gt;
If the problem persists, you may try disabling concurrent building by editing &amp;#039;&amp;#039;btmxc/conf/local.conf&amp;#039;&amp;#039;. &amp;#039;&amp;#039;PARALLEL_MAKE&amp;#039;&amp;#039; defines a flag to the compiler GCC and gives the number of parallel make threads. &amp;#039;&amp;#039;BB_NUMBER_THREADS&amp;#039;&amp;#039; decides how many threads &amp;#039;&amp;#039;bitbake&amp;#039;&amp;#039; will start.&lt;br /&gt;
 #PARALLEL_MAKE = &amp;quot;-j 4&amp;quot;&lt;br /&gt;
 PARALLEL_MAKE = &amp;quot;-j 1&amp;quot;&lt;br /&gt;
 #BB_NUMBER_THREADS = &amp;quot;2&amp;quot;&lt;br /&gt;
 BB_NUMBER_THREADS = &amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:i.MX]]&lt;br /&gt;
[[Category:OpenEmbedded]]&lt;/div&gt;</summary>
		<author><name>en&gt;Peter</name></author>
	</entry>
</feed>