Revision as of 14:56, 6 February 2014 by ThomasPetazzoni (Talk | contribs) (Created page with "= Ideas for the GSoC 2014 on Buildroot = 2014 is the second year of participation of Buildroot to the Google Summer of Code program. This year, we are proposing the following...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Ideas for the GSoC 2014 on Buildroot

2014 is the second year of participation of Buildroot to the Google Summer of Code program. This year, we are proposing the following ideas.

Improve support of multimedia features

Last year, thanks to the GSoC program, Spenser Gilliland improved the support in Buildroot for the multimedia features of a number of ARM processors. This year, we are proposing a topic that consists in continuing this effort by:

  • Extending it to more ARM platforms, and increase the number of supported features
  • Extending it to other architectures, especially x86 and x86-64

More and more embedded systems rely on processors and hardware platforms that provide advanced multimedia features, like OpenGL acceleration, OpenVG acceleration, accelerated video encoding or decoding features (either through dedicated hardware units or DSPs). For example, the OMAP processors from Texas Instruments (used on the BeagleBoard, PandaBoard and BeagleBone), the i.MX processor from Freescale, the BCM2835 from Broadcom (used on Rasberry Pi), or the vast majority of x86 and x86-64 platforms.

Using those multimedia features require specific libraries provided by the different processor vendors, and then such features must be enabled in higher-level components in the stack such as Qt, Gtk, Cairo, Wayland, and so on. They are usually not trivial to integrate, because the libraries provided by the processor vendors often use uncommon build systems, have bizarre dependencies and so on. However, getting the support for those libraries in Buildroot is very important so that Buildroot users can fully benefit from the multimedia features of their hardware.

This project idea is not about doing reverse engineering of multimedia hardware and implementing drivers. It is about creating Buildroot packages for the various multimedia libraries that already exists. We are primarily interested in packaging the official multimedia support provided by the hardware vendor (generally in the form of binary-only libraries), but it may also be interesting to package the open-source drivers available (generally implemented by reverse engineering) if any. Our goal is to make it easy for Buildroot users to enable the multimedia features of their hardware.

The Buildroot project will provide several hardware development boards to the student. The GSoC will then be approximately be split in the following steps, for each platform:

  • Get used to the platform (get a working kernel and minimal userspace)
  • Investigate the libraries provided by the processor vendor to use the multimedia features, and make experiments to get them working
  • Create proper Buildroot packages to allow other users to easily integrate those libraries in their embedded Linux systems.
  • Get some packages accepted upstream in the official Buildroot Git repository, by going through the traditional patch submission/review process.

Skills suggested/required:

  • Basic Embedded Linux knowledge (basics of cross-compilation, building/configuring a kernel, etc.)
  • Basic understanding of multimedia features (OpenGL, OpenVG, video acceleration)
  • A minimal knowledge of Buildroot is a plus.

Interested in participating? Please contact:

  • Thomas Petazzoni,, or kos_tom on #buildroot on Freenode.