Embedded Linux Conference 2014 Schedule

The Tenth Embedded Linux Conference (ELC 2014) will take place on April 29 – May 1, 2014 at the San Jose Marriott in San Jose, California. The event will feature 90+ sessions on embedded Linux, Android and IoT with over 450 attendees expected to attend. It will also be co-located with Android Builders Summit and the AllSeen Alliance Hackfest. Even if you can’t attend it’s still interesting to see what will be discussed at the event to get a grasp of on-going developments, learn a few things about different optimization techniques, and so on. So I’ve gone through the sessions’ description, and I’ve designed my own virtual schedule with sessions that could be of interest.

April 29

Linux has taken the embedded world by storm. Billions (with a ‘B’) of devices have now shipped with a Linux kernel, and it seems unstoppable. But will the next 10 billion devices ship with Linux or with something else? How can Linux be specialized for deeply embedded projects, as characterized by the Internet of Things, while still maintaining the network effects of community cooperation and sharing? Is this possible or even desirable? The startling truth might be revealed at this keynote. Or, Tim might just rant a bit about device-tree… who knows?

The past year has seen a remarkable growth of interest in super-low-power and super-low-form-factor computing, in the form of ‘wearables’, the ‘Internet of Things’, and the release of exciting new hardware such as Intel’s Quark and Edison SoCs. Taking advantage of this super-small hardware also implies the need for super-small operating systems and applications to match. This talk will describe a super-small-footprint Linux distribution called ‘microYocto”. The main focus will be the kernel and how we achieved what we think is close to the minimal possible kernel footprint, both in terms of static text size and dynamic memory usage. We’ll talk about the tools and methodologies we used and developed to analyze the problem, such as tracing and machine simulation, and will describe the various technologies developed and applied to achieving this minimalistic system.

Many community resources exist about boot time reduction. However, few of them are up to date and share the exact time savings that can be achieved on recent systems. This talk will detail today’s most efficient techniques to reduce boot time. For each of them, figures will be shared, obtained from recent boot time reduction projects and from the preparation of Free Electrons new workshop on this topic. If you attend this talk, you will know which optimization techniques are worth using first, and will save time not exploring techniques that won’t make a significant difference in your project. Don’t tell your boss, and this will leave your more time to contribute to community projects!

In this talk, Chris will describe the internal workings of the Android graphics stack from the Application layer down through the stack to pixels on the screen. It is a fairly complex journey, taking in two different 2D rendering engines, applications calling OpenGL ES directory, passing buffers on to the system compositor, Surface Flinger, and then down to the display controller or frame buffer. All this requires careful synchronisation so that what appears on the screen is smooth, without jitter, and makes efficient use of memory, CPU, GPU and power resources.

Linux-based platforms such as the Beaglebone and Raspberry Pi are inexpensive powerhouses. But, beyond being cool on their own, what else can you do with them? This presentation will step you through the process of building a Wi-Fi enabled, Linux-based robot that you can build without breaking the bank and without special knowledge of robotics and robotic controls.

Since last year, we have been working on supporting the SoCs from Allwinner, a Chinese SoC vendor, in the mainline kernel. These SoCs are cheap, wide-spread, backed by a strong community and, until last year, only supported by an out-of-tree kernel. Through this talk, we would like to share the status of this effort: where we were a year ago, what solutions were in place, where we are currently, and what to expect from the future. We will also focus on the community around these SoCs, the work that is done there, etc.

GCC is an optimizing compiler, currently most common compiler to build software for Embedded Linux systems like Android, Yocto Project etc. This tutorial will introduce specific optimizations and features of GCC which are less known but could benefit optimizing software especially for embedded use while highlight the effect of common optimizations. While it will focus on squeezing most out of GCC, it will also cover some of “pessimizations” to avoid and will tip the developer to write code thats more conducive (compiler friendly) for general optimizations. They will also get some contrast with other compilers when needed.

Throughout the last two years, a team of engineers at Free Electrons has been involved in mainlining the support for several ARM processors from Marvell, converting the not-so-great vendor-specific BSP into mainline quality code progressively merged upstream. This effort of several hundreds working days, has led to the integration of hundreds of patches in the kernel. Through this talk we would like to share some lessons learned regarding this mainlining effort, which could be useful to other engineers involved in ARM SoC support, as well as detail the steps we have gone through, the mistakes we’ve made and how we solved them, and generally our experience on this project.

This BoFs is intended to bring together anybody that tests the Linux kernel to share best practices and brainstorm new ideas. Topics may range from .config testing, module/built-in drivers, test methods and tools for testing specific driver subsystems, VM/scheduler/interrupt stress testing, and beyond. The discussion is targeted at Linux kernel developers, test engineers, and embedded Linux product teams/consultants with the common task of testing Linux kernel integrity. Attendees should have a firm grasp of building and deploying the kernel as well as kernel/userspace kernel APIs.

Several vendors are getting ready to start enabling the upstream kernel for their upcoming 64-bit ARM platforms, and it opens up a few questions on things that are not quite sorted out yet, especially on the embedded and mobile platforms. This is an open discussion on the issues these maintainers are anticipating, and what we should do about it.

Communication between components is necessary for effective power management in mobile devices. The System Power Management Interface, also known as SPMI, is a standardized bus interface intended to provide power-management related connectivity between components. Josh Cartwright will provide a high-level architectural overview of SPMI and discuss how to leverage the Linux Kernel software interfaces (expected to land in 3.15) to communicate with devices on the bus.

May 1

While Android has been created for mobile devices — phones first and now tablets — it can, nonetheless, be used as the basis of any touch-screen system, whether it be mobile or not. Essentially, Android is a custom-built embedded Linux distribution with a very elaborate and rich set of user-space abstractions, APIs, services and virtual machine. This one-day workshop is aimed at embedded developers wanting to build embedded systems using Android. It will cover Android from the ground up, enabling developers to get a firm hold on the components that make up Android and how they need to be adapted to an embedded system. Specifically, we will start by introducing Android’s overall architecture and then proceed to peel Android’s layer one-by-one.

This half-day workshop is aimed at embedded developers that want to use Android in their embedded designs.

The MIPS processor cores are widely used in embedded platforms, including TVs and set-top-boxes. In most of those platforms dedicated graphics hardware exists but it may be specialized for its use in audio and video signal processing: rendering of web content has to be done in software. We implemented optimizations for the software-based QPainter renderer to improve the performance of Qt including QtWebKit in MIPS processors. The target platform was the modern 74kf cores, which include new SIMD instructions suitable for graphics operations (alpha blending, color space conversion and JPEG image decoding), and also for non-graphics operations: string functions were also improved. Our figures estimate that web pages are rendered up to 30% faster using hand-coded assembler fast-paths for those operations.

Software Freedom Conservancy announced last year a renewed effort for cross-project collaborative GPL compliance efforts, including copyright holders from BusyBox, Linux, and Samba. Conservancy uses an internal system of communication and collaboration to take input from stakeholders to discuss and engage in compliance activity to ensure compliance with the GPL throughout the technology industry and particularly in the embedded device market. Compliance with the GPL is the responsibility of copyright holders of the software, and Conservancy helps those copyright holders pursue the work, so those developers can focus on coding. In this talk, the President of Conservancy will discuss how Conservancy handles compliance matters, what matters it focuses on, and how the copyright holders that work with Conservancy engage in a collaborative effort to ensure compliance with the GPL.

Ubuntu Touch is the new Ubuntu-based OS for phones and tablets. Announced at the beginning of 2013, it gives a new UI and design proposal, but also a new way of developing and supporting many different devices, using either the Android HAL or the traditional Linux stack to build the platform. This talk will go over the Ubuntu Touch internals, presenting the technical decisions and also the work that was done to bootstrap this new platform (camera, radio, video decode, GLES and etc) and the future challenges to support a single stack across mobile and the traditional desktop.

These are just a few sessions out of the 90+ sessions available at the Embedded Linux Conference and Android Builder Summit. You can check the full schedule to find out which sessions are most interesting to you.