<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Free Electronsbuildroot &#187;</title>
	<atom:link href="http://free-electrons.com/blog/tag/buildroot/feed/" rel="self" type="application/rss+xml" />
	<link>http://free-electrons.com</link>
	<description>Embedded Linux Experts</description>
	<lastBuildDate>Fri, 18 May 2012 06:06:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Experiment with Yocto</title>
		<link>http://free-electrons.com/blog/experiment-with-yocto/</link>
		<comments>http://free-electrons.com/blog/experiment-with-yocto/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 21:12:30 +0000</pubDate>
		<dc:creator>Gregory Clement</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[buildroot]]></category>
		<category><![CDATA[openembedded]]></category>
		<category><![CDATA[yocto]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=4245</guid>
		<description><![CDATA[I recently had the opportunity to use Yocto. I already practiced quite a lot with OpenEmbedded before. You can see Yocto as a project derived from OpenEmbedded even it is a bit more than that. In fact, Yocto is made &#8230; <a href="http://free-electrons.com/blog/experiment-with-yocto/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I recently had the opportunity to use <a href="http://www.yoctoproject.org">Yocto</a>. I already practiced quite a lot with OpenEmbedded before. You can see Yocto as a project derived from OpenEmbedded even it is a bit more than that.</p>
<p>In fact, Yocto is made of Poky (a build system based on OpenEmbedded), a few added build tools (swabber, pseudo, etc.), as well as a set of meta data allowing to create embedded distributions for a number of targets.</p>
<p>The strength but also the weakness of OpenEmbedded is that it a very flexible build system. It can make production root filesystems, but also a complete distribution with its ready to use package repository, and this for multiple hardware platforms. It makes it a difficult system to get started and get efficient with. Even two years ago, the OpenEmbedded documentation contributed to making it difficult to get started. Indeed, OpenEmbedded did supply some documentation, but which only started to make sense once you start mastering it. This is quite a paradox for a piece of documentation. It lacked the elements allowing developers to understand its operation well.</p>
<p>With Yocto, I was pleased to realize that substantial progress had been made on this side. The project comes with documentation that is much more exhaustive and above all much more accessible for beginners. Getting started with it is still not completely straightforward, but this time, this is rather because of the complexity and the rich features of the tool.</p>
<p>In a few hours, I managed to develop a minimalistic BSP (Board Support Package) for a given board (in this case a AT91SAM9G20-EK). The concept of <em>layer</em> allows to have a configuration layer specific to a given piece of hardware. You can even support multiple hardware platforms at once and add specific packages.  A layer is indeed just a set of packages and configurations (or configuration overrides). The BSP is just a layer specific to one or several pieces of hardware. </p>
<p>As you can see, even to support a simple embedded board, there is already a number of concepts to deal with. There are also multiple ways of achieving the same result but which will be easier or more difficult to maintain. The concept of &#8220;BSP&#8221; for Yocto is therefore a kind of guideline to allow the Yocto community to have a common point of reference. I will try to illustrate the use of a BSP on the AT91SAMG20-EK board here and/or on my <a href="https://plus.google.com/u/0/115533499592681008785">Google+ page</a>.</p>
<p>Another significant progress is optimizing build time for a &#8220;minimalistic&#8221; target, which went down from more than three hours to just over one hour now. It remains a long time for a very simple target.</p>
<p>To build a filesystem image with only a few components, <a href="http://buildroot.net/">Buildroot</a> remains much more appropriate. For systems that require a great number of components, more advanced functionality is then often needed, such as managing a package repository and supporting multiple hardware platforms at once for example. In this case, Yocto remains the best (the only?) option, all the more as this project addresses the traditional weaknesses of OpenEmbedded.</p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffree-electrons.com%2Fblog%2Fexperiment-with-yocto%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:85px; height:21px;"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://free-electrons.com/blog/experiment-with-yocto/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://free-electrons.com/blog/experiment-with-yocto/"  data-text="Experiment with Yocto" data-count="horizontal"></a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://free-electrons.com/blog/experiment-with-yocto/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/experiment-with-yocto/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Android Builders Summit: day 2, and Yocto Developer Day</title>
		<link>http://free-electrons.com/blog/abs2012-day-2-yocto-dev-day/</link>
		<comments>http://free-electrons.com/blog/abs2012-day-2-yocto-dev-day/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 15:34:15 +0000</pubDate>
		<dc:creator>Thomas Petazzoni</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[buildroot]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[yocto]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=4079</guid>
		<description><![CDATA[It&#8217;s now Thursday morning here in Redwood City, California, and I didn&#8217;t had the time yesterday morning to do a write-up about our second day at the Android Builders Summit. Hopefully the following write-up will give our readers some details &#8230; <a href="http://free-electrons.com/blog/abs2012-day-2-yocto-dev-day/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s now Thursday morning here in Redwood City, California, and I didn&#8217;t had the time yesterday morning to do a write-up about our second day at the Android Builders Summit. Hopefully the following write-up will give our readers some details about what happened during this day.</p>
<p>This second of Android Builders Summit was co-located with the <a href="https://events.linuxfoundation.org/events/embedded-linux-conference/yocto-project-developer-day">Yocto Developer Day</a>, and as my colleagues Maxime Ripard and Grégory Clément were attending the two tracks of Android Builders Summit, I decided that I would attend the <i>Yocto Developer Day</i>.</p>
<h3>Yocto Developer Day</h3>
<p><a href="http://www.yoctoproject.org/">Yocto</a> is an umbrella project that consists in creating an embedded Linux build system, called <a href="http://www.yoctoproject.org/projects/poky">Poky</a> and some associated development tools. <i>Poky</i> takes its roots into the OpenEmbedded community: it re-uses the <i>bitbake</i> recipe processor, and a set of recipes for building packages that are now shared between Yocto and OpenEmbedded through the <i>openembedded-core</i> repository. At Free Electrons, we are strong contributors to the <a href="http://buildroot.org">Buildroot</a> build system, and we use it for many of our customer projects. However, being pushed very strongly by Intel and the Linux Foundation, Yocto is gaining traction, and the fact that Yocto provides stable releases every 6 months now makes it a lot more usable than OpenEmbedded, which had to be checked out through Git, leaving the user with the uncertainty on whether the version (s)he got would actually work or not. And moreover, Buildroot and Yocto are not really competing projects: Buildroot is a simple root filesystem image generator, while Yocto is more a cross-distribution generator, they target projects of different sizes.</p>
<p>I started attending the Yocto Developer Day with a general presentation talk about what Yocto is and why it is necessary. Nothing really new in this talk for someone who already uses embedded Linux build systems and understands the need for such tools. However, the thing that always surprises me is that the Yocto project claims everywhere to solve the fragmentation problem in the embedded Linux build system space (there are too many tools in this area) by creating <i>the</i> tool, and that they envision that in 5 years, everybody will link embedded Linux build with the Yocto project. It&#8217;s quite funny because at the moment, they have just created yet another build system <img src='http://free-electrons.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  But it&#8217;s true that the project is gaining traction and seems to attract the SoC vendors, which is a good thing because having a standard build system is so much better than having crappy vendor-specific build systems.</p>
<div id="attachment_4087" class="wp-caption aligncenter" style="width: 410px"><a href="http://free-electrons.com/wp-content/uploads/2012/02/12-11.jpg"><img src="http://free-electrons.com/wp-content/uploads/2012/02/12-11.jpg" alt="Yocto Developer Day: Yocto introduction by Saul Wold from Intel" title="Yocto Developer Day: Yocto introduction by Saul Wold from Intel" width="400" class="size-full wp-image-4087" /></a><p class="wp-caption-text">Yocto Developer Day: Yocto introduction by Saul Wold from Intel</p></div>
<p>The second talk, by Saul Wold, from Intel, went more into the details on how to use Yocto: what the different components are, how recipes are written, how configuration is defined, what <i>tasks</i>, <i>images</i>, <i>recipes</i>, etc are. I would have liked if the talk went a bit further into the details, but it gave a very good introduction to the Poky build system.</p>
<p>In the afternoon, I attended a hands-on session for new users to Yocto. The room setup was very impressive: about forty high-end PCs provided, each having a development board next to it. The first part of the hands-on session consisted in using Yocto to produce a basic filesystem image which we booted into Qemu. In order to solve the very long first build problem that all OpenEmbedded and Yocto users face, they had pre-built a number of packages and stored them into a <i>shared state</i> directory. Interestingly, the size of the Yocto output directory was about 30 GB, just to build an embedded Linux system with BusyBox and a few minor things. Once this was done, we went ahead in creating our own layer, in order to define our own image and its contents it terms of packages. We used it to add a graphical splashscreen, and I also extended it to include Dropbear into the build. The whole thing went quite well. One thing that worries me is that bitbake and the build process really looks like a black box, and it seems hard to understand what&#8217;s going on behind the scenes. With Buildroot, I am used to a very simple build system with which it is very easy to fully understand what&#8217;s going on. Here, even the people that give speeches about Yocto or deliver a bit of training, seem to not fully understand what&#8217;s going on. This impression is also validated by the complexity of the output directory (where all the build results are). But maybe it&#8217;s just a matter of spending some time using it and reading some code, but the fact that people that have been developing/using Yocto for a while still do not really understand its internals is a bit surprising. Or maybe it&#8217;s just a wrong impression on my side.</p>
<div id="attachment_4088" class="wp-caption aligncenter" style="width: 410px"><a href="http://free-electrons.com/wp-content/uploads/2012/02/12-1b.jpg"><img src="http://free-electrons.com/wp-content/uploads/2012/02/12-1b.jpg" alt="Yocto Developer Day: hands-on session starting" title="Yocto Developer Day: hands-on session starting" width="400" class="size-full wp-image-4088" /></a><p class="wp-caption-text">Yocto Developer Day: hands-on session starting</p></div>
<p>The next part of the hands-on was around the Eclipse integration of Yocto. First with <a href="http://www.yoctoproject.org/projects/application-development-toolkit-adt">ADT (Application Development Toolkit)</a>, which integrates the cross-development thing into Eclipse. Thanks to an agent running into the target, Eclipse is able to push the application binary to the target and start <i>gdbserver</i> on it, and therefore transparently start a debugging session for the user. I am not a big fan of Eclipse (I have been an Emacs user for a huge number of years), but it&#8217;s true that for people used to Integrated Development Environments, this ADT thing provides a quite nice experience. Then, we went ahead in trying to use <a href="http://www.yoctoproject.org/projects/hob">HOB</a>, which integrates into Eclipse the possibility of selecting which packages should be built and integrated into the image. Unfortunately, it seems it didn&#8217;t work for anybody (even though we were selecting the package in the GUI, it didn&#8217;t appear in the final filesystem image), but that wasn&#8217;t a big problem since I don&#8217;t really see the point in a tool such as HOB: editing configuration files is something that shouldn&#8217;t scare any embedded Linux developer.</p>
<p>Regardless of the contents of the hands-on, I was quite interested by how it was conducted. Instead of having some written lab instructions, and having everyone following, alone, those lab instructions, the instructor was simply demoing the various steps to be done on the video-projector screen, which we simply had to replicate. It makes the session quite interactive, with of course the drawback that everyone needs to progress at the same pace.</p>
<p>All in all, this Yocto Developer Day was interesting, and I hope to find some time soon to experiment further with Yocto.</p>
<h3>Android Builders Summit</h3>
<p>My colleagues attended multiple talks about Android during this second day of the conference. In the morning, they attended <a href="https://events.linuxfoundation.org/events/android-builders-summit/yaghmour">Headless Android</a>, <a href="https://events.linuxfoundation.org/events/android-builders-summit/brown">Towards a Standard Audio HAL for Android</a>, <a href="https://events.linuxfoundation.org/events/android-builders-summit/foy">Android on eMMC: Optimizing for Performance</a>.</p>
<div id="attachment_4089" class="wp-caption aligncenter" style="width: 410px"><a href="http://free-electrons.com/wp-content/uploads/2012/02/12-1c.jpg"><img src="http://free-electrons.com/wp-content/uploads/2012/02/12-1c.jpg" alt="Android Builders Summit: Real-time Android" title="Android Builders Summit: Real-time Android" width="400" class="size-full wp-image-4089" /></a><p class="wp-caption-text">Android Builders Summit: Real-time Android</p></div>
<p>In the afternoon, Grégory attended the <a href="https://events.linuxfoundation.org/events/android-builders-summit/mauerer">Real-Time Android</a> talk, which he said, was interesting. It showed that it was possible to integrate the PREEMPT_RT patches together with the Android kernel modifications, and provide a system having real-time capabilities for native (C/C++) applications and still the nice aspect of the Android user interface. During the same slot, Maxime attended the <a href="https://events.linuxfoundation.org/events/android-builders-summit/gargentaa">Android Services Black Magic</a>, given by Aleksandar (Saša) Gargenta from Marakana. As usual with the Gargenta brothers, the talk was highly interesting and gave a lot of detailed information about Android services.</p>
<h3>Some other thoughts&#8230;</h3>
<p>At the organization level, the conference organizers should make it clear in the conference program and flyer the location where the slides will be posted. At almost <i>every</i> talk there is someone that asked if and where the slides will be posted, and the speakers are sometimes a bit uncomfortable because there is no clearly identified place to post the slides. In the past years, it was made clear that the slides would be posted on the <a href="http://elinux.org">elinux.org</a> wiki, but this year, things are very unclear. Moreover, it&#8217;s even more surprising since speakers are asked to post their slides into their Linux Foundation website account, but those slides are not being made visible. Maybe a good suggestion for the Linux Foundation would be to improve how slides are handled and posted online.</p>
<p>Another thought about the Android Builders Summit is the surprising absence of Google, the developer and maker of Android. Google sponsors the Embedded Linux Conference which takes place right after the Android Builders Summit, but they do not sponsor the Android Builders Summit. There is also no talk from Google developers, and I haven&#8217;t seen any Google person in the attendees. It&#8217;s even more surprising when we know that the conference takes place in a location about 18 minutes away by car from Google headquarters in Mountain View. Maybe Google doesn&#8217;t want to see Android being used in application areas other than phones and tablets?</p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffree-electrons.com%2Fblog%2Fabs2012-day-2-yocto-dev-day%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:85px; height:21px;"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://free-electrons.com/blog/abs2012-day-2-yocto-dev-day/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://free-electrons.com/blog/abs2012-day-2-yocto-dev-day/"  data-text="Android Builders Summit: day 2, and Yocto Developer Day" data-count="horizontal"></a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://free-electrons.com/blog/abs2012-day-2-yocto-dev-day/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/abs2012-day-2-yocto-dev-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Electrons at the Android Builders Summit and the Embedded Linux Conference: one talk and video recording</title>
		<link>http://free-electrons.com/blog/free-electrons-at-abs-elc-2012/</link>
		<comments>http://free-electrons.com/blog/free-electrons-at-abs-elc-2012/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 05:23:45 +0000</pubDate>
		<dc:creator>Thomas Petazzoni</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[buildroot]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[elc]]></category>
		<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=3904</guid>
		<description><![CDATA[A good part of the Free Electrons team will be in San Francisco (actually, not in San Francisco, but in the Bay Area) from February, 13th to 17th for the Android Builders Summit and the Embedded Linux Conference. The Android &#8230; <a href="http://free-electrons.com/blog/free-electrons-at-abs-elc-2012/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A good part of the Free Electrons team will be in San Francisco (actually, not in San Francisco, but in the Bay Area) from February, 13th to 17th for the <a href="https://events.linuxfoundation.org/events/android-builders-summit">Android Builders Summit</a> and the <a href="https://events.linuxfoundation.org/events/embedded-linux-conference">Embedded Linux Conference</a>.</p>
<div class="wp-caption aligncenter" style="width: 510px"><img alt="Android Builders Summit 2012" src="https://events.linuxfoundation.org/images/stories/headers/2012/2012_abs_header.png" title="Android Builders Summit 2012" width="500"/><p class="wp-caption-text">Android Builders Summit 2012</p></div>
<p>The <a href="https://events.linuxfoundation.org/events/android-builders-summit">Android Builders Summit</a> is the second edition of this conference dedicated to Android system development (and not application development). Compared to last year, the conference has been extended to three parallel tracks during two days, as can be seen in the <a href="https://events.linuxfoundation.org/events/android-builders-summit/schedule">schedule</a>. There are many talks about Android customization, Android internals, Android porting, usage of Android in specific markets (medical devices, vehicle infotainment), etc. A lot of useful talks for developers working at the Android system level.</p>
<div class="wp-caption aligncenter" style="width: 510px"><img alt="Embedded Linux Conference 2012" src="https://events.linuxfoundation.org/images/stories/headers/2012/2012_elc_header.png" title="Embedded Linux Conference 2012" width="500"/><p class="wp-caption-text">Embedded Linux Conference 2012</p></div>
<p>The <a href="https://events.linuxfoundation.org/events/embedded-linux-conference">Embedded Linux Conference</a> is now a well-established conference. Again for this 2012 edition, there will be three parallel tracks during three days. As the <a href="https://events.linuxfoundation.org/events/embedded-linux-conference/schedule">schedule</a> shows, there will be talks about many, many topics: performance and optimization, power management, build systems, drivers for various types of devices, multimedia, ARM kernel support and much more.</p>
<p>I will be giving a talk about <a href="https://events.linuxfoundation.org/events/embedded-linux-conference/petazzoni">Buildroot: A Nice, Simple and Efficient Embedded Linux Build System</a> on the second day of the conference. The aim of the talk is to give a status on where Buildroot is, three years after a maintainer was choosen and a big clean up work was started. The project has changed a lot compared to its state three years ago, so I thought it would be nice to make a status on where Buildroot and where it is going.</p>
<p>With my colleagues <a href="http://free-electrons.com/company/staff/gregory-clement/">Grégory Clément</a> and <a href="http://free-electrons.com/company/staff/maxime-ripard/">Maxime Ripard</a>, we will also record all the talks from the <i>Embedded Linux Conference</i> in order to put the videos online, freely available, after the conference, as we have done for many <a href="http://free-electrons.com/community/videos/conferences/">past conferences</a>.</p>
<p>We hope to meet you in San Francisco for the Android Builders Summit and the Embedded Linux Conference!</p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffree-electrons.com%2Fblog%2Ffree-electrons-at-abs-elc-2012%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:85px; height:21px;"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://free-electrons.com/blog/free-electrons-at-abs-elc-2012/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://free-electrons.com/blog/free-electrons-at-abs-elc-2012/"  data-text="Free Electrons at the Android Builders Summit and the Embedded Linux Conference: one talk and video recording" data-count="horizontal"></a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://free-electrons.com/blog/free-electrons-at-abs-elc-2012/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/free-electrons-at-abs-elc-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Free Electrons at FOSDEM: two talks and video recording</title>
		<link>http://free-electrons.com/blog/free-electrons-fosdem-2012/</link>
		<comments>http://free-electrons.com/blog/free-electrons-fosdem-2012/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 09:12:16 +0000</pubDate>
		<dc:creator>Thomas Petazzoni</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[buildroot]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[fosdem]]></category>
		<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=3901</guid>
		<description><![CDATA[As usual, Free Electrons will again be present at the FOSDEM conference in Brussels, on February, 4th and February 5th. We will of course mostly be attending the Embedded DevRoom, with multiple talks around development in the embedded space. We &#8230; <a href="http://free-electrons.com/blog/free-electrons-fosdem-2012/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img alt="I&#039;m going to FOSDEM" src="http://fosdem.org/2012/promo/going-to" title="I&#039;m going to FOSDEM" class="alignright" width="150" height="89" />As usual, <a href="http://www.free-electrons.com">Free Electrons</a> will again be present at the <a href="http://www.fosdem.org">FOSDEM</a> conference in Brussels, on February, 4th and February 5th. We will of course mostly be attending the <a href="http://fosdem.org/2012/schedule/track/embedded_devroom">Embedded DevRoom</a>, with multiple talks around development in the embedded space.</p>
<p>We will also be giving two talks this year:</p>
<ul>
<li>My colleague <a href="http://free-electrons.com/company/staff/maxime-ripard/">Maxime Ripard</a> will be giving a talk about <a href="http://fosdem.org/2012/schedule/event/iio">IIO, a new subsystem for I/O devices</a>. In short, IIO is a new subsystem in the kernel to write drivers for devices like Analog-to-Digital converters. Maxime has worked on a driver inside the IIO subsystem for the internal ADCs of the AT91 processors from Atmel, and will base his talk mostly on the experience developing this driver. This talk will take place on Saturday, 12:00 AM to 1:00 PM in the Lameere room.</li>
<li>I will be giving a talk on <a href="http://fosdem.org/2012/schedule/event/using_qt_for_non_graphical_applications">Using Qt for non-graphical applications</a>. It is a talk that has already been given at the Embedded Linux Conference Europe, but the audience of FOSDEM and ELCE being quite different, we have chosen to propose it for FOSDEM as well, and it got accepted. This talk will take place on Sunday, 1:00 PM to 2:00 PM in the Lameere room.</li>
</ul>
<p>There are also other talks that are worth noting: a <a href="http://fosdem.org/2012/schedule/event/linux_soc_power">SoC power management talk</a> from Jean Pihet who works on OMAP power management support in the Linux kernel, a talk about <a href="http://fosdem.org/2012/schedule/event/opencores_openrisc_true_open_hw">OpenCores and OpenRISC</a>, a talk about <a href="http://fosdem.org/2012/schedule/event/safe_upgrade_of_embedded_systems">Safe Upgrade of Embedded Systems</a> by Arnout Vandecappelle, who contributes a lot to Buildroot, and also other talks about OpenWRT, Yocto, licensing issues in Android, the EFL libraries, and more.</p>
<p>We will also be carrying our camcorder to video record those talks. We are trying to see with the FOSDEM organization team if it possible to record the audio directly from the room sound systems in order to provide better audio quality in our videos.</p>
<p>If you happen to be at FOSDEM, we&#8217;d be very happy to meet you!</p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffree-electrons.com%2Fblog%2Ffree-electrons-fosdem-2012%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:85px; height:21px;"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://free-electrons.com/blog/free-electrons-fosdem-2012/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://free-electrons.com/blog/free-electrons-fosdem-2012/"  data-text="Free Electrons at FOSDEM: two talks and video recording" data-count="horizontal"></a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://free-electrons.com/blog/free-electrons-fosdem-2012/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/free-electrons-fosdem-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buildroot Developer Day, Brussels edition</title>
		<link>http://free-electrons.com/blog/bdd-2012-brussels/</link>
		<comments>http://free-electrons.com/blog/bdd-2012-brussels/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 21:03:55 +0000</pubDate>
		<dc:creator>Thomas Petazzoni</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[buildroot]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[fosdem]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=3912</guid>
		<description><![CDATA[Around each FOSDEM conference and Embedded Linux Conference Europe event, we have been organizing a Buildroot Developer Day for a few years, in order to gather some developers and users of the Buildroot build system, in order to discuss the &#8230; <a href="http://free-electrons.com/blog/bdd-2012-brussels/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img alt="Buildroot" src="http://buildroot.org/images/logo_small.png" title="Buildroot" class="alignright" width="200" height="100" />Around each FOSDEM conference and Embedded Linux Conference Europe event, we  have been organizing a <b>Buildroot Developer Day</b> for a few years, in order to gather some developers and users of the <a href="http://www.buildroot.org">Buildroot</a> build system, in order to discuss the development of Buildroot, its features, development process, design, and more.</p>
<p>In Prague at the last Embedded Linux Conference Europe in October 2011, we had a very interesting meeting that gathered developers from other build systems (OE-lite, OpenBricks and PXTdist), and we published a <a href="http://free-electrons.com/blog/report-bdd-oct-2011/">report of this meeting</a>.</p>
<p>The next Buildroot Developer Day will take place on Friday, 3rd February, just before the FOSDEM conference, in Brussels. This is the first meeting that will gather such a number of Buildroot developers: Peter Korsgaard (Buildroot maintainer), Arnout Vandecapelle (developer from Essensium/Mind, who has been contributing a lot to Buildroot lately), Thomas De Schampheleire (also a big contributor in the last year or so), Luca Ceresoli, Yann E. Morin  (developer of Crosstool-NG), my colleague <a href="/company/staff/maxime-ripard/">Maxime Ripard</a> (who contributed package enhancements and improvements of the package infrastructure) and myself.</p>
<p>This meeting is open to all Buildroot developers and users, and will take place in a location easily accessible in the center of Brussels. Do not hesitate to contact me at <script>
<!--
function escramble(){
 var a,b,c,d,e,f,g,h,i
 a='<a href=\"mai'
 b='thomas.petazzoni'
 c='\">'
 a+='lto:'
 b+='@'
 e='</a>'
 f=''
 b+='free-electrons.com'
 g='<img src=\"'
 h=''
 i='\" alt="Email us." border="0">'
 if (f) d=f
 else if (h) d=g+h+i
 else d=b
 document.write(a+b+c+d+e)
}
escramble()
//-->
</script> if you want to take part to this meeting.</p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffree-electrons.com%2Fblog%2Fbdd-2012-brussels%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:85px; height:21px;"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://free-electrons.com/blog/bdd-2012-brussels/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://free-electrons.com/blog/bdd-2012-brussels/"  data-text="Buildroot Developer Day, Brussels edition" data-count="horizontal"></a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://free-electrons.com/blog/bdd-2012-brussels/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/bdd-2012-brussels/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buildroot 2011.11 released: details on new features</title>
		<link>http://free-electrons.com/blog/buildroot-2011-11/</link>
		<comments>http://free-electrons.com/blog/buildroot-2011-11/#comments</comments>
		<pubDate>Sun, 04 Dec 2011 22:30:33 +0000</pubDate>
		<dc:creator>Thomas Petazzoni</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[buildroot]]></category>
		<category><![CDATA[contribution]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=3781</guid>
		<description><![CDATA[As planned, Buildroot 2011.11 has been released at the end of November. You can download this release as a tarball or through the Git repository. This release brings a set of new features on which I thought it would be &#8230; <a href="http://free-electrons.com/blog/buildroot-2011-11/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As planned, <a href="http://www.buildroot.org">Buildroot 2011.11</a> has been released at the end of November. You can download this release as a <a href="http://buildroot.org/downloads/buildroot-2011.11.tar.bz2">tarball</a> or through the <a href="http://git.buildroot.net/buildroot">Git repository</a>.</p>
<p>This release brings a set of new features on which I thought it would be nice to give some details.</p>
<h2>The <code>file</code> and <code>local</code> site method</h2>
<p>Each package in Buildroot defines from where the source code for the particular component being built is fetched. Buildroot has of course always supported fetching a tarball from HTTP of FTP servers. Later on, Buildroot has added support for fetching from Git, Subversion and Bazaar repositories, for example by doing:</p>
<pre>
MYPKG_SITE = http://somelocation.com/svn/foobar/trunk
MYPKG_SITE_METHOD = svn
</pre>
<p>or</p>
<pre>
MYPKG_SITE = git://somelocation.com/foobar.git
</pre>
<p>The <code>&lt;pkg&gt;_SITE_METHOD</code> variable allows to define the fetching method. When not specified, Buildroot tries to guess it from the <code>&lt;pkg&gt;_SITE</code> value. Of course, in ambiguous cases such as Subversion or Git repositories over HTTP (as shown in the first example), the <code>&lt;pkg&gt;_SITE_METHOD</code> must be specified.</p>
<p>This new version of Buildroot brings two new <i>site methods</i>: <code>file</code> and <code>local</code>.</p>
<p>The <code>file</code> site method allows to specify the location of a local tarball as the source code for the component to be built. For example:</p>
<pre>
MYPKG_SITE = /opt/software/something-special-1.0.tar.gz
MYPKG_SITE_METHOD = file
</pre>
<p>This can be useful for internal software that isn&#8217;t publicly available on a HTTP or FTP server or in a revision control system. This new <i>site method</i> was added by David Wagner, who has been an intern at Free Electrons between April and September this year.</p>
<p>The new <code>local</code> site method allows to specify the location of the source code to be built as a local directory. Buildroot will automatically copy the contents of this directory into the build directory of the component and build it from here. This is very useful because it allows to version control your source code as you wish, make changes to it, and easily tell Buildroot to rebuild your component. Note that the copy is using <i>rsync</i> so that further copies are very fast (see the pkg-reconfigure and pkg-rebuild targets below). An example of using the <code>local</code> site method:</p>
<pre>
MYPKG_SITE = /opt/software/something-special/
MYPKG_SITE_METHOD = local
</pre>
<p>This new <i>site method</i> has been implemented by myself, as the result from my experience of using Buildroot with various Free Electrons customers.</p>
<h2>The <i>source directory override</i> mechanism</h2>
<p>The <i>local</i> site method described above is great for packaging special components that are specific to the embedded device one is working on, like the end-user application, or special internal libraries, etc.</p>
<p>However, there are cases where it is needed to work with a specific version of an open-source component. This is typically the case for the Linux kernel or the chosen bootloader (U-Boot, Barebox) or with other components. In that case, one may want to keep using Buildroot to build those components, but tell Buildroot to fetch the source code from a different location than the official tarball of the component. This is what the <i>source directory override</i> mechanism provide.</p>
<p>For example, if you want Buildroot to use the source code of the Linux kernel from <code>/opt/project/linux/</code> rather than download it from a Git repository or as a tarball, you can write the following variable definition in a <code>board/company/project/local.mk</code> file:</p>
<pre>
LINUX_OVERRIDE_SRCDIR = /opt/project/linux
</pre>
<p>Then, you reference this file through the <code>BR2_PACKAGE_OVERRIDE_FILE</code> option, in <i>Build options -> location of a package override file</i>. When building the Linux kernel, Buildroot will copy the source code from <code>/opt/project/linux</code> into the kernel build directory, <code>output/build/linux-VERSION/</code> and then start the build process of the kernel.</p>
<p>Basically, this mechanism is exactly like the <code>local</code> site method described previously, except that it is possible to override the source directory of a package without modifying the package <code>.mk</code> file, which is nice for open-source packages supported in Buildroot but that require local modifications.</p>
<p>To summarize, here is my recommendation on how to use Buildroot for packages that require project-specific modifications:</p>
<ul>
<li>You are using an existing open-source component on which you make some tiny bug fixes or modifications. In this case, the easiest solution is to add additional patches to the package directory, in <code>package/&lt;thepackage&gt;/</code>.</li>
<li>You are using an existing open-source component, but are making major changes to it, that require proper version control outside of Buildroot. In this case, using the <i>source directory override</i> feature is recommended: it allows to keep the Buildroot package <code>.mk</code> file unmodified while still using your custom source code for the package.</li>
<li>You have project-specific libraries or applications and want to integrate them in the build. My commendation is to version control them outside of Buildroot, and then create Buildroot packages for them using the <code>local</code> site method. Note that in the <code>pkg_SITE</code> variable, you can use the <code>$(TOPDIR)</code> variable to reference the top source directory of Buildroot. I for example often use <code>MYAPP_SITE = $(TOPDIR)/../myapplication/</code>.</li>
</ul>
<h2>The <code>&lt;pkg&gt;-rebuild</code> and <code>&lt;pkg&gt;-reconfigure</code> targets</h2>
<p>For a long time, when one wanted to completely rebuild a given package from scratch, a possibility was has been to remove its build directory completely before restarting the build process:</p>
<pre>
rm -rf output/build/mypackage-1.0/
make
</pre>
<p>Or, using the <code>-dirclean</code> target available for each package:</p>
<pre>
make avahi-dirclean
make
</pre>
<p>As these commands remove completely the build directory, the build process is restarted from the beginning: extracting the source code, patching the source code, configuring, compiling, installing.</p>
<p>In 2011.11, we have added two new per-package targets to make it easy to use Buildroot during the development of components:</p>
<ul>
<li><code>make mypkg-reconfigure</code> will restart the build process of <code>mypkg</code> from the configuration step (the source code is not re-extracted or repatched, so modifications made to the build directory are preserved)</li>
<li><code>make mypkg-rebuild</code> will restart the build process of <code>mypkg</code> from the compilation step (the source code is not re-extracted or repatched, the configuration step is not redone)</li>
</ul>
<p>So, a typical usage could be:</p>
<pre>
emacs output/build/mypkg-1.0/src/foobar.c
make foobar-rebuild
</pre>
<p>However, beware that all build directories are removed when you do <code>make clean</code>, so the above example is only useful for quick testing of changes.</p>
<p>The case where the <code>-reconfigure</code> and <code>-rebuild</code> are really useful is in combination with the <code>local</code> site method or the <i>source override directory</i> mechanism. In this case, when <code>pkg-reconfigure</code> or <code>pkg-rebuild</code> is invoked, a synchronization of the source code is done between the source directory and the build directory is done before restarting the build.</p>
<p>Let&#8217;s take the example of a package named <code>mypkg</code> for which <code>package/mypkg/mypkg.mk</code> contains:</p>
<pre>
MYPKG_SITE = /opt/mypkg
MYPKG_SITE_METHOD = local
</pre>
<p>Then, to work on your package, you can simply do</p>
<pre>
emacs /opt/mypkg/foobar.c    # Edit as usual your project
make mypkg-rebuild           # Synchronizes the source code from
                             # /opt/mypkg to the build directory
                             # and restart the build
</pre>
<h2>Integration of real-time extensions</h2>
<p>In this 2011.11, an interesting addition is the integration of the Xenomai and RTAI real-time extensions to the Linux kernel. The Xenomai integration was initially proposed by Thomas de Schampheleire and then extended by myself, and I have also added the RTAI integration. This integration allows to seamlessly integrate the kernel patching process and the compilation of the required userspace libraries for those real-time extensions.</p>
<h2>Conversion of the documentation to <i>asciidoc</i></h2>
<p>Back in 2004, one of my first contribution to Buildroot was to start writing documentation. At the time, the amount of documentation was small, so a single and simple HTML document was sufficient. Nowadays, Buildroot documentation has been extended significantly, and will have to be extended even further in the future. The approach of a single raw HTML document was no longer up to the task.</p>
<p>Therefore, I have worked on converting the existing documentation over to the <i>asciidoc</i> format. This allows us to split the source of the documentation in several files, for easier edition, and allows to generates a documentation in multiple formats: single HTML, split HTML, raw text or PDF.</p>
<p>Just run <code>make manual</code> in Buildroot 2011.11 to generate the manual. Note that the version available on the website is still the old HTML version, but it should soon be updated to the new asciidoc version.</p>
<h2>Free Electrons contributions</h2>
<p>Free Electrons has again contributed to this Buildroot release:</p>
<pre>
$ git shortlog -sen 2011.08..2011.11 | head -12
   126	Peter Korsgaard
   104	Gustavo Zacarias
    62	Thomas Petazzoni, from Free Electrons
    27	Yann E. MORIN
    21	Sven Neumann
    13	Yegor Yefremov
    10	Thomas De Schampheleire
     7	H Hartley Sweeten
     5	Frederic Bassaler
     4	Arnout Vandecappelle (Essensium/Mind)
     4	Maxime Ripard, from Free Electrons
     3	Baruch Siach
</pre>
<p>Our contributions have been:</p>
<ul>
<li>Implementation of the <i>source directory override</i> mechanism</li>
<li>Implementation of the <i>local</i> and <i>file</i> site methods</li>
<li>Implementation of the <code>pkg-rebuild</code> and <code>pkg-reconfigure</code> targets</li>
<li>Conversion of the documentation to <i>asciidoc</i> and documentation improvements</li>
<li>Various improvements for external toolchain support: optimization of the toolchain extraction and copy (reduced build time), integration of the support of the CodeSourcery x86 toolchains, update of all CodeSourcery toolchains to the latest available versions</li>
<li>Removed useless arguments from the CMAKETARGETS, AUTOTARGETS and GENTARGETS macros, used by all packages in Buildroot. Instead, such pieces of information are automatically figured out from the package <code>.mk</code> file location in the source tree</li>
<li>Added the <i>cifs-utils</i> package (for mounting CIFS network filesystems), the <i>libplayer</i> package, the <i>picocom</i> package.</li>
<li>Cleanup, improve and merge the Xenomai integration done by Thomas de Schampheleire, and implement the RTAI integration</li>
<li>Did a lot of cleanup in the source tree by creating a new <code>support/</code> directory to contain various tools and scripts needed by Buildroot that were spread over the rest of the tree: the <i>kconfig</i> source code, the special libtool patches, various scripts, etc.</li>
</ul>
<h2>Next release cycle and next Buildroot meeting</h2>
<p>The next release cycle has already started. After the meeting in Prague, it was decided that Peter Korsgaard (Buildroot maintainer) would maintain a <i>next</i> branch between the <i>-rc1</i> and the final version of every release, in order to keep merging the new features for the next release while debugging the current release. This <i>next</i> branch for 2012.02 has already been merged. For example, the addition of the <i>scp</i> and <i>Mercurial</i> site methods has already been merged for 2012.02, as well as numerous other package updates.</p>
<p>On my side, besides usual package updates, I&#8217;d like to focus my work for this 2012.02 cycle on improving the testing coverage and on improving the documentation. My colleague Maxime Ripard is working on integrating <a href="http://freedesktop.org/wiki/Software/systemd">systemd</a> into Buildroot, as an alternate init mechanism.</p>
<p>The Buildroot community will also be organizing its next meeting in Brussels, on Friday February, 3rd 2012, right before the <a href="http://www.fosdem.org">FOSDEM</a> conference. Buildroot users and developers are invited to join, just contact us through the Buildroot mailing list.</p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffree-electrons.com%2Fblog%2Fbuildroot-2011-11%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:85px; height:21px;"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://free-electrons.com/blog/buildroot-2011-11/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://free-electrons.com/blog/buildroot-2011-11/"  data-text="Buildroot 2011.11 released: details on new features" data-count="horizontal"></a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://free-electrons.com/blog/buildroot-2011-11/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/buildroot-2011-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Report from the Buildroot Developer Day</title>
		<link>http://free-electrons.com/blog/report-bdd-oct-2011/</link>
		<comments>http://free-electrons.com/blog/report-bdd-oct-2011/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 13:34:18 +0000</pubDate>
		<dc:creator>Thomas Petazzoni</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[buildroot]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=3746</guid>
		<description><![CDATA[Right after the Embedded Linux Conference Europe, a new edition of the Buildroot Developer Day took place on Saturday, 29th October 2011 in Prague. Unlike past Buildroot Developer Day that were followed only by Buildroot developers and Yann E. Morin &#8230; <a href="http://free-electrons.com/blog/report-bdd-oct-2011/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Right after the Embedded Linux Conference Europe, a new edition of the Buildroot Developer Day took place on Saturday, 29th October 2011 in Prague.</p>
<p>Unlike past Buildroot Developer Day that were followed only by Buildroot developers and Yann E. Morin as the <a href="http://crosstool-ng.org">crosstool-NG</a> maintainer, this edition of the Buildroot Developer Day was followed by developers of other build systems: Robert Schwebel from <a href="http://www.ptxdist.org">PTXdist</a>, Esben Haabendal from <a href="http://www.oe-lite.org">OE-lite</a> and we also had the opportunity to discuss with Benjamin Zores and Davide Calvalca from <a href="http://www.openbricks.org">OpenBricks</a>. This made the day very interesting, even though if it was a bit less focused on Buildroot than expected.</p>
<p>I have written and sent a <a href="http://lists.busybox.net/pipermail/buildroot/2011-November/047229.html">complete report</a> of the discussions, which were about the following topics:</p>
<ul>
<li>Expanding the <a href="http://send-patches.org">send-patches.org</a> initiative. This was an important topic, as developers of several build systems had the opportunity to discuss it during this meeting.</li>
<li>The testing infrastructure of Buildroot, how to improve it.</li>
<li>Package management. A long requested feature for Buildroot, but which would make Buildroot a lot more complicated and probably less reliable. Following this meeting, our position is to not implement such a feature and to keep Buildroot simple. Should package management be necessary, there are other build systems that implement such a feature (at the expense of higher complexity, of course).</li>
<li>Toolchain backend. We will soon switch to using the crosstool-NG backend as the default method of building toolchains in Buildroot. Long term, we would like to get rid of the code that builds a toolchain in Buildroot in order to factorize the efforts at the level of the crosstool-NG project.</li>
<li>Migration of the documentation to the <i>asciidoc</i> format has been accepted, and the next version of Buildroot will feature this updated documentation.</li>
<li>Out-of-tree build of packages. This is a very internal question to how Buildroot builds package. See the report for details.</li>
<li>Website improvement, because the current Buildroot website is quite ugly.</li>
<li>Maintenance process. We are seeing a quite significant increase in the number of contributions to Buildroot and some of these contributions are taking more and more time to get integrated. We discussed the topic and came up with a few proposals on how to improve the situation.</li>
<li>Host packages visible in menuconfig. Traditionally, packages built for the host are not user-selectable as Buildroot since they are just dependencies to build target packages. However, we had the case of some host packages that should be user-selectable. The principle has been agreed upon.</li>
<li>Per-package device file handling. A mechanism proposed by Maxime Ripard, from Free Electrons, to allow each package to specify special permissions/owernships/device files to install in the target filesystem.</li>
<li>Relocatable toolchain and SDK. Buildroot produces a SDK (set of utilities and libraries to build applications for the target independently from Buildroot), but this SDK is currently not relocatable. We discussed the various issues to fix to make it relocatable.</li>
<li>Licensing report generation, which is also a feature that has been requested in the past.</li>
</ul>
<p>All in all, it was a very interesting and motivating day, that got closed by a short visit of Prague&#8217;s center and a nice dinner. The next edition of the Buildroot Developer day will take place on Friday, 3rd 2012 in Brussels, the day before the <a href="http://www.fosdem.org">FOSDEM</a> conference. It is open to all Buildroot users and developers!</p>
<p>Regarding Buildroot itself, the maintainer Peter Korsgaard will release 2011.11-rc1 early next week, and 2011.11 by the end of November. This release will have several new useful features, which we will cover in details in a future blog post.</p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffree-electrons.com%2Fblog%2Freport-bdd-oct-2011%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:85px; height:21px;"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://free-electrons.com/blog/report-bdd-oct-2011/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://free-electrons.com/blog/report-bdd-oct-2011/"  data-text="Report from the Buildroot Developer Day" data-count="horizontal"></a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://free-electrons.com/blog/report-bdd-oct-2011/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/report-bdd-oct-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Buildroot 2011.08 released!</title>
		<link>http://free-electrons.com/blog/buildroot-2011-08-released/</link>
		<comments>http://free-electrons.com/blog/buildroot-2011-08-released/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 21:42:45 +0000</pubDate>
		<dc:creator>Thomas Petazzoni</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[buildroot]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[contribution]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=3655</guid>
		<description><![CDATA[As promised by the time-based release schedule, a new version 2011.08 of Buildroot has just been released. For those just coming in, Buildroot is a utility that automates the process of building an embedded Linux system: generating a cross-compilation toolchain &#8230; <a href="http://free-electrons.com/blog/buildroot-2011-08-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img alt="Buildroot logo" src="http://www.buildroot.org/images/logo_small.png" title="Buildroot logo" class="alignright" width="200" height="100" />As promised by the time-based release schedule, a new <a href="http://buildroot.org/downloads/buildroot-2011.08.tar.bz2">version 2011.08</a> of <a href="http://www.buildroot.org">Buildroot</a> has just been released. For those just coming in, Buildroot is a utility that automates the process of building an embedded Linux system: generating a cross-compilation toolchain or importing an existing one, cross-compiling multiple user-space libraries or applications, generating a root filesystem image and building the kernel or bootloader images. We use it extensively at Free Electrons for various projects and therefore contribute regularly to this project.</p>
<p>The major highlights of this version are :</p>
<ul>
<li>An updated version of <a href="http://en.wikipedia.org/wiki/Udev">udev</a>. For a long time, Buildroot has been stuck with an ancient udev release, due to the slightly more complicated dependencies of newer udev versions. Fortunately, Yegor Yefremov and other contributors have done the work to integrate those dependencies and get a modern version of <i>udev</i> to work in Buildroot.</li>
<li>An updated version of <i>util-linux</i> has been integrated. Here as well, updating it wasn&#8217;t completely straightforward, due to utility libraries such as libuuid, which is also present and e2fsprogfs, and used by multiple other packages.</li>
<li>The conversion of the Linux kernel build process and the bootloaders build process to the <i>GENTARGETS</i> infrastructure of Buildroot. This makes the build process of the kernel and the bootloaders much more similar to regular packages, and allows to provide the capability of fetching kernel sources not only from tarballs over http/ftp, but also from Git or Subversion repositories.</li>
<li>The kernel build process has been extended to support Linux 3.x versions and also release candidates versions.</li>
<li>Some improvements for using Buildroot to generate systems for non-MMU targets</li>
<li>Some new packages have been added: acl, attr, ebtables, gnutls, inotify-tools, ipset, libargtable2, libiqrf, libmnl, libnspr, libnss, libroxml, libyaml, live555, mxml, orc, rsyslog, sredird, statserial, stunnel, ti-utils, uboot-tools, yajl, and many, many packages have been upgraded or fixed.</li>
</ul>
<p>The amount of patches merged for this release (287) is almost identical to the number of patches for the past release (286), but the number of contributors has increased from 28 to 35. Generally speaking, we are seeing an increasing number of requests and contributions from users :</p>
<pre>
   143  Peter Korsgaard
    36  Thomas Petazzoni
    21  Sven Neumann
    13  Gustavo Zacarias
    13  Yegor Yefremov
     9  Maxime Ripard
     7  Yann E. MORIN
     4  Baruch Siach
     4  Daniel Mack
     4  Luca Ceresoli
     3  Jean-Christophe PLAGNIOL-VILLARD
     3  Thomas De Schampheleire
     2  Allan W. Nielsen
     2  Mike Williams
     2  Phil Edworthy
     2  Will Newton
     1  Arnout Vandecappelle (Essensium - Mind)
     1  Arnout Vandecappelle (Essensium/Mind)
     1  Benoit Mauduit
     1  Benoît Mauduit
     1  Daniel Hobi
     1  Daniel Nyström
     1  Danomi Mocelopolis
     1  Evgeni Dobrev
     1  Francis Mendes
     1  Frederic Bassaler
     1  Frederik Pasch
     1  H Hartley Sweeten
     1  Heiko Helmle
     1  Marek Belisko
     1  Michael J. Hammel
     1  Milton Soares Filho
     1  Philippe Reynes
     1  Robin Holt
     1  Tristan Lelong
</pre>
<p>Two developers from Free Electrons have contributed patches for this release: my colleague <a href="http://git.buildroot.net/buildroot/log/?qt=author&#038;q=ripard">Maxime Ripard</a> has contributed 9 patches (Python build fixes, toolchain configuration fix, new rsyslog package, rework of the logging init scripts, new stunnel package, /dev/shm fix for the initialization scripts, code cleanup) and <a href="http://git.buildroot.net/buildroot/log/?qt=author&#038;q=petazzoni">I (Thomas Petazzoni)</a> have contributed 36 patches (conversion of the kernel and bootloaders to the GENTARGETS infrastructure, support for Linux 3.x and release candidates, improvements for non-MMU targets, the new scons package, upgrade of valgrind, some other code cleanup and fixes).</p>
<p>For the next release, I expect to contribute a set of patches that has already been reviewed on the list, and which adds the possibility of building packages from an existing source directory instead of letting Buildroot handle the download/extract/patch part of the build process. This feature will make it much much easier to use Buildroot <i>during</i> the development of the kernel, an application or a library for the target embedded system. I have also posted patches that convert the documentation over to the <i>asciidoc</i> format and I intend to do various additions to this documentation.</p>
<p>It is also worth mentioning that the Buildroot developers (Peter Korsgaard and myself) and the <a href="http://www.crosstool-ng.org">Crosstool-NG</a> maintainer Yann E. Morin are organizing a <i>Developer Day</i> on October, 29th in Prague, the day after the Embedded Linux Conference Europe. All developers or users interested in Buildroot and/or Crosstool-NG are invited to join. See <a href="http://lists.busybox.net/pipermail/buildroot/2011-August/045066.html">http://lists.busybox.net/pipermail/buildroot/2011-August/045066.html</a> for more details.</p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffree-electrons.com%2Fblog%2Fbuildroot-2011-08-released%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:85px; height:21px;"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://free-electrons.com/blog/buildroot-2011-08-released/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://free-electrons.com/blog/buildroot-2011-08-released/"  data-text="Buildroot 2011.08 released!" data-count="horizontal"></a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://free-electrons.com/blog/buildroot-2011-08-released/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/buildroot-2011-08-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buildroot 2011.05 released</title>
		<link>http://free-electrons.com/blog/buildroot-2011-05-released/</link>
		<comments>http://free-electrons.com/blog/buildroot-2011-05-released/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 20:34:48 +0000</pubDate>
		<dc:creator>Thomas Petazzoni</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[buildroot]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=3521</guid>
		<description><![CDATA[As expected with the time-based releases, Buildroot 2011.05 has been released just a few days ago. We have already published many blog posts about Buildroot, but to summarize for our new readers, Buildroot is a tool that automates and simplifies &#8230; <a href="http://free-electrons.com/blog/buildroot-2011-05-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img alt="Buildroot logo" src="http://www.buildroot.org/images/logo_small.png" title="Buildroot logo" class="alignright" width="200" height="100" />As expected with the time-based releases, <a href="http://www.buildroot.org">Buildroot</a> 2011.05 has been released just a few days ago. We have already published many blog posts about Buildroot, but to summarize for our new readers, Buildroot is a tool that automates and simplifies the process of building an embedded Linux system. You define your system configuration and components in a menuconfig/xconfig interface similar to the one the kernel uses, then hit <code>make</code>, wait a bit, and you have your embedded Linux system ready to run on your device. At Free Electrons, we appreciate the simplicity of Buildroot, and many of our customers also appreciate it for the same reason. Of course, we also <a href="http://git.buildroot.net/buildroot/log/?qt=author&#038;q=free-electrons">contribute significantly to Buildroot</a> and we have started a <a href="http://free-electrons.com/services/buildroot-commercial-support/">commercial support offering on Buildroot</a>.</p>
<h3>The 2011.05 release</h3>
<p>The 2011.05 release cycle was a little bit more quiet than usual, so the number of new features or major changes is not as large as it was for past releases. Amongst the interesting things:</p>
<ul>
<li>Until now, Buildroot was only capable of building systems using a static <code>/dev</code>, in which <i>device files</i> are statically listed in a device table and created at system build time. The 2011.05 has added a configuration <b>option to select how the <code>/dev</code> directory on the target should be handled</b>. It can be handled in four different ways:
<ul>
<li>with a static <code>/dev</code>, just as before</li>
<li>with just <code>devtmpfs</code>. It allows to have a dynamic <code>/dev</code> without any other userspace components, which is really nice.</li>
<li>with <code>devtmpfs</code> and <code>mdev</code>. In addition to having a dynamic <code>/dev</code>, it allows allows to execute arbitrary scripts when device are added/removed and to customize the owner, group and permissions for the device files.</li>
<li>with <code>devtmpfs</code> and <code>udev</code>. This is the full solution, as used in desktop distributions.</li>
</ul>
</li>
<li>There has been an <b>internal infrastructure change on support for external toolchains, and this change will make those toolchains slightly easier to use</b>. In Buildroot terminology, an <i>external toolchain</i> is a toolchain that hasn&#8217;t been built by Buildroot, but which Buildroot uses to compile code for the target platform. It allows to re-use existing toolchains such as the CodeSourcery toolchains, or toolchains generated externally with Crosstool-NG. To support those toolchains, we rely on the <i>sysroot</i> mechanism that the GCC compiler provides since the 4.x era. This mechanism allows Buildroot to make a complete copy of the C library binaries, C library headers and kernel headers into a <i>staging</i> directory, and then tell the toolchain utility (compiler, linker, etc.) to use this new directory as their <i>sysroot</i>. This means that a <code>--sysroot</code> option needs to be passed at every invocation of those tools. As this was not very convenient, especially to use the Buildroot toolchain as a SDK to build applications not packaged in Buildroot, the 2011.05 has added wrappers for the toolchain tools, which makes this completely transparent. So one can now just use <code>$(O)/host/usr/bin/arm-linux-gcc</code> as usual, and it will <i>do the right thing</i>.</li>
<li>A few <b>new packages have been added</b>: bonnie++ (a block device benchmark), can-utils (userspace utilities for the famous industrial CAN bus), gdisk (a sort of fdisk program, but for the new GPT partition table format), htop (a nice <i>top</i> alternative to watch the activity of processes), input-event-daemon (a simple daemon that executes arbitrary command in reaction to input events), libexif (a library to read the contents of EXIF tags in pictures), libraw (a library to decode pictures in various RAW formats), libv4l (the library to interact with Video4Linux devices), ngircd (an IRC server).</li>
<li>Many <b>packages have been upgraded</b>: the Gtk stack, the U-Boot and Barebox bootloaders and the internal toolchain components (gcc and uClibc), with experimental gcc 4.6 support.</li>
</ul>
<h3>Buildroot in the Linux Journal</h3>
<p><a href="http://free-electrons.com/wp-content/uploads/2011/06/lj206-cover.jpg"><img src="http://free-electrons.com/wp-content/uploads/2011/06/lj206-cover.jpg" alt="Linux Journal 206 Cover" title="Linux Journal 206 Cover" width="300" height="401" class="alignright size-full wp-image-3605" /></a>The <a href="http://www.linuxjournal.com/">Linux Journal</a> has published an <a href="http://lj.mybigcommerce.com/products/Linux-Journal-June-2011%2C-%23206-%28Print%29.html">issue, numbered 206, dedicated to Embedded Linux</a>. This issue has several articles around Embedded Linux related topics:</p>
<ul>
<li>Hexapod, a Linux powered robot</li>
<li>Debugging Embedded Linux platforms with Python and GDB</li>
<li>Breaking free the Gumstix DSP</li>
<li>Speech I/O for Embedded Applications</li>
<li>CyanogenMod 7.0, Gingerbread in the house</li>
<li>Tiny Core Linux</li>
<li><b>Roll your own Embedded Linux System with Buildroot</b>, written by Alexander Sirotkin, which gives a good introduction to what Buildroot is and how to use it.</li>
</ul>
<p>It is great to see articles about Buildroot in a such widely read magazine, and it should definitely help increasing the awareness about this build system.</p>
<p><a href="http://free-electrons.com/wp-content/uploads/2011/06/lj206-toc.jpg"><img src="http://free-electrons.com/wp-content/uploads/2011/06/lj206-toc.jpg" alt="Linux Journal 206 Table of Contents" title="Linux Journal 206 Table of Contents" width="300" height="394" class="alignnone size-full wp-image-3606" /></a><a href="http://free-electrons.com/wp-content/uploads/2011/06/lj206-buildroot.jpg"><img src="http://free-electrons.com/wp-content/uploads/2011/06/lj206-buildroot.jpg" alt="Linux Journal 206 Buildroot" title="Linux Journal 206 Buildroot" width="300" height="402" class="alignnone size-full wp-image-3607" /></a></p>
<h3>Buildroot used by Fabrice Bellard in <i>jslinux</i></h3>
<p>In May, the famous developer <a href="http://bellard.org">Fabrice Bellard</a> (known as the initial author of <a href="http://www.ffmpeg.org">ffmpeg</a>, <a href="http://qemu.org">qemu</a>, but also for <a href="http://bellard.org/pi/pi2700e9/">his records for the computation of pi</a>) has <a href="http://linux.slashdot.org/story/11/05/17/0242244/Boot-Linux-In-Your-Browser">released an impressive new project</a>: <a href="http://bellard.org/jslinux/">an x86 emulator completely written in Javascript</a>, which runs in a Web browser. This emulator is sufficiently capable and powerful to boot a Linux system. And the <b>good news is that the Linux system that Fabrice Bellard is using for the demonstration was generated with Buildroot</b>, as Bellard says in his <a href="http://bellard.org/jslinux/tech.html">technical notes</a> about the project.</p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffree-electrons.com%2Fblog%2Fbuildroot-2011-05-released%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:85px; height:21px;"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://free-electrons.com/blog/buildroot-2011-05-released/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://free-electrons.com/blog/buildroot-2011-05-released/"  data-text="Buildroot 2011.05 released" data-count="horizontal"></a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://free-electrons.com/blog/buildroot-2011-05-released/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/buildroot-2011-05-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buildroot 2011.02 released, with many interesting updates and commercial support!</title>
		<link>http://free-electrons.com/blog/buildroot-201102/</link>
		<comments>http://free-electrons.com/blog/buildroot-201102/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 08:11:59 +0000</pubDate>
		<dc:creator>Thomas Petazzoni</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[buildroot]]></category>
		<category><![CDATA[crosstool-ng]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[toolchain]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=3193</guid>
		<description><![CDATA[As usual, the latest Buildroot version has been released just in time on the last day of the month: Buildroot 2011.02 is available for download! This release of the increasingly popular embedded Linux build system provides new interesting features and &#8230; <a href="http://free-electrons.com/blog/buildroot-201102/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img alt="Buildroot logo" src="http://www.buildroot.org/images/logo_small.png" title="Buildroot logo" class="alignright" width="200" height="100" />As usual, the latest Buildroot version has been released just in time on the last day of the month: <a href="http://buildroot.org/downloads/buildroot-2011.02.tar.bz2">Buildroot 2011.02</a> is available for download!</p>
<p>This release of the increasingly popular embedded Linux build system provides new interesting features and updates:</p>
<ul>
<li><b>Support of external toolchains has been improved</b> with support for <i>toolchain profiles</i>. Those are predefined configurations for well-known toolchains such as the CodeSourcery ones for ARM, PowerPC, MIPS and SuperH. Buildroot is now capable of automatically downloading and installing those external toolchains, which is much easier than downloading them manually. It&#8217;s now easy to provide users with Buildroot configurations that use well known toolchains, without requiring them to pre-install anything specific.</li>
<li><b>Support for board configurations</b> has been completely rewritten and largely simplified. All board-specific Makefile and configuration options have been removed, and instead, each board is represented by a single, simple (less than 20 lines) <i>defconfig</i> file, in the <code>configs/</code> directory. In addition to the existing configuration, we have added support for the Mini2440 platform but also for many Qemu emulated platforms: Qemu ARM Versatile, Qemu MIPSel Malta, Qemu PowerPC G3 Beige, Qemu SH4 r2d and Qemu x86. Those configurations allow to easily produce a known-to-work system for the Qemu emulator, making Buildroot even easier to start working on your embedded Linux system. See <a href="http://buildroot.org/buildroot.html#board_support">the documentation</a> for more details on how to add your own board support.</li>
<li><b>Support for the Blackfin architecture</b> has been added, thanks to Mike Frysinger. This support came along with a lot of fixes to make Buildroot work better for non-MMU architectures, since Blackfin is the first actively supported non-MMU architecture in Buildroot. There will certainly be further improvements to support non-MMU architectures, and hopefully additional non-MMU platforms will be added. For those platforms, Buildroot is generally a very good embedded Linux build system, as those architectures are typically used for small to medium sized systems, with a relatively limited number of components.</li>
<li>The <b>Crosstool-NG back-end has been improved</b> and extended to support more Buildroot options, and has been upgraded to a newer Crosstool-NG version. This back-end is the third mode for Buildroot toolchain: it allows Buildroot to use Crosstool-NG as the toolchain generator.</li>
<li><b>Ccache support has been reworked</b> and it now works properly. Since Buildroot often requires complete rebuilds from scratch, having the ccache compiler cache is very nice. On my laptop, compiling from scratch a sample Buildroot system was taking 5 minutes and 29 seconds without ccache, and now only takes 3 minutes and 40 seconds with ccache enabled and the cache already filled by a previous build.</li>
<li>A new <b>CMake infrastructure</b> has been added for packages, next to the existing <i>generic</i> and <i>autotools</i> infrastructure. For the moment, only two packages are using the infrastructure (<i>cdrkit</i> and <i>libcuefile</i>), but CMake is an increasingly popular build system and we will definitely see more packages using it in the future. Moreover, Buildroot generates a CMake toolchain file that describes the toolchain used by Buildroot, and which makes it very easy to cross-compile external libraries/applications for the Buildroot system using <code>cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/buildroot/output/toolchainfile.cmake</code>.</li>
<li>A very <b>nice cleanup job of the internal toolchain build process</b> has been started by Gustavo Zacarias. The build process of <i>binutils, gmp, mpfr and mpc</i>  has been migrated to proper packages, and this will also be done for <i>gcc</i> and <i>gdb</i> in the future.</li>
<li>As <b>preliminary steps towards the generation of a standalone SDK</b> from Buildroot, two important changes have been made. First, the staging directory is now inside <code>$(O)/host/usr/PLATFORM-TUPLE/sysroot/</code>, but a symbolic link from <code>$(O)/staging</code> has been kept for compatibility. This change will allow the $(O)/host directory to be the standalone SDK in the future. The second change is on <i>pkg-config</i>: its configuration has been adjusted so that it behaves properly to compile target packages without needing any environment variables or options. It makes the Buildroot <i>pkg-config</i> much easier to use to compile external applications.</li>
<li>The Python package has been <b>upgraded to the latest Python version, 2.7.1</b>. This was needed since a long time, since the version of Python we had in Buildroot was only 2.4. Moreover, the package has been completely rewritten, with more options, and has been tested on several platforms. Two external Python modules, <i>python-mad</i> and <i>python-serial</i> have also been added as packages, to show how such modules can be integrated into Buildroot.</li>
<li>A set of packages to add support in <b>GStreamer for the TI DSP codecs</b> has been added: <i>gst-dsp, gst-omapfb, tidsp-binaries, dsp-tools</i>, thanks to Felipe Contreras.</li>
<li>We have a bunch of <b>new packages</b> as well: <i>mpd</i>, the Music Player Daemon with many audio codecs and libraries, the <i>dhrystone</i> and <i>whetstone</i> benchmarks and other tools such as <i>xmlstarlet</i>, <i>fbgrab</i>, <i>irda-utils</i>, <i>lsuio</i>, etc.</li>
<li>Many other packages have been upgraded or fixed, and the results of our random configuration builds are much, much better than they were in the past.</li>
</ul>
<p>As a Free Electrons engineer, I have again contributed significantly to this release: Peter Korsgaard, the Buildroot maintainer, has done 171 commits, Gustavo Zacarias has done 119 commits and I have done 103 commits. The next committer is Mike Frysinger (for the great Blackfin support) with 22 commits.</p>
<p>It is with this great Buildroot knowledge and experience that Free Electrons has launched a few weeks ago an official offering of <a href="/services/buildroot-commercial-support/">Buildroot commercial support</a>. If you are using Buildroot for your embedded product, or want the buyers of your hardware platform to have a simple but efficient embedded Linux build system and you need help, development or consulting, do not hesitate to <a href="/company/contact/">contact us</a>.</p>
<div class="bottomcontainerBox" style="">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffree-electrons.com%2Fblog%2Fbuildroot-201102%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:85px; height:21px;"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://free-electrons.com/blog/buildroot-201102/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://free-electrons.com/blog/buildroot-201102/"  data-text="Buildroot 2011.02 released, with many interesting updates and commercial support!" data-count="horizontal"></a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://free-electrons.com/blog/buildroot-201102/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/buildroot-201102/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

