<?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/"
	>

<channel>
	<title>Free Electrons</title>
	<atom:link href="http://free-electrons.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://free-electrons.com</link>
	<description>Embedded Linux Experts</description>
	<pubDate>Fri, 03 Jul 2009 21:36:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Bifferboard: tiny, low power embedded x86 board</title>
		<link>http://free-electrons.com/blog/bifferboard/</link>
		<comments>http://free-electrons.com/blog/bifferboard/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 14:27:44 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[Hardware]]></category>

		<category><![CDATA[News]]></category>

		<category><![CDATA[power]]></category>

		<category><![CDATA[qemu]]></category>

		<category><![CDATA[x86]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=1456</guid>
		<description><![CDATA[A nice, cheap and tiny x86 embedded board that runs Linux and just consumes 1W. It has all the basic connectivity you need in an embedded system.
As you may already know, we maintain a list of attractive and Linux friendly embedded boards. Whenever we find a new board that is attractive and meets our strict [...]]]></description>
			<content:encoded><![CDATA[<p class="summary">A nice, cheap and tiny x86 embedded board that runs Linux and just consumes 1W. It has all the basic connectivity you need in an embedded system.</p>
<p>As you may already know, we maintain a list of <a href="/community/hardware/boards/">attractive and Linux friendly embedded boards</a>. Whenever we find a new board that is attractive and meets our strict criteria (supporting Linux or other free kernels, public pricelist, public documentation and website with an English version), we add this board to our list. This way, we don&#8217;t forget about any useful board, and we can offer useful guidance to our customers and to any embedded system developer looking for a suitable hardware platform.</p>
<p>Somebody at <a href="http://www.bifferos.com/">Bifferos.com</a> has just contacted us to let us know about their <a href="http://bifferos.bizhat.com/">Bifferboard</a> product. Here are its announced features:</p>
<ul>
<li><img src="http://bifferos.bizhat.com/cpu.jpg" width="250" alt="Bifferboard" style="float:right;margin-left:1em;"/>150MHz RDC CPU, Intel 486SX compatible</li>
<li>1 watt power consumption (200mA @5v)</li>
<li>68mm x 28mm x 19mm</li>
<li>32MB SDRAM/1MB Flash</li>
<li>OHCI/EHCI USB 2.0</li>
<li>10/100 Ethernet</li>
<li>Serial console 115200 baud</li>
<li>4-pin JTAG (can be used as GPIO)</li>
<li>2 GPIO (1 LED, 1 button)</li>
<li>Linux 2.6.27.5 + OpenWrt</li>
<li>29 UK pounds</li>
</ul>
<p>The board has two components: the CPU board, and the I/O one, offering Ethernet and USB host connectivity. For a serial port, it seems that you have to make your <a href="http://sites.google.com/site/bifferboard/Home/photos/serial-converters">own cable</a>.</p>
<p>Thanks to its low power consumption, the Bifferboard can even be powered by USB. According to its makers, the board can do anything a NSLU2 device can do. It is just cheaper (approximately 33 EUR at the time of this writing).</p>
<p>Last but not least, most Bifferboard hardware <a href="http://sites.google.com/site/bifferboard/Home/howto/qemu">can be emulated with QEMU</a>.</p>
<p>While it could also be suitable for mass production projects, it can be at least a nice platform for prototypes, hobby, research and educational projects.</p>
<p>Of course, if you know about other attractive boards that we could add to our list, please post a comment or <a href="/company/contact/">send us e-mail</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/bifferboard/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Buildroot gains better support for external toolchains</title>
		<link>http://free-electrons.com/blog/buildroot-external-toolchains/</link>
		<comments>http://free-electrons.com/blog/buildroot-external-toolchains/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 09:20:37 +0000</pubDate>
		<dc:creator>thomas</dc:creator>
		
		<category><![CDATA[Technical]]></category>

		<category><![CDATA[buildroot]]></category>

		<category><![CDATA[crosstool-ng]]></category>

		<category><![CDATA[toolchain]]></category>

		<category><![CDATA[uclibc]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=1302</guid>
		<description><![CDATA[Buildroot is a tool that I&#8217;ve already covered in a previous blog post. To me, its main purpose is to build the root filesystem for an embedded Linux system, with all the necessary applications and libraries. It automates the tedious process of cross-compiling and integrating all the free software components in an embedded system.
In addition [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.buildroot.org/images/logo_small.png" style="float: right; margin: 2em" alt="Buildroot logo"/><a href="http://www.buildroot.org">Buildroot</a> is a tool that I&#8217;ve already covered in a <a href="http://free-electrons.com/blog/buildroot-new-life/">previous blog post</a>. To me, its main purpose is to build the root filesystem for an embedded Linux system, with all the necessary applications and libraries. It automates the tedious process of cross-compiling and integrating all the free software components in an embedded system.</p>
<p>In addition to root filesystem generation, Buildroot is also known for its ability to generate a uClibc-based cross-compilation toolchain. Buildroot used to be for quite some time the only way to generate a toolchain based on this size-effective C library, but it is no longer the case with <a href="http://ymorin.is-a-geek.org/dokuwiki/projects/crosstool">Crosstool-NG</a> supporting glibc, uClibc and eglibc.</p>
<p>However, I&#8217;ve personaly never been really satisfied with uClibc generation of cross-compiling toolchains:</p>
<ul>
<li>It mixes the process of the cross-compilingn toolchain generation with the process of root filesystem generation, which are, in my opinion, two very different processes. Once your toolchain is generated, you generally don&#8217;t touch it, but regenerate your root filesystem dozens or hundred of times until all your components are here and properly integrated.</li>
<li>The attention paid to toolchain generation in the Buildroot project itself is relatively small, while other projects like Crosstool-NG or vendors like Codesourcery, are specifically dedicated to providing toolchains. The fact that, for example, uClibc is the only C library supported is one example of this.</li>
<li>It might necessary, for various reasons, make sense to use an already existing toolchain.</li>
</ul>
<p>Support for the usage of external toolchains has already been present in Buildroot for a long time, but wasn&#8217;t developed enough to be easily usable. Months ago, I&#8217;ve started to improve the situation (<a href="http://git.buildroot.net/buildroot/commit/?id=60d39dbb3f23fe4c18f1e384bfae9a3a861fe3da">here</a>, <a href="http://git.buildroot.net/buildroot/commit/?id=978d8dc53e997203c7244c9cb599247c68e1c72e">here</a>, <a href="http://git.buildroot.net/buildroot/commit/?id=c934e1aa1832b750351f6b00edc4d085bf289c71">here</a> and <a href="http://git.buildroot.net/buildroot/commit/?id=fb56c53e3938c6a2911b4bb22b82219aa5943dce">here</a>), and last week, two other patches have been integrated.</p>
<ul>
<li>The first patch, visible <a href="http://git.buildroot.net/buildroot/commit/?id=643aa232f0d5ef7545fb4ed1a4d3f70399702ef0">here</a> removes the ugly configuration option that allows to configure the set of libraries that must be copied to the target filesystem, and replaces it with a nice selection of the C libary type: uClibc or glibc. It makes it clear that generating Linux system with the glibc library is possible with Buildroot, even if Buildroot has often been advertised as a uClibc only tool.</li>
<li>The second patch, visible <a href="http://git.buildroot.net/buildroot/commit/?id=9456b58a8b3b4efdd8038a68370acf618aa9465b">here</a> adds checks for the conformity of Buildroot configuration versus the C library configuration. There are configuration options in Buildroot that must tell whether the C library supports IPv6, supports RPC, supports locale, supports large file, etc. These options must be set in the configuration interface according to the C library configuration, because some userspace packages depend on them. The added checks verify that the value set to these options match the configuration of your C library</li>
</ul>
<p>So, now, external toolchains are a little bit easier to use with Buildroot, and your own vendor toolchain, Codesourcery toolchains or any other toolchain can be used with Buildroot. The only requirement is that the toolchain supports the <i>sysroot</i> feature, which is very common in most toolchains.</p>
]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/buildroot-external-toolchains/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Building Android on Beagle</title>
		<link>http://free-electrons.com/blog/android-beagle/</link>
		<comments>http://free-electrons.com/blog/android-beagle/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 21:04:59 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[Hardware]]></category>

		<category><![CDATA[Technical]]></category>

		<category><![CDATA[beagle]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=1202</guid>
		<description><![CDATA[Updated instructions to use Android on the Beagle board
These instructions are derived from Embinux.org&#8217;s Android Porting Guide to Beagle Board, based on their work to port Android on the Beagle board. They correct multiple inaccuracies in this guide, and also add many useful details.
These instructions were tested on xubuntu 9.04. There shouldn&#8217;t be many differences [...]]]></description>
			<content:encoded><![CDATA[<p class="summary"><img src="/graphics/beagle-board.png" alt="Beagle board" style="margin:1em;float:right;"/>Updated instructions to use Android on the Beagle board</p>
<p>These instructions are derived from Embinux.org&#8217;s <a href="http://labs.embinux.org/index.php/Android_Porting_Guide_to_Beagle_Board">Android Porting Guide to Beagle Board</a>, based on their work to port Android on the Beagle board. They correct multiple inaccuracies in this guide, and also add many useful details.</p>
<p>These instructions were tested on xubuntu 9.04. There shouldn&#8217;t be many differences if you use other recent Ubuntu or Debian versions.</p>
<h3>Install needed software packages</h3>
<p>At the time of this writing, note that Android requires Sun&#8217;s Java5 JDK, and doesn&#8217;t support the Java6 one.</p>
<pre>
apt-get update
apt-get dist-upgrade
apt-get install git-core bison sun-java5-jdk flex g++ zlib1g-dev
apt-get install  libx11-dev libncurses5-dev gperf uboot-mkimage
</pre>
<p>Android also uses its own <code>repo</code> script as a git front-end:</p>
<pre>
mkdir -p ~/bin
cd ~/bin
wget http://android.git.kernel.org/repo
chmod +x repo
</pre>
<p>We are also going to need a <a href="http://www.codesourcery.com/sgpp/lite/arm/portal/release313">2007q3</a> toolchain from Code Sourcery</p>
<pre>
cd
wget http://www.codesourcery.com/sgpp/lite/arm/portal/package1787/public/arm-none-linux-gnueabi/arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
cd /opt
sudo tar jxf arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
</pre>
<p>You could also get this toolchain from our website:</p>
<pre>
cd
wget http://free-electrons.com/pub/demos/beagleboard/android/arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.lzma
cd /opt
sudo tar --lzma -xf ~/arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.lzma
</pre>
<h3>Download sources</h3>
<p>Our instructions create a directory in your home directory, but of course, it can be placed anywhere!</p>
<pre>
 mkdir ~/beagledroid
 cd ~/beagledroid
 repo init -u git://labs.embinux.org/repo/android/platform/beaglemanifest.git/
 repo sync
</pre>
<p>Caution: this can take a lot of time, as this downloads and extracts 2.4 GB of data. On a fast workstation with a 500KB/s Internet connection, it took about 90 minutes.</p>
<p>If your corporate network doesn&#8217;t let you use the git protocol, you can use our snapshot available on <a href="/pub/demos/beagleboard/android/">http://free-electrons.com/pub/demos/beagleboard/android/</a>:</p>
<pre>
cd
tar --lzma -xvf beagledroid-git-20090603.tar.lzma
</pre>
<h3>Building Android</h3>
<pre>
make
</pre>
<p>If your workstation has multiple CPUs, you could save a lot of time by running multiple jobs in parallel:</p>
<pre>
make -j 4
</pre>
<p>On our machine, this took about 4 hours!</p>
<h3>Building the kernel</h3>
<pre>
export CC_PATH=/opt/arm-2007q3/bin/arm-none-linux-gnueabi-
cd ~/beagledroid/kernel
../vendor/embinux/support-tools/beagle_build_kernel.sh
</pre>
<h3>Copying the Android root filesystem</h3>
<p>Android&#8217;s root file system is generated in ~/beagledroid/out/target/product/generic</p>
<pre>
cd ~/beagledroid/out/target/product/generic
mkdir ~/beagledroid/rootfs
cp -a root/* ~/beagledroid/rootfs/
cp -a system/* ~/beagledroid/rootfs/system/
cd ~/beagledroid/rootfs
sudo chown -R root.root .
sudo chmod -R a+rwX data system
</pre>
<h3>Formatting an MMC/SD card</h3>
<p>First connect your card reader to your workstation, with the MMC/SD card inside. Type the <code>dmesg</code> command to see which device is used by your workstation. Let&#8217;s assume that this device is <code>/dev/sdb</code></p>
<p>Type the <code>mount</code> command to check your currently mounted partitions. If MMC/SD partitions are mounted, unmount them.</p>
<p>In a terminal edit partitions with <code>fdisk</code>:</p>
<pre>
sudo fdisk /dev/sdb
</pre>
<p>Delete any existing partition with the <code>d</code> command.</p>
<p>Now, create the boot partition:</p>
<pre>
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-239, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-239, default 239): +64M
</pre>
<p>Change its type to FAT32:</p>
<pre>
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): c
Changed system type of partition 1 to c (W95 FAT32 (LBA))
</pre>
<p>Using the <code>n</code> command again, create a second partition filling up the rest of your card (just accept default values).</p>
<p>Now, format the partitions in your card:</p>
<pre>
sudo mkfs.vfat -n beagleboot -F 32 /dev/sdb1
sudo mkfs.ext3 /dev/sdb2
</pre>
<p>Remove and insert your card again. Your new partitions should be mounted automatically.</p>
<h3>Copying data to the MMC/SD card</h3>
<p>Start by copying the X-loader and U-boot on the first partition.</p>
<pre>
cd /media/beagleboot
wget http://free-electrons.com/pub/demos/beagleboard/android/MLO
http://free-electrons.com/pub/demos/beagleboard/android/u-boot.bin
cp ~/beagledroid/kernel/arch/arm/boot/uImage .
</pre>
<p>Now copy the Android root filesystem to the second partition (assuming it is mounted on <code>/media/disk</code>:</p>
<pre>
sudo rsync -a ~/beagledroid/rootfs/ /media/disk/
</pre>
<p>Finish by unmounting your MMC/SD partitions:</p>
<pre>
sudo umount /media/beagleboot
sudo umount /media/disk
</pre>
<h3>Boot setup</h3>
<p>The last thing left to do is to specify how the board boots Linux.</p>
<p>Plug the Beagle board on your computer, and also connect it to a DVI-D monitor. Start <code>minicom</code> (corresponding to Hyperterminal in Windows) on <code>/dev/ttyS0</code>, or on <code>/dev/ttyUSB0</code> if you are using a serial to USB adapter. Power up the board.</p>
<p>First, stop Minicom from truncating long lines by typing <code>[Ctrl] [a]</code> followed by <code>z</code> and <code>w</code>.</p>
<p>In the U-boot prompt, make the board boot automatically on the MMC/SD card:</p>
<pre>
setenv bootcmd 'mmc init;fatload mmc 0 80000000 uImage;bootm 80000000'
saveenv
</pre>
<p>Now set the kernel command line arguments:</p>
<pre>
setenv bootargs console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p2 video=omapfb.mode=dvi:1280x720MR-24@50 init=/init rootfstype=ext3 rw rootdelay=1 nohz=off androidboot.console=ttyS2
</pre>
<p>You may need to adapt the video settings to the capabilities of your DVI display. You should now see Android boot!</p>
]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/android-beagle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Beagle board MMC boot myths?</title>
		<link>http://free-electrons.com/blog/beagle-mmc-boot/</link>
		<comments>http://free-electrons.com/blog/beagle-mmc-boot/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 20:48:33 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[Hardware]]></category>

		<category><![CDATA[Technical]]></category>

		<category><![CDATA[beagle]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=1220</guid>
		<description><![CDATA[Booting a Beagle board from an MMC/SD should be easier than what people tell you
At the time of this writing, most documentation that you can find on the web about the Beagle board will tell you that you need to take special preparation steps if you wish to boot your board on an MMC/SD card:

The [...]]]></description>
			<content:encoded><![CDATA[<p class="summary">Booting a Beagle board from an MMC/SD should be easier than what people tell you</p>
<p><img src="/graphics/beagle-board.png" style="margin:1em;float:right;" alt="Beagle board"/>At the time of this writing, most documentation that you can find on the web about the Beagle board will tell you that you need to take special preparation steps if you wish to boot your board on an MMC/SD card:</p>
<ul>
<li>The card requires a special geometry: 255 heads and 63 sectors per track</li>
<li>The first partition on the card, with a FAT type, must be marked as bootable</li>
<li>The X-loader (<code>MLO</code> file), must be copied to the first sectors of the first partition. As a consequence, you should copy this file first.</li>
</ul>
<p>As my colleague Florent Peyraud and TI engineers started to suspect, all this is not always required. I&#8217;ve just made tests with my Rev C2 Beagle board:</p>
<ul>
<li>I took a brand new MMC/SD card. <code>fdisk</code> showed that it had 57 heads and 56 sectors per track.</li>
<li>I created the partitions again, and didn&#8217;t flag the first one as bootable.</li>
<li>After formatting the first partition in FAT32 format, I first copied the <code>u-boot.bin</code> and <code>uImage</code> files, and then the <code>MLO</code> one.</li>
</ul>
<p>After all this, I had no problem booting my Beagle board on the MMC/SD card. At least with my Rev C2 board, what TI engineers expected was true: the board romcode understood the FAT format, and therefore just needed a file with the <code>MLO</code> name, whatever its physical location on the card.</p>
<p>Does anyone know whether the requirements used to be true with earlier Beagle board romcode releases, or in special cases?</p>
]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/beagle-mmc-boot/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ELC Europe in Grenoble</title>
		<link>http://free-electrons.com/blog/elce2009-grenoble/</link>
		<comments>http://free-electrons.com/blog/elce2009-grenoble/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 21:34:54 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[conference]]></category>

		<category><![CDATA[elc]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=1104</guid>
		<description><![CDATA[
Just a quick note after the announcement that has just been made at the Embedded Linux Conference (ELC) in San Francisco&#8230;
Tim Bird has just announced that the next European edition of ELC will be in Grenoble, France, on October 15-16. As the new conference home page says, it will be colocated with ESWEEK.
We are very [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wikitravel.org/fr/Image:Grenoble_pan.jpg"><img src="http://wikitravel.org/upload/shared//thumb/2/2b/Grenoble_pan.jpg/660px-Grenoble_pan.jpg" alt="Grenoble" /></a></p>
<p>Just a quick note after the announcement that has just been made at the Embedded Linux Conference (ELC) in San Francisco&#8230;</p>
<p>Tim Bird has just announced that the next European edition of ELC will be in Grenoble, France, on October 15-16. As the <a href="http://www.embeddedlinuxconference.com/elc_europe09/">new conference home page</a> says, it will be colocated with <a href="http://www.esweek.org/">ESWEEK</a>.</p>
<p>We are very excited about this news, as Grenoble is a not only a beautiful place, but also a very dynamic city full of universities and high-tech companies. We will do our best to incite people to attend the conference, and of course to speak about their projects and propose demos.</p>
]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/elce2009-grenoble/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Free Electrons at ELC</title>
		<link>http://free-electrons.com/blog/elc-2009-speakers/</link>
		<comments>http://free-electrons.com/blog/elc-2009-speakers/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 21:52:47 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[Technical]]></category>

		<category><![CDATA[conference]]></category>

		<category><![CDATA[elc]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=1081</guid>
		<description><![CDATA[My colleague Thomas Petazzoni and I will participate to the Embedded Linux Conference on April 6-8 in San Francisco.
This is an exciting conference with a very interesting program, and we are proud to be part of it:

Monday, April 6, 7:30-9:00 pm
System size BOF (Michael)
Tuesday, April 7, 11:00-11:50 am
Update on filesystems for flash storage (Michael)
Tuesday, April [...]]]></description>
			<content:encoded><![CDATA[<p>My colleague Thomas Petazzoni and I will participate to the <a href="http://www.embeddedlinuxconference.com/elc_2009/">Embedded Linux Conference</a> on April 6-8 in San Francisco.</p>
<p>This is an exciting conference with a very interesting <a href="http://www.embeddedlinuxconference.com/elc_2009/program.html">program</a>, and we are proud to be part of it:<a href="http://commons.wikimedia.org/wiki/File:Golden_Gate_Bridge_Yang_Ming_Line.jpg"><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/Golden_Gate_Bridge_Yang_Ming_Line.jpg/800px-Golden_Gate_Bridge_Yang_Ming_Line.jpg" width="200" alt="Golden Gate Bridge" style="float:right;margin:1em;"/></a></p>
<ul>
<li>Monday, April 6, 7:30-9:00 pm<br />
<a href="http://www.embeddedlinuxconference.com/elc_2009/sessions.html#Opdenacker1">System size BOF</a> (Michael)</li>
<li>Tuesday, April 7, 11:00-11:50 am<br />
<a href="http://www.embeddedlinuxconference.com/elc_2009/sessions.html#Opdenacker">Update on filesystems for flash storage</a> (Michael)</li>
<li>Tuesday, April 7, 4:40-5:30 pm<br />
<a href="http://www.embeddedlinuxconference.com/elc_2009/sessions.html#Petazzoni">Building Embedded Linux Systems with Buildroot</a> (Thomas)</li>
<li>Wednesday, April 8, 1:00-1:45 pm<br />
<a href="http://www.embeddedlinuxconference.com/elc_2009/sessions.html#Petazzoni1">Build tools BOF</a> (Thomas)</li>
</ul>
<p>If participate to this conference too, and if you are interested in the above topics, or in topics we covered in this blog, don&#8217;t hesitate to come and chat with us. We will both arrive on Saturday afternoon, so we could even meet before the conference starts.</p>
<p>If you can&#8217;t make it to this conference, we will also shoot and share videos as usual, so at least you won&#8217;t miss the technical contents. You will just miss the beer together&#8230; </p>
]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/elc-2009-speakers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Linux kernel 2.6.29 - New features for embedded users</title>
		<link>http://free-electrons.com/blog/linux-2629/</link>
		<comments>http://free-electrons.com/blog/linux-2629/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 15:25:23 +0000</pubDate>
		<dc:creator>thomas</dc:creator>
		
		<category><![CDATA[Technical]]></category>

		<category><![CDATA[kernel]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=1066</guid>
		<description><![CDATA[The 2.6.29 version of the Linux kernel has just been released by Linus Torvalds. Like all kernel releases, this new version offers a number of interesting new features.
For embedded users, the most important new feature is certainly the inclusion of Squashfs, a read-only compressed filesystem. This filesystem is very well-suited to store the immutable parts [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/graphics/tuz.png" alt="Tuz Linux logo" style="float:right;margin:1em;"/>The 2.6.29 version of the Linux kernel has just been released by Linus Torvalds. Like all kernel releases, this new version offers a number of interesting new features.</p>
<p>For embedded users, the most important new feature is certainly the inclusion of Squashfs, a read-only compressed filesystem. This filesystem is very well-suited to store the immutable parts of an embedded system (applications, libraries, static data, etc.), and replaces the old cramfs filesystem which had some strong limitations (file size, filesystem size and limited compression).</p>
<p>Squashfs is a block filesystem, but since it is read-only, you can also use it on flash partitions, through the mtdblock driver. It&#8217;s fine as you just write the filesystem image once. Don&#8217;t hesitate to try it to get the best performance out of your flash partitions. Ideally, you should even use it on top of <a href="http://www.linux-mtd.infradead.org/doc/ubi.html">UBI</a>, which would transparently allow the read-only parts of your filesystem to participate to wear-leveling.  See our <a href="/docs/filesystems/">choosing filesystems</a> presentation for details.</p>
<p>This new release also adds <a href="http://lwn.net/Articles/314808/">Fastboot</a> support, at least for scsi probes and libata port scan. This is a step forward to reducing boot time, which is often critical in embedded systems.</p>
<p>2.6.29 also allows stripping of generated symbols under CONFIG_KALLSYMS_ALL, saving up to 200 KB for kernels built with this feature. This is nice for embedded systems with very little RAM, which still need this feature during development.</p>
<p>Another new feature of this kernel is the support for the Samsung S3C64XX CPUs. Of course, a lot of new boards and devices are supported, such as the framebuffer of the i.MX 31 CPU, or the SMSC LAN911x and LAN912x Ethernet controllers.</p>
<p>The other major features of this new kernel, not necessarily interesting for embedded systems are the inclusion of the btrfs filesystem, the inclusion of the kernel modesetting code, support for WiMAX, scalability improvements (support of 4096 CPUs!), filesystem freezing capability, filesystem improvements and many new drivers.</p>
<p>For more details on the 2.6.29 improvements, the best resource is certainly the <a href="http://kernelnewbies.org/LinuxChanges">human-readable changelog</a> written by the <a href="http://www.kernelnewbies.org">KernelNewbies.org</a> community.</p>
]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/linux-2629/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Buildroot project begins a new life</title>
		<link>http://free-electrons.com/blog/buildroot-new-life/</link>
		<comments>http://free-electrons.com/blog/buildroot-new-life/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 09:34:15 +0000</pubDate>
		<dc:creator>thomas</dc:creator>
		
		<category><![CDATA[Technical]]></category>

		<category><![CDATA[buildroot]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=1058</guid>
		<description><![CDATA[The Buildroot project has been around for a quite a while. For those just discovering Buildroot, it is a set of Makefiles that ease and automate the process of building a cross-compilation toolchain (based on the uClibc C library, since Buildroot has been initiated by uClibc developers) and a full embedded Linux system. Buildroot can [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://free-electrons.com/wp-content/uploads/2009/03/buildroot.png"><img src="http://free-electrons.com/wp-content/uploads/2009/03/buildroot.png" alt="" title="Main configuration screen of Buildroot" width="300" height="257" class="alignright size-medium wp-image-1061" style="margin-left: 20px"/></a>The <a href="http://buildroot.net">Buildroot</a> project has been around for a quite a while. For those just discovering Buildroot, it is a set of Makefiles that ease and automate the process of building a cross-compilation toolchain (based on the uClibc C library, since Buildroot has been initiated by uClibc developers) and a full embedded Linux system. Buildroot can compile over 600 packages : graphical libraries (Qt Embedded, Gtk, X.org, DirectFB), network servers (the Dropbear SSH server, several HTTP servers), and more), core components such as Busybox, DBUS, Avahi and many other free software packages that make sense on embedded systems. Of course, more packages can easily be added. Buildroot is very similar to <a href="http://www.pengutronix.de/software/ptxdist/index_en.html">PTXdist</a>.</p>
<p>I remember using to this project and contributing to it back in 2004 when I still was an intern during my studies. One of my contributions was the writing of documentation for the project, which is still the <a href="http://www.builroot.net/buildroot.html">official documentation</a>. Since 2004, the project has evolved, but there was no clear maintainer and no stable releases. The developer community around Buildroot was not completely satisfied since no one was merging the proposed fixes and improvements, since there was no official maintainer. And Buildroot was difficult to use for users because it didn&#8217;t offer any kind of stable releas : users had to pick a random SVN checkout and cross fingers to get a reasonably-working version.</p>
<p>In January 2009, as part of the traditionnal new year&#8217;s resolution, Peter Korsgaard, one of the active Buildroot developer, <a href="http://lists.busybox.net/pipermail/buildroot/2009-January/024489.html">volunteered to step up</a> as the official maintainer and to deliver releases. And indeed, he integrated many patches that were floating around, released several release candidates before releasing <a href="http://buildroot.net/downloads/buildroot-2009.02.tar.bz2">Buildroot 2009.02</a> on <a href="http://lists.busybox.net/pipermail/buildroot/2009-February/025974.html">February, 12th</a>. Since then he continues to make very interesting improvements to Buildroot, replies on the mailing list, review and merge the proposed patches. A <a href="https://bugs.uclibc.org/">new bug tracker</a> has been set up, and the source code will soon be moved over the Git distributed version control system.</p>
<p>Definitely, it&#8217;s a new life starting for the Buildroot project. As a long-time user and occasional contributor of the project, I&#8217;m glad to see such evolution.</p>
]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/buildroot-new-life/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FOSDEM 2009 videos</title>
		<link>http://free-electrons.com/blog/fosdem-2009-videos/</link>
		<comments>http://free-electrons.com/blog/fosdem-2009-videos/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 20:52:09 +0000</pubDate>
		<dc:creator>thomas</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[Technical]]></category>

		<category><![CDATA[conference]]></category>

		<category><![CDATA[fosdem]]></category>

		<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=1024</guid>
		<description><![CDATA[As previously announced, I had the chance to attend the FOSDEM conference again this year. And once again, the famous Free Electrons video camera was with me, and I could record a few talks. I&#8217;m pleased to make them available today.

Here are the available videos, with my personal comments. Of course, except the talk about [...]]]></description>
			<content:encoded><![CDATA[<p>As <a href="http://free-electrons.com/blog/fosdem2009-embdevroom/">previously announced</a>, I had the chance to attend the <a href="http://www.fosdem.org">FOSDEM</a> conference again this year. And once again, the famous Free Electrons video camera was with me, and I could record a few talks. I&#8217;m pleased to make them available today.</p>
<p><a href="http://www.fosdem.org"><img src="http://www.fosdem.org/promo/fosdem/static" alt="FOSDEM, the Free and Open Source Software Developers' European Meeting" /></a></p>
<p>Here are the available videos, with my personal comments. Of course, except the talk about CMake, all of them come from the embedded devroom. Thanks to the speakers for sharing their knowledge and presenting their projects !</p>
<ul>
<li>
<a href="/pub/video/2009/fosdem/fosdem2009-libin-wt-web-toolkit.jpg"><img src="/pub/video/2009/fosdem/fosdem2009-libin-wt-web-toolkit-small.jpg" alt="video capture" style="float:right;margin:1em"/></a><a href="http://www.fosdem.org/2009/schedule/speakers/pieter+libin">Wt, a C++ web toolkit, for rich web interfaces to embedded systems</a>, by Pieter Libin (Noesis Solutions)<br/><a href="/pub/video/2009/fosdem/fosdem2009-libin-wt-web-toolkit.ogv">Video</a> (44 minutes, 124M)<br/><i>Presentation of a Web application generator, which generates a Web application including a web server from a C++ description. The C++ design is based on many ideas coming from Qt, which eases the creation of the graphical application. Certainly a very interesting tool for embedded systems.</i>
  </li>
<li>
  <a href="http://www.fosdem.org/2009/schedule/events/emb_bug">Hacking with modular hardware: the BUG</a>, by Ken Gilmer (Bug Labs)<br/><a href="/pub/video/2009/fosdem/fosdem2009-gilmer-bug-hacking-modular-hardware.ogv">Video</a> (43 minutes, 129M)<br/><i>The BUG is a set of hardware modules that can be combined together. A base module contains the CPU, memory and other basic components, while additional modules can provide GPS, Wifi, webcam, I/O lines and many others. Of course, it comes with a completely free software SDK. Can be an interesting starting point for prototyping or hobbyist embedded hacking, even though the hardware is quite expensive.</i>
  </li>
<li>
  <a href="http://www.fosdem.org/2009/schedule/events/emb_ptxdist">Building Embedded Linux Systems with PTXdist</a>, by Robert Schwebel (Pengutronix)<br/><a href="/pub/video/2009/fosdem/fosdem2009-schwebel-ptxdist.ogv">Video</a> (68 minutes, 151M)<br/><i>A very good presentation on why system building tools are needed for Embedded Linux systems (cross-compiling issues, etc.), and how PTXdist fits this need. Even though I&#8217;m personally quite fan of Buildroot, PTXdist&#8217;s competitor, the presentation was very interesting.</i>
  </li>
<li><a href="/pub/video/2009/fosdem/fosdem2009-pronchery-openmoko-hackable1.jpg"><img src="/pub/video/2009/fosdem/fosdem2009-pronchery-openmoko-hackable1-small.jpg" alt="video capture" style="float:right;margin:1em;"/></a><a href="http://www.fosdem.org/2009/schedule/events/emb_hackable_1">Development on the OpenMoko with hackable:1</a>, by Pierre Pronchery (Bearstech)<br/><a href="/pub/video/2009/fosdem/fosdem2009-pronchery-openmoko-hackable1.ogv">Video</a> (55 minutes, 189M)<br/><i>A hands-on lab on the OpenMoko, which unfortunately was too short to be really interesting, and restricted to only the 10-12 people at the front of the room. Interesting for the people who did it, probably not so interesting to watch afterwards.</i>
  </li>
<li><a href="http://www.fosdem.org/2009/schedule/events/emb_fire_safety_cert">Development and Certification of Linux-Based Fire Safety &#038; Security Systems</a>, by Baurzhan Ismagulov (Siemens)<br/><a href="/pub/video/2009/fosdem/fosdem2009-ismagulov-linux-fire-safety-security.ogv">Video</a> (47 minutes, 124M)<br/><i>The topic of the talk was really appealing, because the use of free software in environments where human life is in danger has always caused many debates and discussions. Unfortunately, the talk completely misses the point&nbsp;: the speaker spent the whole talk discussing Germany-specific rules and laws for the certification of fire safety and security systems, almost without saying a word on how Linux can match these rules.</i>
  </li>
<li><a href="http://www.fosdem.org/2009/schedule/events/emb_maemo_beagleboard">Maemo on BeagleBoard</a>, by Juha Kallionen (Nokia)<br/><a href="/pub/video/2009/fosdem/fosdem2009-kallionen-maemo-beagleboard.ogv">Video</a> (20 minutes, 51M)<br/><i>Good talk, but not a lot of content, outside of « Hey, we run Maemo on BeagleBoard, try it&nbsp;!». A kind of announcement talk, I would say.</i>
  </li>
<li><a href="/pub/video/2009/fosdem/fosdem2009-schrijver-advanced-pm-omap3.jpg"><img src="/pub/video/2009/fosdem/fosdem2009-schrijver-advanced-pm-omap3-small.jpg" alt="video capture" style="float:right;margin:1em;"/></a><a href="http://www.fosdem.org/2009/schedule/events/emb_power_mgmt_omap3">Advanced power management for OMAP3</a>, by Peter De Schrijver (Nokia)<br/><a href="/pub/video/2009/fosdem/fosdem2009-schrijver-advanced-pm-omap3.ogv">Video</a> (49 minutes, 169M)<br/><i>A very interesting, in-depth, technical talk about the power management features of the OMAP3 CPU and how these features can be used by the Linux kernel.</i>
  </li>
<li><a href="http://www.fosdem.org/2009/schedule/events/emb_emdebian_1_0">Emdebian 1.0 release - small and super small Debian</a>, by Neil Williams (Debian)<br/><a href="/pub/video/2009/fosdem/fosdem2009-williams-emdebian-1.0-release.ogv">Video</a> (86 minutes, 257M)<br/><a href="/pub/video/2009/fosdem/fosdem2009-williams-emdebian-1.0-release.jpg"><img src="/pub/video/2009/fosdem/fosdem2009-williams-emdebian-1.0-release-small.jpg" alt="video capture" style="float:right;margin:1em;"/></a><i>Again, another interesting talk about the status of Emdebian, which has just reached 1.0. Neil described both Emdebian Crush and Emdebian Grip, that are two different approaches for making Debian more suitable for embedded systems. Very good progress has been made, and Emdebian is certainly something that should now be considered as a distribution for embedded systems.</i>
  </li>
<li><a href="http://www.fosdem.org/2009/schedule/events/xd_cmake">CMake - what can it do for your project</a>, by Alexander Neundorf<br/><a href="/pub/video/2009/fosdem/fosdem2009-neundorf-cmake.ogv">Video</a> (45 minutes, 167M)<br/><i>A general introduction to CMake, with lots of examples and demonstrations. Very nice for those who never had the opportunity to look at CMake.</i>
  </li>
</ul>
<p>See <a href="/community/videos/conferences/">our conference videos page</a> for more videos.</p>
]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/fosdem-2009-videos/feed/</wfw:commentRss>
		</item>
		<item>
		<title>USB-Ethernet device for Linux</title>
		<link>http://free-electrons.com/blog/usbeth/</link>
		<comments>http://free-electrons.com/blog/usbeth/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 14:42:30 +0000</pubDate>
		<dc:creator>mike</dc:creator>
		
		<category><![CDATA[Hardware]]></category>

		<category><![CDATA[Technical]]></category>

		<category><![CDATA[training]]></category>

		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://free-electrons.com/?p=1014</guid>
		<description><![CDATA[Useful device when you work with an embedded development board
For our Embedded Linux training sessions, I was looking for a USB to Ethernet device. Since Linux supported devices are often difficult to find, I&#8217;m glad to share my investigations here.
When you use an embedded development board, you must connect it to your computer with an [...]]]></description>
			<content:encoded><![CDATA[<p class="summary">Useful device when you work with an embedded development board</p>
<p>For our <a href="http://free-electrons.com/training">Embedded Linux training sessions</a>, I was looking for a USB to Ethernet device. Since Linux supported devices are often difficult to find, I&#8217;m glad to share my investigations here.</p>
<p>When you use an embedded development board, you must connect it to your computer with an Ethernet cable, for example to transfer a new kernel image to U-boot through tftp, or to make your board boot on a directory on your workstation,  exported with NFS.</p>
<p>You could connect both the board and computer to your local network, which would still allow your computer to connect to the Internet while you work with the board. However, you may create conflicts on your local network if you don&#8217;t use DHCP to assign an IP address to your board (if your DHCP server even accepts this new device on the network). In a training environment, you are also likely to run out of Ethernet outlets in the training room if you have to connect 8 such boards. Hence, a direct connection between the board and your workstation&#8217;s Ethernet port is often the most convenient solution.</p>
<p>If you can&#8217;t use WIFI to keep your computer connected to the outside world, a good solution is to add an extra Ethernet port to your computer by using an USB-to-Ethernet device.</p>
<p>My colleague Thomas and I started looking for such devices that would be supported by Linux. Here are a few that we found:</p>
<ul>
<li><a href="http://www.dlink.com/products/?pid=133">D-Link DUB-E100</a>. Supported by the USB_NET_AX8817X driver. However, this product is bulky and quite heavy (at least 100 grams).</li>
<li><a href="https://trendnet.com/langen/products/proddetail.asp?prod=150_TU2-ET100&#038;cat=42">TRENDnet TU2-E100</a>. Supported by the same driver, but still bulky.</li>
<li><a href="http://www.linksysbycisco.com/us/en/products/USB200M">Linksys USB 200m</a>. Supported by the same Linux driver and has a much more acceptable size, but customer reviews complain that its connector can break easily.</li>
<li><a href="http://store.apple.com/us/product/MB442Z/A">Apple USB Ethernet Adapter</a>. This is the one I eventually chose. It is beautiful, small and light, and just works out of the box when you plug it in. Support for this device <a href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3d60efb55f634e200fd99e0960a8e099fb38446a">to Linux 2.6.26</a> through the same driver. You should be able to use it in recent distros.</li>
</ul>
<p><a href="/graphics/apple-usb-eth.jpg"><img src="/graphics/apple-usb-eth-small.jpg" alt="Apple USB to Ethernet" style="float:right;margin:1em;"/></a>So, I recommend the Apple device. I event posted a comment on the Apple Store, titled &#8220;Perfect for Linux&#8221;! I hope the Apple droids won&#8217;t censor it. If you decide to buy it, just make sure that it bears the MB442Z/A reference in your shopping cart. If the reference changes, it could mean that they switched to another chipset, without changing the model name. This happens often with other vendors, unfortunately.</p>
<p>I can&#8217;t tell whether this could happen with Apple. This was the first Apple device I ever bought&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://free-electrons.com/blog/usbeth/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
