CELF ELC Europe 2009

The conference program will be a combination of sessions, tutorials and BOFs.

BOF= Birds of a Feather (from the saying "Birds of a feather flock together") An informal discussion group to consider a specific issue or subject.




Digital TV and Application Store, Solving Security Problems




Tim Bird


Closing Session

Tim Bird, Klaas van Gend & the program committee


Presenter: John Masters, Red Hat
Title: Porting Linux

Linux has a long history of being highly portable to many different kinds of platforms built upon dozens of different architectures. It has been ported to almost any device for which specifications were available (and many for which there were none) and is frequently the Operating System of choice for new embedded designs. But porting an Operating System to new hardware is rarely a trivial task and there can be a number of pitfalls along the way.

This talk will discuss the typical process of porting Linux to a new platform (whether based upon a reference design or entirely new). The stages from elementary bootloader bringup through initial kernel port, to final patches will be discussed with examples given. And while it remains relatively seldom that entirely new architectures are introduced into the market, the talk will also touch upon recent developments, including both Microblaze and S+Core. To round off, there will be coverage the Linux staging tree, the wider community, and references to a wealth of further resources available online.

Jon Masters is a Linux kernel hacker and author of several books, including Building Embedded Linux Systems. He has worked extensively on embedded systems ranging from mobile phones to superconducting magnets.

Jon first attended University at the age of 13 and later moved to the US, where he is a kernel engineer developing driver tools and Real Time kernel features for Red Hat. In his spare time, Jon likes to travel, engage in various extreme hiking, and is entirely engrossed with the history of the United States.


Presenter: Philippe Gerum, Sourcetrek
Title: State of Real-Time Linux: Don't Stop Until History Follows

With the real-time preemption support getting close to completion in the mainline kernel implementation, even more legacy RTOS applications may become candidates for moving to an embedded Linux-based environment soon.

So far, the major options available for migrating those applications have been either to emulate only a restricted set of the original RTOS services, go native in fully rebasing the application over the POSIX interface, or rely on virtualization technologies to run Linux and the original RTOS in isolation on the same hardware. None of these options currently solves the following problem: how could we enable the traditional RTOS users to move legacy applications mostly unchanged to a standard real-time enabled Linux, without leaving the proprietary RTOS in the equation?

In this talk, we will discuss a few salient reasons some teams may have to keep the original application design largely untouched during the migration process, why architectural issues like the I/O model discrepancies make this a daunting task, and how we could combine the real-time preemption support, a real-time aware KVM virtualization technology and Xenomai's RTOS emulation approach to tackle these problems within the frame of standard Linux.

Philippe Gerum is the founder and lead maintainer of the Adeos and Xenomai projects. He maintains a long time interest in RTOS simulation models and real-time API emulation frameworks.


Presenter: Carmelo Amoroso, STMicroelectronics
Title: LKM Fast Loader Based on ELF Hash Table

One of the most common approach to reduce the boot time is to use a tiny kernel image creating a modularized kernel: so reducing the image size we can save time to load and decompress the kernel image; the rest of device drivers and subsystem are available as kernel modules (LKM); this, as a counterpart, requires to have a faster module loader. A big part of the module loading process is spent in the symbol resolution process. Currently, module symbol look-up is performed by using string comparisons. Moreover the symbols exported by the kernel (and by each kernel modules) are stored in a linear array. This implies that the lookup algorithm is O(n).

We propose to use a new algorithm that performs the lookup by using an hash table avoiding any extra runtime overhead for computing hash values. The solution is totally integrated into the kbuild system and does not require any support from the toolchain.

Carmel Amoroso is a Senior Software Engineer at STMicroelectronics since 2004. He firstly joined the JVM team at ST working to port the Sun CDC-HI Just-in-time compiler on ST20 micro. Then he was responsible of a project to port the JIT on ST231 core.
Finally, in 2006 he moved to the Linux team working on uClibc and toolchain. He was responsible to add NPTL implementation to uClibc for the SH4 core. Since 2007 he is one of the maintainer of the uClibc library, with focus on dynamic linker (GNU hash support) and pthread (NPTL) and SH4. He is also involved in kernel activities at ST.
He is also a contributor of the "linux-sh" kernel, "LTP (Linux Test Project)", and more rarely of "buildroot" and "busybox" projects.
Before joining ST and the embedded world, he worked at IBM Tivoli Lab in Rome (since 2001), on J2EE and Websphere technology based projects.


Presenters: Jean-Pierre André & Szabolcs Szakacsits, Tuxera Ltd

Title: Unexpected Emergence of Wide Use of NTFS in CE Devices

Many embedded devices require file-system level interoperability with each other and the most popular desktop operating systems. The only available FAT solution that offered read and write functionality can't cope technically with consumers' growing needs to store and handle large amount of high-definition multimedia and other information efficiently.

A technical solution was needed. In 2006, after 12 years of clean-room reverse engineering, the open source Linux developers finally figured out how to implement safe read and write functionality for NTFS which is fully interoperable with Microsoft's new file system standard. The project was named NTFS-3G. In short time the driver was ported to 9 operating systems, 12 hardware platforms, both endianness, 32 and 64-bit CPUs and optimized for high-performance and embedded devices. The driver is already in production use in set-top boxes, routers, NAS, multimedia, medical, industrial and other type of devices.

In this talk the lead developer of NTFS-3G file system driver explains the challenges of developing, optimizing, deploying and supporting an interoperable file system driver for embedded Linux that meets chip makers, OEMs and CE vendors' requirements. NTFS-3G is benchmarked towards other embedded Linux file systems. Pros and cons of NTFS-3G are discussed.

After graduation in 1973, Jean-Pierre André first joined the development team of an operating system for a mainframe computer and was in charge of the storage drivers. In 1977 he switched to a research team on distributed operating systems which he later led. In 1985 he took over the management of a research department on distributed systems and database management. In 1997 he switched to corporate project management, and has led the development of the corporate intranet and the corporate single sign-on service. Now retired, Jean-Pierre is still interested by open source development and has taken active part in the development of the NTFS file system for Linux, working on advanced features, performance optimizations, file system POSIX test suite and Linux NTFS POSIX conformance.


Presenter: Gustavo Sverzut Barbieri, ProFUSION
Title: Canola Application and Framework for Rich GUI

Canola is a fancy media center, with a rich graphical user interface designed with touch screen in mind. More than a great application, it is a great framework as well, enabling extending Canola or creating similarly rich programs like Carman or your own!

Canola was initially developed by Instituto Nokia de Tecnologia (INdT) in Brazil under a proprietary license, but since March 2009 it was released as GPLv3 and community start to build around it. Today we have more companies supporting the development, the software was ported to other platforms like Ubuntu and OpenMoko SHR. Moreover, 5 of 10 Maemo's Google Summer of Code projects are around Canola, from media extensions like Picasa integration to non-media related as Remember the Milk (To Do list) and Bittorrent.

The framework behind Canola is called Python-Terra, which will be presented simultaneously. A brief overview of its components, followed by more in depth explanation of its plugin system will serve as base of understanding of Canola application. Real examples of extensions and new application will be demonstrated as result.

Gustavo Sverzut Barbieri works with graphics and multimedia systems. Since 2002 he has worked as one of the architects of the Canola project, as a developer of core Enlightenment Foundation Libraries (EFL) and now leads ProFUSION team working on Guarana framework.


Presenter: Patrick Bellasi, Politecnico di Milano/STMicroelectronics
Title: Constrained Power Management

The general purpose of operating systems like Linux, thanks to their predisposition to adapt easily to different application contexts, is a common choice for many new generation mobile devices. Being a key feature to improve mobility, energy efficiency has become a high priority design goal, and the implementation of the necessary mechanisms to optimize both power and performances can no longer be separated from the requirements of ease of development, portability and adaptability.

This work presents a formal model to define the problem of power vs performance control. We have proven that a distributed control is particularly suited to meet the goals of both adaptability and portability, without unduly compromising the effectiveness of control and its efficiency.

Starting from the current Linux solution we will advance the proposal for an extension that is better tailored to embedded mobile systems. The proposed solution has been implemented in a new Linux kernel framework named CPM which is competitive in adaptability and ensures better control on performances while still not affecting ease of implementation.

Patrick Bellasi is PhD student at Politecnico di Milano, Dipartimento di Elettronica e Informazione, Milano, Italy. His research focuses on dynamic power management at Operating System level. His PhD program is sponsored by STMicroelectronics - Advanced System Technology embedded systems division.

He is familiar with platforms for embedded multimedia applications, with special emphasis on the STM-Nomadik SoC. During the PhD activities, he worked on "Constrained Power Management", he is the lead developer of the Constrained Power Management framework proposal. He is actively involved in two EU-sponsored research projects accepted in FP7.

A fervent supporter of Open Source, Patrick endeavors to mix his studies with his "hobbies" in the field of embedded systems.


Presenter: Gilad Ben-Yossef
Title: The Good, The Bad and Ugly: On Threads, Processes and Co-Processes

Developers of Linux applications seemingly face a two pronged dilemma when trying to design application to make good use of multi-core hardware: use threads and sacrifice the memory protections provided by processes use in favor of supposedly reduced overhead, or use process and supposedly sacrifice  performance for memory protection.

This talk will explore some of the myths and facts regarding the use  of threads and processes, present some real world measurements to the cost involved in using both taken using a modified subset of  LMBench tool, discuss some very real but rarely mentioned  reasons developers choose threads over processes and conclude  by presenting CoProc (http://github.com/gby/coproc/), a proof of  concept library  which provides share-as-needed middle ground  between  threads and processes using Linux clone(2) and mmap(2)  system calls.

Gilad Ben-Yossef is the co-founder and Chief Coffee Drinker of Codefidence LTD. and has been assisting OEMs make use of free and open source software in commercial products and services since 1998. He is also co-founder of Hamakor, an NPO devoted to the promotion of FOSS in Israel, and a founding organizer of "August Penguin," an Israeli community FOSS conference. and co-author of "Building Embedded Linux Systems", 2nd edition, from O'Reilly Media. Gilad is a member of the Israeli chapter of Mensa, the Israeli Information Technology Association and the Israeli chapter of the Internet Society. He holds a B.A. in Computer Science from Tel-Aviv Jaffa Academic College. When not trying to make FOSS software do something the authors never intended, Gilad likes to SCUBA dive, read science fiction and spend time with his wife and business partner Limor and his and two adorable girls, Almog and Yael. You can read more about Gilad at his personal web site http://benyossef.com.


Presenter: Tim Bird, Sony
Title: Analyzing Kernel Function Execution with Ftrace

FTrace is relatively new kernel tool for tracing function execution in the Linux kernel. Recently, FTrace added the ability to trace function exit in addition to function entry. This allows for recording of function execution trees (call graphs) as well as measurement of function duration, which adds incredibly powerful tools for finding time-consuming areas of kernel execution. In this presentation, the architecture and implementation of ftrace will be described, as well as usage tips for analyzing kernel execution.  I will also describe recent work to add the ability to filter the trace data by function duration, and present tools for analyzing kernel function call graphs.

Tim Bird is a Senior Staff Engineer for Sony Corporation, where he helps Sony put Linux into their CE products. Tim is also the Chair of the Architecture Group of the CE Linux Forum, a trade organization that works to improve Linux for use in Consumer Electronics products.
In this position, Tim directs the technical initiatives of the forum, and encourages companies to publish their improvements to Linux and participate in the open source community. Tim has been working with Linux for over 17 years.


Presenter: Tim Bird, Sony
Title: BoF: Android

What's HOT and what's NOT about Android? Android is a relative newcomer to the world of Linux-based distributions.  In this BOF, attendees can discuss the current status of Android, their pain points in developing for Android, and their hopes and fears for the future of this interesting platform.  If you've been working on Android and have it running on a device or platform we've never seen, bring it and show it off!

Tim Bird is a Senior Staff Engineer for Sony Corporation, where he helps Sony put Linux into their CE products. Tim is also the Chair of the Architecture Group of the CE Linux Forum, a trade organization that works to improve Linux for use in Consumer Electronics products.
In this position, Tim directs the technical initiatives of the forum, and encourages companies to publish their improvements to Linux and participate in the open source community. Tim has been working with Linux for over 17 years.


Presenter: Tim Bird, Klaas van Gend & the program committee
Title: Closing session: The Butterfly Effect of CELF

According to Chaos theory, even the tiniest actions, like the flapping of a butterfly, can have a serious impact on the world. The CE Linux Forum is not exactly tiny, but it's flapping certainly has caused some impact on embedded Linux.

Tim Bird will give an overview of the CE Linux Forum, its goals and current activities. Klaas van Gend will do some real Butterfly Effects - tiny actions will result in prizes to be won for anyone attending!


Presenter: Vladislav Buzov, Mentor Graphics
Title: Digital TV and Application Store, Solving Security Problems

For many years television was the main bridge between people and the rest of the world. In this digital era just having a nice, big screen is no longer enough to become a central device in every home. To achieve that a TV has to be more than just a TV. Having all hardware capabilities provided by modern digital TV platforms, it is just a matter of running the right software on it. Opening a software development platform enables developers and users to create a large variety of so-called third-party applications to extend and customize a TV for every particular consumer. However, it brings another, security problem – how to protect a TV from bad, misbehaving applications. The problem, which is actual in Embedded Linux world.

This talk presents the results of an attempt to apply SMACK, a Linux kernel alternative security module, to create a sandbox for third-party applications running in SPACE, a Linux based Digital TV software platform offered by Philips. We will start with a general platform description and continue with some third-party application use-cases and access control requirements. We will then discuss how SMACK can be used to meet the defined requirements. It will also be discussed that using SMACK may not be enough to satisfy all the needs and a hybrid solution consisting of several Linux security and control mechanisms will be proposed. Finally, a testing methodology will be presented along with SMACK memory and performance impact analysis results to make sure the solution is really applicable for embedded systems with limited CPU and memory resources.

Vlad Buzov, Senior Software Development Engineer at Mentor Graphics Corporation, has a Masters Degree in Computer Since from St. Petersburg State University where he graduated in 2006. Vlad started his career developing telecommunications software before he joined Montavista Russia in 2004 and then moved to Embedded Alley in 2007. In 2008 Vlad moved to United States to work at Embedded Alley headquarters which was acquired by Mentor Graphics Corporation in 2009. During last five years Vlad has been working with device manufacturers on debugging, optimizing and creating Linux solutions for networking equipment and industrial, medical and consumer devices.


Presenter: Grégory Clement, Adeneo
Title: How We Got a 3D Application Booting in 5 Seconds Under Linux

First we will talk about how to set up tools to have a close look at the boot process (including kernel and user space). We will explain how to use a Bootchart version written in C. We also developed a Linux shell script to timestamp every message coming from the serial line.
Then we will use a real world example as a support, probably based on a custom board (Neocore 926) or eventually an evaluation board such as the AT91SAM9261EK. This example will consist in an isometric 3D animation (Qt-embedded) which originally takes more than 20 seconds to run. We will improve it step by step. After each stage of optimization we will see how much time has been saved. We will also talk about how to improve U-Boot to load the kernel faster.
Finally the system is completely running in 5 seconds (after the board is powered on).

Gregory Clement has been involved in Linux development for more than ten years with specific focus on real time and embedded Linux for seven years. He is the Embedded Linux Development Lead of Adeneo Embedded since 2002, where he drives a team of Linux Embedded experts specialized on kernel and drivers development, as well as porting Embedded Linux on new platforms. His team was recently involved in the development of reference BSPs for Freescale on i.MX platforms and Atmel on AT91 platforms.


Presenter: Bas Engel, Philips Consumer Lifestyle
Accelerating Digital Television Innovating  -- Joint SPACE Initiative

Digital Television software continues to follow Moore's law closely, as the amount of software that is required continues to grow significantly. We will start by presenting the application landscape, the role of software and Linux in it, and the main performance characteristics.

SPACE proved over the past 3 years to be a powerful system concept that significantly reduced the lead time of new (sw) features by modularizing the integration complexity of digital television systems. We will present an overview of the building blocks that complement today’s digital television system. Furthermore, we will discuss how Philips started with SPACE, the steps taken to increasingly modularize the software, and some of the key decisions taken to be able to manage this.

Television went through a significant change with the introduction of digital broadcast, IP connectivity features, and a strong demand for ease of use. The ongoing feature demand also accelerates the commoditization trend, where new features become tickmarks in a short period of time. As these features become available as standard solutions, the value further diminishes. We will discuss how this increases the need to become more efficient and agile to new market demands and the required system approach.

As one of the key benefits of SPACE is the short lead time to extend an existing SW system with new applications, there is a major opportunity to leverage standard system solutions and customize it with specific value-add. We will present the "Joint SPACE Initiative", a recent development within the digital television industry where silicon manufacturers are embracing SPACE as the standard system approach. Thereby enabling the ability for digital television manufacturers to focus on creating value-add for their customers, while maturing a joint system context for the supplier to leverage.

The presentation will be concluded with a discussion about the scalability of SPACE and some of the future opportunities. We will be looking at some of the recent developments in the community (Android, SMACK, DirectFB 2.0) and the fit with SPACE.

Bas Engel has over 9 years experience in the consumer electronics domain. He has been working on digital television systems within Philips Research, Philips Semiconductors (now NXP), and Philips Consumer Lifestyle in various functions and application areas.

Today Bas is the lead System Architect for Business Unit TV within Philips Consumer Lifestyle. His responsibilities range from short term product introductions and mid to long term system innovations where Linux plays a key role.


Presenter: Florian Fainelli, Open WRT
OpenWrt, as Rapid Embedded Systems Prototyping Framework

Over the past few years OpenWrt has been the leading alternative firmware for wireless and wired routers. It has now evolved to be able to fulfill other embedded and multimedia devices needs and requirements and has become an excellent embedded framework for prototype development. In this presentation, we will show how OpenWrt is a powerful choice in order to build a toolchain, kernel and user-space ready for embedded device deployment.

Numerous advanced as well as useful features are integrated into OpenWrt, thus making it very easy to work with:

  1. different hardware targets using environment scripts
  2. build kernel source maintained in an external git repository or build tree
  3. use a binary toolchain within OpenWrt
  4. integration of quilt to ease patches migration of the various components
  5. third-party packages repositories handling

The presentation will practically be based on a Cavium Networks Octeon evaluation board to illustrate how specifically to use OpenWrt in a real world context.

Florian Fainelli is a core OpenWrt developer and Linux kernel contributor. He holds a masters of engineering in Telecommunications and works as a software developer at Openpattern that he co-founded in 2008. He mainly works on all kind of devices the company uses, from MCUs to FPGAs and SoCs with a strong accent on opening up the hardware as much as possible.


Presenter: Pierre Ficheux, OS4I
Title: Using QEMU for Industrial Embedded Applications

QEMU is a free hardware emulator developed under GPL by Fabrice Bellard an a worldwide community. QEMU can emulate a large number of boards based on x86, PPC, ARM9 or MIPS.

First of all we will introduce QEMU functionalities then we will demonstrate how to build an run an embedded Linux system in the emulator. Then we will introduce the COUVERTURE project based on a modified version of QEMU and targeted to DO-178B software certification.

I've been a free software developer around UNIX and GNU project since 1989. I started using Linux for industrial applications in 1992.
I've been focused on Embedded Linux since 2000, author of lots of technical articles and the unique French book on the subject ("Linux embarqué", which means "Embedded Linux" in French).

I've been CTO of Open Wide, a French "open source" software service company since its creation in 2001.


Presenter: Adriaan de Groot, Free Software Foundation Europe
Title: Software Licensing - A Lot Like Programming

Software licensing is a lot like programming; you have to put the bits together in the right way or bad things happen. Sure, there are templates and some macro processing possible, but in the end you are responsible for making sure that both sides of an interface live up to their contracts. This talk will be about licensing, not about programming, and about compliance, not compilers.

The GPL version 2 and, increasingly, version 3, apply to software that is used in embedded systems. They bring with them licensing requirements that need to be satisfied. Unlike proprietary software, the Free Software requirements are not about remuneration, but about maintaining the Freedom of users of the software to use, study, modify and distribute. That places some interesting requirements on manufacturers of devices that use this software -- and in the worst case, an injunction may halt the sale of your product. This is the reason that the FSFE and gpl-violations.org can (and do) engage pro-actively in dialogue with vendors to ensure that license compliance is part of the process in creating a product.

We will examine the license requirements of the GPL and how they apply in a device context, along with the latest legal thinking on the topic of linking and remote interfaces. The Freedom Task Force, which is the legal department of the Free Software Foundation Europe, has released a best practices guide to GPL compliance, and we will look at how you can attend to this topic -- and how you can violate the GPL in three minutes or less if you do not. Finally, we will look into business and license compatibility beyond the GPL.

Adriaan de Groot is a Canadian by birth and a Dutchman by training. He has worked as a researcher in software quality and formal verification, is an experienced C++ programmer and an active member of several large Free Software organizations, including the Free Software Foundation Europe and KDE e.V. His university work culminated in his PhD. thesis on Practical Automaton Proofs in PVS at the University of Nijmegen. In 10 years of programming he has worked on many aspects of the KDE desktop software, focusing on software quality and portability issues so that all Free Software operating systems can use the software. As a member of FSFE, KDE e.V. and the NLUUG, he has experience in organizational and management matters and has spent the last several years cultivating knowledge about legal and licensing matters in Free Software projects.

Adriaan is the coordinator of the Freedom Task Force, the services arm of the Free Software Foundation Europe. The FTF offers educational services, facilitates infrastructure activities and manages FSFE's legal affairs. Its work focuses on the promotion of the proper use of Free Software.


Presenter: Sascha Hauer & Marc Kleine-Budde, Pengutronix
Title: U-Boot-v2

Most embedded linux development starts with bringing up a bootloader on a new board. While there are many choices for a bootloader, each one has its own limitations. U-Boot-v2 is derived from the famous U-Boot bootloader and tries to go provide a linux-like user interface with:

  1. device / driver model
  2. file system support with mount/umount and unix like commands as ls / cp / mkdir, ...
  3. small builtin editor
  4. Linux clocksource timer framework
  5. module support
  6. initcalls
  7. support for ARM, PowerPC, Blackfin and M68 processors
  8. sandbox support for running U-Boot as a Linux binary for development

This talk provides an overview about U-Boot-v2 from both a developers and a users point of view.

Sascha Hauer is working as a kernel developer at Pengutronix. He started programming on a C64 which lacked a floppy to play games. Sascha uses Linux since 1997 and made his first contact to embedded boards by porting the Freescale i.MX SoCs to Linux 2.6. Since 2009, Sascha is the official i.MX Maintainer.


Presenter: Gordon Hecker, Emlix
Title: e2factory - Open Source Embedded Linux Build System

Embedded Linux systems are based upon a set of Open Source Software components, supplemented by specific libraries and applications that make up a product, being free software or not. Maintaining Embedded Linux Systems requires to carefully select packages and configure their build processes. Build processes cascade up to the final system image, ready for deployment.
The process, once configured, must be reproducible in a reliable way, even across distributed development teams.

To suit a commercial environment, a build system should focus on many topics: Support modular configuration, make development easier, speed up development, avoid mistakes in dependency handling, support efficient development and release processes for platform based product development and produce reproducible results. Last but not least: A build system itself should be free software, to maintain a stable core while giving users the opportunity to extend it to their needs.

e2factory is free software, licenced under the GPLv3. Source code is available at http://www.e2factory.org.

Studies in Information and Communication Technologies at Fachhochschule Gelsenkirchen in Bocholt, Germany from 2000 to 2004, Working with linux systems since 2000, Working in the field of embedded linux at emlix since 2005


Presenter: Cedric Hombourger, MontaVista
Title: Why OpenEmbedded Proved a Good Foundation for MontaVista

When MontaVista decided to retire RPM as the base of their build system, we did a thorough investigation of the available embedded cross build environments. OpenEmbedded stood out as a very flexible and versatile platform. There is a huge community around OpenEmbedded and it has basic support for many different types of applications and targets.

This talk will highlight many of the qualities of OpenEmbedded and its weaknesses - and how MontaVista was able to turn these around.
Cedric Hombourger will also show how easy it is to customize and improve when the platform to work from is as solid as OpenEmbedded.

Since 2000, Cedric has been engaged with embedded designs for consumers electronics such as Philips, Hitachi, Mitsubishi Electrics, and LGE while working at NexWave. As a solutions architect at MontaVista, he visits customers across Europe to help them build effective Linux-based devices for automotive, telecom and consumer applications. Linux topics that he likes include development tools, realtime, small footprint and multimedia.


Presenter: Marcin Juszkiewicz
Title: Hacking with OpenEmbedded

For most people OpenEmbedded is a build system used to build whole filesystems or new distributions. But that does not cover all possibilities - it can be used for other things.

In this talk you will see how to build and use software for systems which are not OE based (like Maemo, SharpROM, ST Linux installed on NHK15) and how to use it to build missing tools for host system.

Marcin is a long time Debian GNU/Linux user (on m68k, x86, amd64 architectures) who likes working with good operating systems (used AmigaOS before Debian). He has been a mobile platforms user since 2002 (PalmOS, then Linux) and an OpenEmbedded core team member since 2003. At about the same time, he joined the OpenZaurus developer team and managed that project through many releases.
He started his own company in 2006 and works as an OpenEmbedded and Poky Linux consultant. From 2007 to 2008, he worked, in collaboration with OpenedHand, on many interesting projects like the Vernier LabQuest device. Those projects were essentially based on Poky Linux. He currently collaborates with Bug Labs, Inc. on the development of their software platforms.


Presenter: Peter Korsgaard, Thomas Petazzoni
Title: BoF: Buildroot

Buildroot is a tool that allows users to automate the process of building a cross-compiling toolchain, the kernel and userspace libraries and applications in order to build a complete embedded Linux system from scratch. Providing more than several hundred packages for the most common free software used in embedded systems, Buildroot allows to easily build highly-integrated, custom Linux systems, without suffering the pain of cross-compiling.

Since January 2009, the project has began a new life, with Peter Korsgaard named as the official maintainer. Stable releases shipped every three months and a much bigger attention to user reports. Through this BOF, for the first time, we would like to allow developers and users of Buildroot to meet and exchange their ideas and wishes for the future of the project.

Peter Korsgaard has been involved with embedded Linux for close to ten years: First with handhelds.org, later nslu2-linux.org and now maintains Buildroot and a number of device drivers in the Linux kernel. Peter works for Barco where he handles the lowlevel software stack for their products, mainly on PowerPC.

Thomas Petazzoni is an embedded Linux engineer at Free Electrons, a company offering kernel and embedded Linux development services and trainings. In the past, he hacked small operating systems for fun at university and has been a Linux kernel developer working on a storage virtualization technology. He is also a contributor to the Buildroot project and spends part of his spare time promoting free software in France.


Presenter: Guennadi Liakhovetski, Open-Technology
Title: Embedded Video Capture Under Linux: The Soc Camera Framework

A number of embedded SoCs provide a dedicated hardware interface for connection of video capture devices such as camera sensors and video decoders. Supporting such video configurations means writing kernel Video4Linux drivers for SoCs and for sensors. To be able to reuse sensor drivers with various SoCs a framework has been created in the kernel, called soc-camera. It has been developed in the end of 2007 / beginning of 2008 and first appeared in the mainline in 2.6.25 kernel version. Currently soc-camera supports 4 SoC types and 6 video capture devices. This is an actively developing subsystem with new drivers and features constantly being added, bugs fixed with multiple contributors and a dedicated maintainer.

Currently a self-employed open source software developer, with emphasis on the embedded Linux kernel and the U-Boot bootloader.

2001-2007: embedded Linux kernel development for DSA Daten- und Systemtechnik GmbH. in Aachen, Germany 2000-2001: postdoctoral
research in Oceanography at the University of Sheffield, U.K. 1998

1999: postdoctoral research in Mathematics at the University ofAbertay Dendee, U.K. 1998: Phd. in Mathematical Analysis at the Russian Academy of Sciences in Vladivostok.


Presenter: Bruno Cardoso Lopes, University of Campinas
Title: The LLVM MIPS and ARM Back-ends

LLVM is a compiler infrastructure aimed at providing aggressive optimizations in the entire life of a program - compile time, link-time (particularly interprocedural), run-time and offline (i.e., after software is installed)).

It also provides static back-ends for the X86, X86-64, PowerPC 32/64, ARM, Thumb, IA-64, Alpha, SPARC, MIPS and CellSPU architectures, and a back-end which emits portable C code. LLVM is growing quickly in the embedded area. In the past few months three more embedded architectures (PIC16, XCore and MSP430) were added to the code generator. LLVM is an open source project (with its own license, very close to the MIT license), easily works and generate code for Linux systems.

The presentation will start with an overall explanation about how LLVM works, with more details on the back-end scenario, showing the guidelines for learning the code generator and back-end frameworks.
The recent advances in the MIPS and ARM back-ends will be presented, together with performance results.

Bruno Cardoso Lopes is a PhD student at University of Campinas, Brazil. His academic research includes hardware simulation and code compression. In the past he worked and had experience with embedded systems, with drivers for Linux and FreeBSD. He's also an active contributor to the open source compiler LLVM (Low Level Virtual Machine), where he maintains the MIPS back-end.


Presenter: Yann E. Morin
Title: Building Our Own Toolchains for Our Embedded Projects: Why, and How To

Cross-compiling is the almost-impossible-to-avoid procedure to get our software onto our embedded device. There exist quite a number of pre-built toolchains (from the community, the board vendor, third-parties), and for almost every architectures (ARM, MIPS, PPC...). On the other hand, we can build our own toolchains, from source.

As a starter, we'll discuss the pros and cons of using binary toolchains. Then, we'll see how building our toolchains from source can help lift the limitations of binary toolchains, the problems that may arise in the process and how to avoid / work around them. Finally, we'll discuss the way we actually build our toolchains, from manual building, to using tools for automated builds.

My name is Yann E. Morin. I have had strong personal interest in Linux and embedded Linux systems, and FLOSS in general since around 1995. I've been professionally working the last 11 years on embedded and real-time projects, of which the past >4 years involved embedded Linux. I can be reached at: yann.morin.1998@anciens.enib.fr. More contact means are available at: http://ymorin.is-a-geek.org/.


Presenter: Michael Opdenacker, Free Electrons
Title: Update on Boot Time Reduction Techniques

More and more feature rich Linux devices are put in the hands of consumers, and the average consumer shouldn't even notice that they run Linux. To make the OS invisible, the system should boot in a flash.

Multiple boot time reduction techniques are now available. This presentation will guide embedded Linux system developers through the most effective ones. For each technique, we will detail how to use it and will report the exact saving that was achieved.

You will be amazed by the results. The use of real embedded boards will prove that the savings are real, and that no time travel techniques and relativistic mechanics were used to get the desired results.

Michael Opdenacker is the founder of Free Electrons, a company offering development, consulting and training services to embedded Linux system developers worldwide. He is always looking for innovative techniques to share with customers and with the community.


Presenter: Michael Opdenacker, Free Electrons
Title: Small Business

Conferences like ELC and ELCE are excellent opportunities for small embedded Linux companies to meet, exchange experience and know each other better. This makes it possible to cooperate on customer projects which are too big for a single company, and to take advantage of the specific skills of each partner.

We invite small business owners and employees to join this BOF.
Here are suggested topics:

  1. Introducing one's company and main areas of expertise (2 slides max per company, to be sent to michael@free-electrons.com before the BOF)
  2. Working with clients (preparing quotes, estimating, invoicing, etc)
  3. Marketing, advertising, and building the business.
  4. Project management
  5. Relationship with the community, and with similar service providers
  6. Relationship with vendors
  7. Interest in an "Embedded Linux small business miniconf" at ELC 2010?

Ideas for this BOF can be added to the elinux.org wiki:

Michael Opdenacker is the founder of Free Electrons, a company offering development, consulting and training services to embedded Linux system developers worldwide. He is always looking for innovative techniques to share with customers and with the community.


Presenter: Samuel Ortiz, Intel Open Source Technology Centre
Title: Linux Wifi Solutions for Mobile Platforms

With the upstream kernel getting better 802.11 support we're starting to see embedded 802.11 Linux drivers really meeting mobile platforms requirements. 802.11 devices are usually IO and power hungry, and we'll see how the mac80211 stack and some fullmac upstream drivers work really hard to save as much host and target power while optimizing the usually low speed bus usage. Our focus will be on the currently available 802.11 kernel.org drivers.

I work as a software engineer for Intel Open Source Technology Center where I mostly focus on Linux wireless drivers and subsystem. I also maintain the Linux IrDA and MFD subsystems. Before joining Intel, I worked for several companies including big iron RIP Silicon Graphics, Nokia and OpenedHand.

On my spare time I enjoy hiking, running and paragliding across and over my beloved Jura mountains.


Presenter: Nicolas Palix, Julia Lawall & Gilles Muller, University of Copenhagen
Title: Coccinelle: A Program Matching and Transformation Tool for Systems Code

Program matching is the process of searching within the source code of a program for code fragments matching a given pattern, described using some language. Program matching languages have been found useful in specifying rules for program manipulation tasks such as bug finding, refactorings, and evolution.

We have developed the transformation system Coccinelle, which provides the language SmPL (Semantic Patch Language) for specifying desired matches and transformations in C programs. Coccinelle was initially targeted towards performing collateral evolutions in Linux. Such evolutions comprise the changes that are needed in client code in response to evolutions in library APIs, and may include modifications such as renaming a function, adding a function argument whose value is somehow context-dependent, and reorganizing a data structure. Beyond collateral evolutions in Linux, Coccinelle is now successfully being used (by us and others) for finding and fixing bugs in Linux, OpenSSL, Dovecot, etc.

In this talk, we present the main features of Coccinelle and some of its classical usages, illustrated with evolutions and bug fixing examples in Linux. We explain how this approach improves the maintainability of kernel source code developed outside of the mainline. We also highlight some of the original aspects of the implementation that make these usages possible.

Nicolas Palix is a post-doc in the APL group at the University of Copenhagen (DIKU). During his PhD, he worked on two domain-specific languages for communication services, namely SPL and Pantaxou. These languages rely on associated middlewares based on the SIP protocol, a IETF protocol initially designed for IP telephony. He has been working on the Coccinelle project since October 2008 and is investigating new usages for the spatch tool beyond software evolutions and bug fixing. He especially studies defect histories and collaborative development of semantic patches.


Presenter: Pascal Pellet, e2v
Title: Linux Embedded Applications in Machine Vision

e2v semiconductor is a world leader in development and manufacturing of cameras for Machine Vision. Our new generic platform uses an ATMEL processor (AT91SAM9263- based on an ARM926EJ-S core). Linux is used as the embedded operating system, bringing in our product various different services like TCP/IP stack, Ethernet over RS232 (PPP), Peripheral device driver’s availability File System, Monitoring. Among the others advantage for us using Linux, are the technical support and the ease to find developers, development environment, hardware abstraction, and manufacturing.

For Machine Vision applications, we have developed several cameras around this platform, using Camera Link (applications and drivers) and Gigabit Ethernet (GigEVision (GEV) protocol) as communications protocol. For GEV application, we have developed IP's (reusable blocks) with drivers and applications to manage and to be compliant with this protocol. The presentation will introduce GEV protocol, describe camera architectures, IP GEV, including the interface between processor and a FPGA dedicated to the 1Gbit Ethernet connection. This driver manages the FPGA FIFO stack to provide Ethernet packets to the TCP/IP stack. The talk will also describe embedded image processing (video line profile, averaging,…), the upgrade application,  and how Linux increases the service level in our product. FInally, the feedback from past experience will point out and describe some of the difficult points we faced, like memory bad block management and the difficulty to interface with the Windows world (Host side) for upgrade application.

Pascal Pellet is an embedded software engineer. He joined e2v in 2004 to develop embedded software for camera and medical applications. In 2007 he set up a generic platform based on an ARM processor and an embedded Linux. This platform is the base of all new products.


Presenter: Matt Porter, Mentor Graphics
Title: Mythbusters: Android

This talk examines the myths and realities of the Android Operating System. Android has achieved an amazing level of anticipation and media coverage largely due to Google's backing. However, much of the technical and mainstream media coverage has led people to misunderstand the technology behind Android. In this session, we will explore the Android Open Source Project (AOSP), examine the AOSP developer community, and learn why Android is not "Linux". The discussion will cover the challenges involved in developing Android- based devices and porting Android to the MIPS architecture.

Matt Porter started contributing to Linux as an early Debian GNU/Linux developer. He has developed and maintained support for embedded systems in the mainline kernel including PowerPC VME/cPCI systems, PowerPC 4xx, and the RapidIO subsystem.

Matt led the Linux effort at Motorola Computer Group and later joined MontaVista Software as the founding member of the Arizona engineering center. He joined with other embedded Linux veterans to found Embedded Alley and now works on embedded Linux and Android product architecture.


Presenter: Pierre Pronchery, Bearstech
Title: Hackable Devices: The New Possibilities of Open Hardware

The « Hackable Devices » are consumer electronics with unrivaled possibilities. They are Open Source hardware, since their specifications are available publicly. Besides a cheaper development process, the products can be tweaked and extended by the end-user. The devices are a new opportunity for sustainable development.

Bearstech, a cooperative of Free Open Source Software engineers, started reselling the Openmoko Freerunner in July 2008. This is part of a new research initiative, studying the different business models that can be associated. The amount of interest from all kinds of customers has really surprised us, as not only computer geeks, but also small companies, big corporations, scientists and state-funded agencies spontaneously contacted us and joined forces to drive projects.

Therefore, we would like to share our perception of the situation, and explain the new possibilities associated with this business model. We are convinced of the possibility to create an ecosystem of companies, that will also participate and gain from community-driven development.

Pierre Pronchery is a free software development and security consultant for 5 years now. Mostly self-taught and never satisfied.


Presenter: Frank Rowand, Sony
Title: A Survey of Linux Measurement and Diagnostic Tools

When the performance of your embedded Linux device is inadequate, how do you understand what the problem is? This presentation will provide an overview of some of the available tools to measure and analyze the behavior and resource usage of the Linux kernel and userland applications.

Frank Rowand has been the creator or user of many performance measurement and analysis tools on a variety of operating systems. His performance analysis experience has included production OLTP servers, client/server systems, real-time systems, benchmarketeering, and embedded devices.  He is currently focusing on embedded Linux research and development at Sony Corporation of America.


Presenter: Alessandro Rubini
Title: Use of the Fast IRQ (FIQ) in ARM-Linux

The ARM family of processors offers two levels of interrupts: the fast IRQ is never masked in practice and is thus available to run a real-time within a generic GNU/Linux system.  This talk will show how to use FIQ support in the official kernel and how an external package offers support for custom modules implementing real-time tasks.  I'll describe a few real-world examples of systems using the FIQ as well as some hard performance figures on a few different CPU implementations.

Alessandro is an electronic engineer working as an independent consultant in Italy since 1995. He deals with device drivers and embedded systems, avoiding the x86 platform as much as possible. He's the author of "Linux Device Driver", 1st edition (co-author of later editions), and wrote articles on the topic for Linux Magazine and a few Italian magazines. He has been a member of Free Software Foundation Europe for a few years.  As a contract professor, he teaches "Real Time Systems" at the local university, and would like to have more time to ride his old bicycle or walk in the mountains.


Presenter: Wolfram Sang, Pengutronix
Title: Developer's Diary: The Device Tree

There are two ways of passing board specific configuration data to the Linux kernel - internal, using platform_devices/platform_data, and external, using the device tree. Because they are not directly mappable, a number of difficulties and misunderstandings have come up since. This talk does not explain the basics of the above methods, so a general understanding is already expected from the audience. Instead, it wants to share some of the experiences gained while trying to extend various device drivers to support both ways (in subsystems like mtd, i2c, uio, spi). It is not too surprising, that these experiences often led to a class of "core problems" which are still to be discussed and sorted out. It is one aim of this talk to help improving the situation by focusing on these core problems.

Wolfram Sang works as a kernel developer for Pengutronix. He uses free software since 1999, so he contributed to various projects in his quest "1000 projects to send patches to before I die". Programming since his childhood, he still hacks his machines from the 80s. When not using computers, he is interested in ecological topics, likes cooking and tries to keep his Japanese alive.


Presenter: Stefan Schwarzer, BerLinux Solutions
Title: Disko v1.6 – An Application Framework for Embedded Devices

Disko is an application framework that can be used to develop GUI applications for embedded devices. Since we first presented Disko v1.0 on the ELC 2008 in San Francisco it has seen many enhancements. We like to share with you the most exciting new possibilities and the experience we've made. Therefore our focus will be on:

  1. flash integration
  2. webbrowser support
  3. SIP
  4. gstreamer
  5. new backends for x11, framebuffer

Stefan Schwarzer is a co-founder of BerLinux Solutions and the lead programmer of the Disko framework, which has been presented for the first time at the 2008 Embedded Linux Conference in Mountain View, California. He previously co-developed the media-center Morphine.TV and supported several projects with his expertise on architectural and conceptual issues.


Presenter: Robert Schwebel, Pengutronix
Title: Customizing Embedded Linux Systems with PTXdist

PTXdist is a GPLed build system which is available in the community since 2001, based on Kconfig, bash and make. It's focus is on

  1. reproducability of self made Embedded Linux distributions
  2. cross toolchains for ARM (linux + bare metal), PowerPC, x86,  MIPS and others
  3. quality improvements for the Linux userspace, especially wrt. cross development

One sub project is the crossdev@send-patches.org mailing list which was established to improve the collaboration between different cross development build systems like BuildRoot, Embedded Debian, Open Embedded and PTXdist.

The talk shows how ptxdist can be used to solve everyday problems and outlines the basic mechanisms of and concepts behind PTXdist projects, with a special focus on the new features of the recently published 2.0 release.

Robert Schwebel is an electronics & measurement engineer. Working with Linux since 1993, he founded Pengutronix in 2001: the company provides Embedded Linux consulting and support for industrial and automation projects. Besides managing a can of worms ^W^W^W team of highly skilled kernel hackers, he works on requirements engineering, testing and integration issues and is the co-maintainer of the 'ptxdist' build system.


Presenter: Jean-Marc Temmos, Visteon Software Technologies
Title: Genivi Alliance : An Effort to Build a Linux-based In Vehicle Infotainement Platform

In the automotive industry, using proprietary solutions is a traditional approach. Now, promoting Linux and OpenSource based solutions will undoubtedly stimulate innovation among developers, ensure perennity and facilitate re-use of components, as it already did in consumer electronics and mobile telephony segments. Genivi is a non-profit Alliance gathering some major automotive OEMs, suppliers and technology providers such as BMW, PSA, Intel, Visteon, Texas Instruments, Delphi, GM, and Magneti Marelli (non exhaustive list). It targets the non-differentiating elements of the solution stack and aims at creating an OpenSource and consistent basis for board computers and media embedded in cars.

First, the expected scope of the platform is explained, ranging from music, multimedia, navigation, to news, internet browsing, location based services and  phone calls handling. Next, architecture of this moblin based IVI (In Vehicle Infotainment) platform is exposed: middleware, application layer interfaces, and frameworks. Then, benefits for the automotive ecosystem are emphasized, obviously focusing on the development time reduction and the re-use of components. Eventually, a typical Visteon project using Genivi is detailed.

Post-graduate Ingenieur with scientific background in applied mathematics and computer science, I have worked in various companies and fields ranging from petroleum industries, acoustics and signal processing, digital cartography, to telecom, HMI, and virtual reality. I currently manage innovation projects for Visteon Software Technologies. My activities also include technological survey and stakeholders finding to launch new projects.


Presenter: Francesco Virlinzi, STMicroelectronics
Title: A Generic Clock Framework Implementation

Embedded systems use a lot of clocks to synchronize their internal subsystems. Some architectures have their own framework to manage these clocks with similar design and constraint duplicating a lot of code. This paper presents a new Generic Clock Framework, fully integrated in the Linux Driver Model that is able to manage the clocks tree and the relationship between each clock and the devices that use that clock.

The main goals are to manage:
1. each clock and the operations that the clock support
2. the clocks tree and the hierarchical relationships
3. the clock-device relationships
4. the clock rate change propagation
5. in an architecture independent way.

While several clock frameworks are able to address the first two points, most of the clock frameworks aren't architecture independent and are not able to involve the device driver in the propagation flow.
A clock state change is a transaction from the Framework point of view, and the status is allowed only if all the devices affected by this change agreed. In this context, each device driver must be notified of the actual change of its clock status that has to be propagated across the hierarchy. This is one of the most important aspect that is not handled by current frameworks implementation.

Changing at runtime the rates of some clocks (or disabling them), can help to globally reduce the power consumption, allowing the system to change it's power state as per user request safely.

Francesco Virlinzi is a Senior Software Engineer at STMicroelectronics since 2005. He is involved in kernel activities at ST. He is also a contributor of the "linux-sh" kernel.


Presenter: Alex de Vries, Wind River Systems
Title: Technical Features and Components of Open Source Build Systems

Unlike other applications of Linux, Embedded Linux devices require runtime images that are optimized for the CPU, available storage and software applications. A build system is able to compile, assemble and tune many open source components (the kernel, busybox, etc) and is a critical part of embedded Linux development.

This presentation will explain the different use cases of build systems (patching code, compiling code, creating interim packages, creating root filesystems, managing project configuration). It will also cover features that should be considered when selecting a build system (speed, available packages, host requirements, optimization tools, revision control and scalability). A summary of the different available build systems will be presented, including Open Embedded, PTXdist, Wind River's Linux Distribution Assembly Tool, Moblin and others.

Alex deVries has been the Chief Technologist for Wind River Systems for the last five years.  His start with Linux development came with the port of Linux to SGI/MIPS in 1997.  With his Linux services company, The Puffin Group, he initiated development of Linux for PA- RISC  with Hewlett-Packard in 1997. He was the Linux architect for Linuxcare through to 2004, working on Linux for IBM z-Series mainframes. He lives in Ottawa, Canada.


Presenter: Nina Wilner, Power.org / IBM
Title: Porting Android to Power Architecture™

Android is a software platform for mobile devices, powered by the Linux kernel, initially developed by Google and later the Open Handset Alliance. Since its creation and the availability of the first devices running it, Android has gotten a lot of attention and interest, even beyond the purely mobile handset market. This presentation is looking at what it takes to port Android onto a new platform, such as Power Architecture™, and what other markets may benefit from Android.

Nina holds a Diploma in Mathematics and Physical Chemistry from University in Duesseldorf, Germany (German University Diploma is equivalent to ABD). She has been with IBM since the beginning of 1987 and has worked with Power Architecture and Unix/Linux based systems ever since. Over the years Nina has held a variety of technical roles that allowed her to develop a rich, divers knowledge of the Power Architecture and Unix/Linux environment as well as customer requirements in this space. Since 2006 Nina is exclusively focusing on the embedded space.

Presently Nina is the Software Architect for Power.org and as such has lead many software initiatives, such as organizing the industry’s first software summit for Power Architecture™, developing a comprehensive software strategy for power.org, and co-planning/co-organizing multiple Power Architecture™ conferences. Additionally Nina now also chairs the technical committee within Power.org as well as the embedded hypervisor technical subcommittee (working group).

Nina is currently based in Austin, Texas USA.


Presenter: Vitaly Wool, Mentor Graphics
Title: Using Device Trees on ARM Platforms

The Open Firmware Device Tree is a generic and simple format for a device tree. It can be used to represent the various entries in a device tree for just about any operating system. In Linux, using device trees had been a requirement for arch/powerpc since ever but until recently, there was no device trees employment on other platforms.

This year several attempts were made to bring device trees in ARM Linux kernel core. They have met strong opposition from some ARM Linux persons including the ARM Linux maintainer, Russell King. Some general opponents' points were the overcomplication device trees bring in, more interdependencies between the kernel and the bootloader, and slower boot times. This talk will summarize pro's and contras of device trees usage for ARM platforms, as well as present some measurements on boot times and kernel code sizes with and without device trees on some ARM targets.

Vitaly Wool, Software Engineer at Mentor Graphics, graduated in St. Petersburg State Univ. in 2002 as a Computer Science specialist, worked with such real-time OSes as VxWorks and RTEMS mostly for PowerPC platforms for Tercom state Enterprise.

Vitaly moved to Moscow, Russia, in 2003 where he started to work mostly on Linux for different platforms and architectures, and joined Embedded Alley in 2007. He is interested in consumer electronic optimizations for Linux, ARM and MIPS Linux development in general, Android Open-Source project.