The Embedded Linux Conference (ELC 2013) will take place on February 20 – 22, 2013 at Park 55 Hotel in San Francisco, California.
ELC consists of 3 days of presentations, tutorials and sessions. There will be over 50 sessions during those 3 days. I’ll highlight a few sessions that I find particularly interesting, and that did not get presented at ELCE 2012 (AFAICR).
- 11:00 – Anatomy of the arm-soc git tree by Olof Johansson, Google
We are now two years into the new maintainer model for ARM platforms, and we have settled down into a workflow that maintainers have adjusted well to. Still, when new platforms arrive, or when maintainer ship changes hands, there’s sometimes a bit of ramp-up in getting used to how we organize our git tree and how we prefer to see code submitted to fit that model.
This presentation will give an overview of how we have chosen to organize and maintain the arm-soc tree, and advice to developers and maintainers on best practices to help organize your code in a way that makes life easier for everybody involved.Main audience for this presentation is developers working on upstream kernels for ARM platforms, including platform maintainers.
- 12:00 – The OpenEmbedded Project 2 Years After Adopting the Yocto Project by Koen Kooi, Circuitco Electronics
The Yocto Project was announced slightly more than 2 years ago at ELC-E Cambridge and in the OpenEmbedded e.V. General Assembly the day after the conference I proposed to embrace and adopt the Yocto Project as the core for OpenEmbedded.
In the past 2 years the ecosystem has seen tremendous growth, but not always in sane directions. This presentation will detail how the Yocto Project, the OpenEmbedded Project, the community and the companies involved evolved during that time.
The Angstrom Distribution and the Beagleboard will be used as examples since those were first OE classic targets to be publicly converted to the new world order.
This presentation will also try to clear up to confusion about what people actually mean when they say “this runs yocto” 🙂
- 14:00 – How to Cook the LTSI Kernel with Yocto Recipe by Hisao Munakata, Renesas Electronics
LTSI is the Linux Foundation CE workgroup project that creates and maintains long-term stable kernel for industry use. Recently LTSI-3.4 was released, and it is committed to being kept maintained till the community applies bug-fix and security fix patches on LTS-3.4. The community LTS maintainer Greg Kroah Hartman stated it would last at least till May 2014. This would dramatically reduce your own effort to collect such important patches by you. Furthermore, Linux Foundation Yocto project that provides a recipe for custom Linux BSP creation will add support for LTSI kernel from this release. Given this significant improvement I want to help LTSI user to start work with it. In this session, I will introduce the specification of LTSI-3.4 (enhancement from the community kernel) and how to write a Yocto recipe to collect your own enhancement patches on top of the official LTSI-3.4 kernel.
- 15:00 – Common Clock Framework: How to Use It by Gregory Clement, Free Electrons
The common clock framework, which was included in the 3.4 kernel in the beginning of 2012, is now mandatory to support all new ARM
SoCs. It is also part of the “one zImage to run them all” big plan of the ARM architecture in the Linux kernel.After an introduction on why we needed this framework and on the problems it solves, we will go through the implementation details of this framework. Then, with real examples, we will focus on how to use this framework to add clock support to a new ARM SoC. We will also show how the device tree is used in this process.The last part of the talk will review how device drivers use this framework, using examples taken from various parts of the kernel.
- 16:00 – Controlling Multi-Core Race Conditions on Linux/Android by Mike Anderson, The PTR Group, Inc.
Multi-core processors are now the rule rather than the exception in high-end applications. But, as we try to port our legacy applications to multi-core platforms, what pitfalls lay in wait? This presentation will outline the conditions that lead to multi-core race conditions and outline the techniques for identifying and redesigning code to successfully function in a multi-core world.
- 17:00 – Optimizing GStreamer Video Plugins: A Case Study with Renesas SoC Platform by Katsuya Matsubara, IGEL Co., Ltd.
GStreamer is the leading multimedia framework for various OS platforms, notably Linux systems. A variety of multimedia applications can be constructed with well-implemented plugins, which have versatile functions such as image scaling, cropping, color conversion, and video decoding. However, in the case of embedded systems, they should require further system integration to utilize specialized hardware acceleration engines in SoC for optimal performance.
This presentation shows the case study experience of integrating video plugins with a Renesas SoC platform. It will discuss how to access hardware inside a plugin, assigning buffer memory suited for hardware, and eliminating the ‘memcpy’ call.The audience will learn about essential technique for integrating GStreamer into embedded system. An understanding of the basics of video codecs and color formats is required.
- 10:30 – Kernel Testing Tools and Techniques by Matt Porter, Texas Instruments, Inc.
This BoF 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.
- 11:30 – LLVMLinux: Compiling the Linux Kernel with LLVM by Behan Webster, Converse in Code Inc.
The LLVM project is an extensive compiler technology suite which is becoming commonplace in many industries. Technology built with LLVM is already shipped in millions of Linux devices as a part of Android/Renderscript. Increasingly it is becoming a big part of the development process for embedded projects, all the way up through to high performance computing clusters. This session will provide an update on the status of the LLVM Linux project; a project which is cooperating with both the Linux kernel and LLVM communities to build the Linux kernel with Clang/LLVM.This talk is for experienced developers who are interested in toolchain technology and Linux Kernel programming.
- 13:45 – Toybox: Writing a new Linux Command Line from Scratch by Rob Landley, Multicelluar
In 2003 I decided to replace twenty-two GNU packages in Linux From Scratch (everything except the compiler, kernel, and libc) with BusyBox, and then rebuild the result under itself. This didn’t remotely work, so I started testing and improving BusyBox until it did, putting in so much work on BusyBox its maintainer handed the project over to me.In 2006 I handed BusyBox off to a new maintainer and started over from scratch on a fresh implementation, Toybox. In 2011 Tim Bird (founder of CELF) convinced me to repurpose Toybox as a new BSD-Licensed Posix-2008 compliant command line for Android.
This panel explains what’s in the “standard” Linux command line: drawing commands from POSIX, LSB, Android Toolbox, Linux From Scratch, and more. How to determine what should be in the base system, and how to know what to exclude, and why the “standards” aren’t enough.
- 14:45 – Open Graphics with the Yocto Project by Ross Burton, Intel
Closed-source binary drivers and libraries are endemic in embedded, with binary blobs essential on many modern boards to use the on-board 2D, 3D, or video acceleration. Recently there has been progress in open drivers from manufactures for various platforms including Intel, from 3D acceleration with OpenGL to hardware video decode/encode with VA API. This presentation will explain why open drivers are better than closed, discuss the options available, and describe what is available in the Yocto Project BSPs for you to use.The audience for this talk is expected to be developers and architects interested in the state of open graphics in Linux. Knowledge of this field will be assumed.
- 16:00 – Designing for Optimisation by Mans Rullgard, ARM / Linaro
Performance is an important aspect when developing mobile applications as it affects both the interactive user experience and the device battery life. This presentation will introduce techniques and tools (e.g. profilers) useful for creating high-perfomance code starting at the high-level design stage (code organisation, data layout, etc.) and following through to implementation considerations. Specific instruction sets (e.g. NEON) will not be a primary focus, the goal rather being to enable efficient use of these without delving into details, thus giving the presentation a broader applicability.The target audience is developers of compute-intensive (native) applications or libraries who need to achieve the best possible performance. No special expertise beyond general familiarity with userspace Linux programming is assumed.
- 17:00 – Atom for Embedded Linux Hackers and the DIY Community by Scott Garman, Intel Open Source Technology Center
As costs have come down and the power of embedded platforms has increased, the hacker/maker community is playing an increasingly critical role in the creation of disruptive technologies. The “Next Big Thing” will likely start out as a hacker project using a commodity embedded hardware platform. Intel’s Atom-based offerings continue to grow while targeting new niches in embedded applications. This talk will outline exciting new developments with Atom processors in the embedded space, and how hackers can make best use of these advantages.This talk will be relevant to hackers, hobbyists, and people interested in developing embedded products based on Atom, and is open to all technical experience levels.
- 9:00 – In Kernel Switcher: A Solution to Support ARM’s New big.LITTLE Implementation by Mathieu, Linaro
The ‘In Kernel Switcher’ (IKS) is a solution developed by Linaro and ARM to support ARM’s new big.LITTLE implementation. It is pairing together an A7 (LITTLE) and an A15 (big) processor into a logical entity that is then presented to the kernel as one CPU. From there the solution is seeking to achieve optimal performance and power consumption by switching between the big or the LITTLE core based on system usage.This session will present the IKS solution. After giving an overview of the big.LITTLE processor we will present the solution itself, how frequencies are masqueraded to the cpufreq core, the steps involved in doing a “switch” between cores and some of the optimisation made to the interactive governor.
The session will conclude by presenting the results that we obtained as well as a brief overview of Linaro’s upstreaming plan.
- 10:00 – Lessons Learned in Designing a Self-video Self-hovering Nano Copter by Gregoire Gentil, Always Innovating
Always Innovating has announced a new product, the MeCam, a self video nano copter to point-and-shoot yourself. The MeCam launches from the palm of a hand and hovers instantly. This talk will review the lessons learned during the design of this product:
- hardware - CPU: the choice and the different trade-offs involved with this selection.
- hardware - sensors: the complete list of the 14 sensors, their advantages and drawbacks.
- software - core: the architecture of the Linux based system and the key challenges.
- software - stabilization algorithm: the experience during the tuning of the different algorithms participating to the self hovering.
This talk targets developer with good expertise in both hardware and software. No deep knowledge in a specific field is mandatory but serious understanding of ARM and the Linux kernel is a plus.
- 11:15 – Task Scheduling for Multicore Embedded Devices by Gap-Joo Na, Electronics and Telecommunications Research Institute (ETRI)
Since Completely Fair Scheduler (CFS), which is default scheduler of Linux mainline kernel, has been introduced in kernel 2.6.23, due to its remarkable performance, we’ve paid little attention to improving the scheduler. In this presentation, we will show the CFS limitations, unsatisfactory fairness among cores and long response time to user interactive tasks by some experimental result. And then we will explain you an example scenario to solve this vulnerable point in multicore environment.
- 12:15 – Tips of Malloc and Free by Tetsuyuki Kobayashi, Kyoto Microcomputer
Sometimes you may encounter segmentation fault at malloc or free. It looks a bug of malloc library, but at most case it is not. Some other part destroys heap management area. It is very hard to tell which program actually destroys the heap if the process is very large and uses so many libraries and threads.
In this session I will show you some tips to trouble shoot heap problem.
- tips of malloc library in glibc
- how to hook and replace malloc
- use mspace in dlmalloc to separete memory spaceExpected audience is developers who writes code in C/C++ language and want to solve problems related heap memory.
- 14:15 – How to Build Your Own Digital Signage Solution with Yocto Project by Nitin, Intel Corporation
Summary of the proposal:
This talk describes the presenter’s experience with using the Yocto Project, along with various open source layers, to build a digital signage solution from scratch. The presenter covers how various components are used from the oe-core, meta-web-kiosk, meta-security, meta-virtualization, and meta-nuc layers to get a working solution for digital signage. The talk provides a live demo of the solution, along with access to the source code & build environment.
This talk is targeted to the open source development community. The audience can expect to get more knowledge about how they can build their own digital signage solution with the help of the Yocto Project and various open source layers.
- 15:15 – olibc: Another C Runtime Library for Embedded Linux by Jim Huang, 0xlab
olibc is derived from bionic libc used in Android, which was initially derived from NetBSD libc. olibc is expected to merge the enhancements done by several SoC vendors and partners, such as Qualcomm, TI, Linaro, etc., which is known to be the major difference from glibc, uclibc, and other traditional C library implementations. Typically, the code size of olibc runtime should be about 300 KB. For ARM target, olibc would benefit from ARMv7 specific features like NEON, Thumb-2, VFPv3/VFPv4, and latest compiler optimization techniques. Also, olibc is released under BSD License.
Those are just my choices among over 50 sessions. You can check the full schedule to find out which sessions suit you best.
You can register for ELC 2013 online.
There are two type of fees:
- Professional Fee (If your company is paying for you to attend this event): 550 USD
- Hobbyist Fee: 100 USD (up from $70 last year, who said there’s no inflation?)