Buildroot 2011.05 released

Buildroot logoAs expected with the time-based releases, Buildroot 2011.05 has been released just a few days ago. We have already published many blog posts about Buildroot, but to summarize for our new readers, Buildroot is a tool that automates and simplifies the process of building an embedded Linux system. You define your system configuration and components in a menuconfig/xconfig interface similar to the one the kernel uses, then hit make, wait a bit, and you have your embedded Linux system ready to run on your device. At Bootlin, we appreciate the simplicity of Buildroot, and many of our customers also appreciate it for the same reason. Of course, we also contribute significantly to Buildroot and we have started a commercial support offering on Buildroot.

The 2011.05 release

The 2011.05 release cycle was a little bit more quiet than usual, so the number of new features or major changes is not as large as it was for past releases. Amongst the interesting things:

  • Until now, Buildroot was only capable of building systems using a static /dev, in which device files are statically listed in a device table and created at system build time. The 2011.05 has added a configuration option to select how the /dev directory on the target should be handled. It can be handled in four different ways:
    • with a static /dev, just as before
    • with just devtmpfs. It allows to have a dynamic /dev without any other userspace components, which is really nice.
    • with devtmpfs and mdev. In addition to having a dynamic /dev, it allows allows to execute arbitrary scripts when device are added/removed and to customize the owner, group and permissions for the device files.
    • with devtmpfs and udev. This is the full solution, as used in desktop distributions.
  • There has been an internal infrastructure change on support for external toolchains, and this change will make those toolchains slightly easier to use. In Buildroot terminology, an external toolchain is a toolchain that hasn’t been built by Buildroot, but which Buildroot uses to compile code for the target platform. It allows to re-use existing toolchains such as the CodeSourcery toolchains, or toolchains generated externally with Crosstool-NG. To support those toolchains, we rely on the sysroot mechanism that the GCC compiler provides since the 4.x era. This mechanism allows Buildroot to make a complete copy of the C library binaries, C library headers and kernel headers into a staging directory, and then tell the toolchain utility (compiler, linker, etc.) to use this new directory as their sysroot. This means that a --sysroot option needs to be passed at every invocation of those tools. As this was not very convenient, especially to use the Buildroot toolchain as a SDK to build applications not packaged in Buildroot, the 2011.05 has added wrappers for the toolchain tools, which makes this completely transparent. So one can now just use $(O)/host/usr/bin/arm-linux-gcc as usual, and it will do the right thing.
  • A few new packages have been added: bonnie++ (a block device benchmark), can-utils (userspace utilities for the famous industrial CAN bus), gdisk (a sort of fdisk program, but for the new GPT partition table format), htop (a nice top alternative to watch the activity of processes), input-event-daemon (a simple daemon that executes arbitrary command in reaction to input events), libexif (a library to read the contents of EXIF tags in pictures), libraw (a library to decode pictures in various RAW formats), libv4l (the library to interact with Video4Linux devices), ngircd (an IRC server).
  • Many packages have been upgraded: the Gtk stack, the U-Boot and Barebox bootloaders and the internal toolchain components (gcc and uClibc), with experimental gcc 4.6 support.

Buildroot in the Linux Journal

Linux Journal 206 CoverThe Linux Journal has published an issue, numbered 206, dedicated to Embedded Linux. This issue has several articles around Embedded Linux related topics:

  • Hexapod, a Linux powered robot
  • Debugging Embedded Linux platforms with Python and GDB
  • Breaking free the Gumstix DSP
  • Speech I/O for Embedded Applications
  • CyanogenMod 7.0, Gingerbread in the house
  • Tiny Core Linux
  • Roll your own Embedded Linux System with Buildroot, written by Alexander Sirotkin, which gives a good introduction to what Buildroot is and how to use it.

It is great to see articles about Buildroot in a such widely read magazine, and it should definitely help increasing the awareness about this build system.

Linux Journal 206 Table of ContentsLinux Journal 206 Buildroot

Buildroot used by Fabrice Bellard in jslinux

In May, the famous developer Fabrice Bellard (known as the initial author of ffmpeg, qemu, but also for his records for the computation of pi) has released an impressive new project: an x86 emulator completely written in Javascript, which runs in a Web browser. This emulator is sufficiently capable and powerful to boot a Linux system. And the good news is that the Linux system that Fabrice Bellard is using for the demonstration was generated with Buildroot, as Bellard says in his technical notes about the project.

Embedded Linux training: switch to the IGEPv2 board

Since early 2009, our training sessions have been using the USB-A9263 board from Calao Systems as the hardware platform for the practical labs. However, this AT91-based platform was getting older, and we therefore started the process of switching our training sessions to a new hardware platform, the IGEPv2 board from ISEE.

IGEPv2 board
IGEPv2 board

The IGEPv2 platform is very similar to the popular BeagleBoard and BeagleBoard-XM platforms, and has the following technical characteristics :

  • TI DM3730, which is the latest OMAP3 processor from Texas Instruments, clocked at 1 Ghz, and including a DSP for signal processing, an IVA block for audio/video decoding and the PowerVR SGX for 3D/OpenGL. This processor offers far more possibilities than the AT91 one, especially for multimedia applications.
  • 512 MB of RAM and 512 MB of OneNAND flash.
  • Integrated Ethernet connector, Wifi and Bluetooth connectivity.
  • One USB OTG port and one USB host port.
  • A microSD connector.
  • A DVI-D connector (HDMI), stereo input and ouput
  • RS232 connector
  • Multiple expansion ports to access LCD, camera, I2C, SPI, JTAG, etc. signals

Compared to the BeagleBoard-XM, this board has the following advantages:

  • it has a OneNAND Flash device, which allows us to demonstrate and practice the usage of MTD and Linux flash-specific filesystems such as JFFS2 and UBIFS in our training sessions. Even though block-based storage such as SD and eMMC is more and more popular in consumer-electronic devices, usage of raw NAND flash is still very common in industrial applications, and we therefore wanted to keep presenting those devices and their usage in embedded Linux
  • ISEE, the company manufacturing the IGEPv2, is located in Spain, which makes it easier for us to regularly order boards from them, since we are also located in Europe
  • the board provides Bluetooth and Wifi connectivity, which is nice

We have already given two sessions of our Embedded Linux system development training with the IGEPv2, and all our future sessions of this training will use this hardware platform, so the participants will benefit from a more modern platform, with far more capabilities than our previous AT91-based training hardware. This is also the board we are now giving to the participants to our public training sessions, so those participants come back home with a very nice and powerful platform which allows countless experiments around embedded Linux. Note that we also intend to port our Embedded Linux kernel and driver development training session to the IGEPv2 platform in the near future.

Videos of Android Builders Summit 2011

Android LogoJust after the Embedded Linux Conference 2011, the first edition of the Android Builders Conference took place in San Francisco, on April 13th and April 14th 2011. This is the first, and to date, probably the first, conference entirely dedicated to Android low-level components and on how Android systems are built and modified. The number of resources, documentation and conferences on Android application development is already huge, but the amount of system-level information about Android is still relatively limited. This conference comes to fill in this gap, allowing engineers working on Android-based systems to share their experience. With a single track of talks for the first half-day, and two tracks for the second full day, it was a very nice first edition, and the co-location with the Embedded Linux Conference was well-appreciated. Interestingly enough, no talks were given by Google engineers, despite the fact that they are the primary designers and developers of the Android system.

Just as we did for the Embedded Linux Conference a few days ago, we are also publishing below the videos of all talks given during this Android Builders Summit. Of all the presentations, the ones we found the most interesting are certainly:

  • Karim Yaghmour’s talk about « Android Internals » and «Porting Android to new hardware»
  • Aleksander “Sasa” Gargenta’s talk «A walk through the Android stack». Unfortunately, the speaker had way too much contents for the one hour slot, but the content presented was very, very interesting.
  • Mark Brown’s talk «Linux audio for smartphones»

Mike WosterVideo capture
Linux Foundation
Android Builders Summit Introduction
Video (2 minutes):
full HD (31M), 450×800 (11M)

Christy WyattVideo capture
Motorola
Motorola: innovation rising
Video (36 minutes):
full HD (454M), 450×800 (142M)

Mark CharleboisVideo capture
Qualcomm Innovation Center
From the alliance to the evolution: the history and future of Android innovation
Video (26 minutes):
full HD (332M), 450×800 (103M)

Greg BurnsVideo capture
QuIC
AllJoyn and the new era of peer-to-peer-technology
Video (55 minutes):
full HD (680M), 450×800 (209M)

Mark BrownVideo capture
Wolfson Micro
Linux audio for smartphones
Slides
Video (46 minutes):
full HD (560M), 450×800 (173M)

Karim YaghmourVideo capture
Opersys
Android Internals
Slides
Video (58 minutes):
full HD (793M), 450×800 (245M)

Mark GrossVideo capture
Intel
Device provisioning anad over the air updates for Android-2011
Slides
Video (48 minutes):
full HD (847M), 450×800 (214M)

Peter VescusoVideo capture
Black Duck Software
Managing Android and the complexity inside
Video (35 minutes):
full HD (375M), 450×800 (121M)

Hansung ChunVideo capture
ETRI
I/O performance improvement, using ext2 in Android-2011
Slides
Video (44 minutes):
full HD (915M), 450×800 (210M)

Magnus BäckVideo capture
Sony Ericsson
Using the Debian package manager to assemble Android-based phone software systems
Video (45 minutes):
full HD (357M), 450×800 (134M)

Tim BirdVideo capture
Sony Network Entertainment
Trying to improve Android boot time with readahead
Slides
Video (38 minutes):
full HD (833M), 450×800 (194M)

Bruce BeareVideo capture
Intel
Living with Gerrit
Slides
Video (42 minutes):
full HD (404M), 450×800 (137M)

Karim YaghmourVideo capture
Opersys
Porting Android to new hardware
Slides
Video (43 minutes):
full HD (822M), 450×800 (209M)

Marko GargentaVideo capture
Marakana
Beyond the phone
Slides
Video (44 minutes):
full HD (682M), 450×800 (193M)

Neil TrevettVideo capture
NVIDIA
Open API standards as a foundation for Android innovation
Video (42 minutes):
full HD (523M), 450×800 (173M)

Vitaly Wool, presented by Mark GrossVideo capture
Sony Ericsson
WiFi and Android: powersave saga
Video (31 minutes):
full HD (544M), 450×800 (136M)

Aleksander “Sasa” GargentaVideo capture
Marakana
A walk through the Android stack
Video (60 minutes):
full HD (689M), 450×800 (234M)

Armijn HemelVideo capture
gpl-violations.org
Licensing pitfalls in Android and how to avoid them
Video (44 minutes):
full HD (662M), 450×800 (183M)

Tim BirdVideo capture
Sony Network Entertainment
Android System Programming Tips and Tricks
Slides
Video (42 minutes):
full HD (459M), 450×800 (153M)

Creative commonsIn agreement with the speakers, these videos are released under the terms of the Creative Commons Attribution-ShareAlike 3.0 license.

ELC 2011 videos

The Embedded Linux Conference 2011 took place between April, 11th and April, 13th in its now usual place, the Kabuki hotel in San Francisco, California. It was the first edition organized since the merge of the CE Linux Forum into the Linux Foundation. During three days, three parallel tracks of talks and BoFs about technical topics around embedded Linux : kernel support, power management, build systems, file systems, real-time, and more.

As usual, part of the Bootlin team was at this Embedded Linux Conference, in order to keep up with the latest developments from the embedded Linux community. Gregory Clement (left on the picture), Maxime Ripard (right on the picture) and myself (center on the picture) were present, and we recorded all talks of the conference. And just a little bit more than one month later, we are ready to announce that all videos are now available online, in 1080p high-definition, and in a lower 450p resolution, encoded with the new VP8 codec.

Bootlin at ELC 2011
Bootlin at ELC 2011. From left to right: Gregory Clement, Thomas Petazzoni and Maxime Ripard.

Amongst all the conferences below, each of us have selected the three ones we thought were the most interesting ones (note that the top three for each us is necessarily composed of distinct talks, as none of us have seen the same talks since we had to record talks from three different sessions in parallel) :

  • For Gregory Clement, the top three is: Yoshiya Hirase talk about Faster Resume For More Energy Savings on MeeGo, Arnd Bergmann talk about Optimizations For Cheap Flash Media (which follows Arnd article on the same topic in LWN) and a set of three related talks about the video infrastructure in the Linux kernel, that Gregory recommends to watch in this order: Media Controller Framework (MCF) For OMAP2+ Display Subsystem (Sumit Semwal), Video4linux: Progress, New videobuf2 Framework and the Future (Hans Verkuil) and Bringing up HDMI Display for OMAP4 Panda Board – Design, Challenges and Lessons Learned (Mythri pk).
  • For Maxime Ripard, the top three is: John Stultz talk about Android for servers, Mike Anderson talks about ARM NEON and GPU programming, Wolfram Sang talk about Helping the process
  • For myself, the top three is: Jesse Barker talks about the ARM Graphics ecosystem which gives a nice overview of the state of this topic, Hai Shalom talk about PCD (which is an original and interesting replacement for init), Dave Stewart talk about The Yocto Project and its Application Development Toolkit (because it gives details on how Yocto is supposed to be used for application development, a topic I’m interested in as a Buildroot developer)

It is also worth noting that this Embedded Linux Conference was co-located with the first edition of the Android Builders Summit, for which we will soon publish videos as well. The next embedded Linux conference will take place in Europe, in Prague from October 26th to 28th, co-located with the first edition of LinuxCon Europe and just after the Kernel Summit. Prague will really be full of Linux developers during this end of October, it’s time to book this week on your agenda as well !

Creative commonsIn agreement with the speakers, these videos are released under the terms of the Creative Commons Attribution-ShareAlike 3.0 license.

Finally, the list of all videos of Embedded Linux Conference 2011, along with their corresponding slides :

Tim BirdVideo capture
Sony Network Entertainment
Welcome Keynote
Video (10 minutes):
full HD (131M), 450×800 (43M)

Dirk Hohndel, Richard PurdieVideo capture
Intel, Linux Foundation
The Yocto Project
Video (35 minutes):
full HD (458M), 450×800 (140M)

Keshava MunegowdaVideo capture
Texas Instruments
Power Fail Safe FAT File Systems
Slides
Video (48 minutes):
full HD (693M), 450×800 (203M)

Frank RowandVideo capture
Sony
Identifying embedded real-time issues: I-cache and locks
Slides
Video (46 minutes):
full HD (471M), 450×800 (147M)

Bruno Cardoso LopesVideo capture
University of Campinas
LLVM, Clang and Embedded Linux Systems
Slides
Video (50 minutes):
full HD (593M), 450×800 (164M)

Steven RostedtVideo capture
RedHat
Kernel Shark Tutorial
Video (49 minutes):
full HD (743M), 450×800 (215M)

Kang DongwookVideo capture
ETRI
Snapshoot Booting on Embedded Linux
Slides
Video (33 minutes):
full HD (284M), 450×800 (95M)

Khem RajVideo capture
State of OpenEmbedded Internal Toolchain and SDKs
Slides
Video (41 minutes):
full HD (289M), 450×800 (119M)

David RuslingVideo capture
Linaro
Linaro: a year of change
Slides
Video (50 minutes):
full HD (529M), 450×800 (173M)

Hai ShalomVideo capture
Atheros
Control, recover and debug your embedded product with PCD
Slides
Video (50 minutes):
full HD (470M), 450×800 (160M)

Gene SallyVideo capture
Zigbee Networking and Linux
Video (53 minutes):
full HD (262M), 450×800 (139M)

Xi WangVideo capture
Broadcom
Solving real-time scheduling problems with RT_PREEMPT and deadline-based scheduler
Slides
Video (43 minutes):
full HD (422M), 450×800 (141M)

Mike AndersonVideo capture
The PTR Group
ARM Neon instruction set and why you should care
Slides
Video (53 minutes):
full HD (527M), 450×800 (169M)

Darren HartVideo capture
Intel
Yocto Project: Practical Kernel Development Tutorial
Video (52 minutes):
full HD (551M), 450×800 (196M)

Arnd BergmannVideo capture
IBM
Optimizations for cheap flash media
Slides
Video (49 minutes):
full HD (482M), 450×800 (160M)

Wolfram SangVideo capture
Pengutronix
Developer’s diary: helping the process
Slides
Video (39 minutes):
full HD (315M), 450×800 (112M)

Rajesh LalVideo capture
Nokia
Fun with QML and Javascript
Slides
Video (39 minutes):
full HD (250M), 450×800 (108M)

Thomas GleixnerVideo capture
Linutronix
RT-Preempt: what’s the state and why there is no roadmap
Slides
Video (46 minutes):
full HD (447M), 450×800 (149M)

Jason KridnerVideo capture
Texas Instruments
High-level web interface to low-level I/O on the BeagleBoard
Slides
Video (36 minutes):
full HD (370M), 450×800 (115M)

Arnd BergmannVideo capture
IBM
Becoming part of the Linux kernel community
Slides
Video (34 minutes):
full HD (376M), 450×800 (126M)

Paul MundtVideo capture
Renesas
Working with hardIRQs: life beyond static IRQ assignments
Slides
Video (36 minutes):
full HD (330M), 450×800 (113M)

Amit KucheriaVideo capture
Linaro
Powerdebugging inside Linaro
Slides
Video (46 minutes):
full HD (309M), 450×800 (136M)

Mike AndersonVideo capture
The PTR Group
High-performance computing using GPUs
Slides
Video (57 minutes):
full HD (615M), 450×800 (185M)

Paul LarsonVideo capture
Canonical
Linaro automated validation on ARM
Video (51 minutes):
full HD (581M), 450×800 (184M)

Dave StewartVideo capture
Intel
The Yocto project and its application development toolkit (ADT) – The answer to effective embedded application development
Video (42 minutes):
full HD (362M), 450×800 (139M)

Damian Hobson Garcia, Katusya Matsubara, Takanari Hayama, Hisao MunakataVideo capture
Igel
Integrating a Hardware Video Codec into Android Stagefright using OpenMAX IL
Slides
Video (55 minutes):
full HD (564M), 450×800 (177M)

Koen KooiVideo capture
Texas Instruments
Integrating OpenEmbedded and Yocto
Slides
Video (52 minutes):
full HD (465M), 450×800 (159M)

Mark GrossVideo capture
Intel
How to power tune a device running on a Linux kernel for better suspend battery life
Slides
Video (49 minutes):
full HD (273M), 450×800 (129M)

Remi LorriauxVideo capture
Adeneo Embedded
Real-time audio on embedded devices
Slides
Video (44 minutes):
full HD (437M), 450×800 (138M)

Magnus DammVideo capture
Runtime PM: upstream I/O device power management
Slides
Video (53 minutes):
full HD (486M), 450×800 (164M)

Jesse BarkerVideo capture
Linaro
Linux graphics meets the ARM ecosystem
Slides
Video (50 minutes):
full HD (329M), 450×800 (147M)

David AndersVideo capture
Texas Instruments
Board bringup: open-source hardware and software tools
Slides
Video (38 minutes):
full HD (376M), 450×800 (118M)

John WilliamsVideo capture
PetaLogix
Dynamic co-simulation of FPGA-based systems on chip
Slides
Video (57 minutes):
full HD (567M), 450×800 (198M)

Summit SemwalVideo capture
Texas Instruments
Media Controller Framework (MCF) for OMAP2+ display subsystem
Slides
Video (49 minutes):
full HD (518M), 450×800 (155M)

John StultzVideo capture
IBM
Android for servers?
Slides
Video (37 minutes):
full HD (425M), 450×800 (137M)

Anand GadiyarVideo capture
Texas Instruments
Tools and techniques for debugging embedded systems
Slides
Video (30 minutes):
full HD (139M), 450×800 (81M)

Hans VerkuilVideo capture
Cisco
Video4linux: progress, new videobuf2 framework and the future
Slides
Video (56 minutes):
full HD (534M), 450×800 (171M)

Yoshiya HiraseVideo capture
Nokia
Faster resume for more energy saving on MeeGo
Slides
Video (58 minutes):
full HD (727M), 450×800 (218M)

Jake EdgeVideo capture
Linux Weekly News
What embedded Linux developers should know about IPv6
Slides
Video (46 minutes):
full HD (266M), 450×800 (122M)

Grégoire GentilVideo capture
Always Innovating
Hot multi-OS switch: how to run Ubuntu, ChromiumOS, Android at the same time on an embedded device
Video (61 minutes):
full HD (515M), 450×800 (174M)

Xi WangVideo capture
Broadcom
Controlling memory footpring at all layers: Linux kernel, applications, libraries and toolchain
Slides
Video (38 minutes):
full HD (511M), 450×800 (152M)

Tom Zanussi, Saul WoldVideo capture
Building custom embedded images with Yocto
Slides
Video (49 minutes):
full HD (500M), 450×800 (173M)

Philip BalisterVideo capture
Open SDR
A high performance interface between the OMAP3 and a FPGA
Slides
Video (51 minutes):
full HD (347M), 450×800 (149M)

Jean PihetVideo capture
NewOldBits.com
The evolution of tracing and profiling for power management and accelerators
Slides
Video (40 minutes):
full HD (428M), 450×800 (133M)

Elizabeth FlanaganVideo capture
Intel
Delivering predictability: the Yocto project autobuilder, automated sanity testing, license collection and build statistics tracking
Slides
Video (48 minutes):
full HD (241M), 450×800 (133M)

Mythri pkVideo capture
Texas Instruments
Bringing up HDMI display for OMAP4 Panda board: design, challenges and lessons learned
Slides
Video (40 minutes):
full HD (363M), 450×800 (122M)

Khem RajVideo capture
Debug/develop uClibc with QEMU
Slides
Video (35 minutes):
full HD (226M), 450×800 (98M)

Gunter Ravi SankarVideo capture
Samsung
What are and how to find a program’s unused DSOs
Slides
Video (49 minutes):
full HD (453M), 450×800 (143M)

Videos from the FOSDEM 2011 Embedded track

As every year, FOSDEM, the largest community-driven open source conference in Europe, took place early February in Brussels. And again, Bootlin was around with its HD camcorder, to record the conferences of interest for embedded developers. They are now available for download!

FOSDEM banner

Creative commonsIn agreement with the speakers, these videos are released under the terms of the Creative Commons Attribution-ShareAlike 3.0 license.

Here are the videos that we have (unfortunately, the FOSDEM team doesn’t collect and publish the slides from the speakers) :

Videos from Libre Software Meeting 2010 in France

RMLL 2010The Libre Software Meeting (Rencontres Mondiales du Logiciel Libre in French) is a community-driven event that takes place every year in France, and covers a wide range of topics in the free and open source software domain. Each year, an Embedded systems and free hardware topic is proposed, which in 2010 was lead by Florian Fainelli, Pierre Ficheux and myself.

While most of the talks took place in French, a few talks were given in English and as we recoded videos from those talks, we thought it’d be a good idea to highlight them to the english readers of our blog. We found it especially important since amongst those videos, there are two particularly interesting presentations from Sarah Sharp, a kernel developer from Intel, about USB3 and its support in Linux. As usual, all our videos are published under the Creative Commons Attribution – ShareAlike Licence version 3.0 license.

Sarah Sharp presenting USB3 at LSM2010

The talks given in English were :

Our french readers will find all other videos in this blog post.

Bootlin at the Embedded Linux Conference and Android Builders Summit

In just two weeks from now, the Embedded Linux Conference will start in San Francisco, followed by the Android Builders Summit, at the usual Hotel Kabuki location, where the conference is taking place for the third consecutive year.

Embedded Linux Conference 2011

The program of the Embedded Linux Conference has been announced recently, and as usual, features a wide set of technical embedded Linux talks:

  • Filesystem/storage: Power Fail Safe FAT File System, Optimizations For Cheap Flash Media, from Arnd Bergmann, who has also recently published a very interesting article on the same topic.
  • Power management: Faster Resume For More Energy Savings on MeeGo, Powerdebug(ging): A Linaro Perspective, How to Power Tune a Device Running on a Linux Kernel for Better Suspend Battery Life, The Evolution of Tracing and Profiling for Power Management and Accelerators, Runtime PM: Upstream I/O Device Power Management
  • Real-time: Solving Real-Time Scheduling Problems with RT_PREEMPT and Deadline-Based Scheduler, Real-time Audio on Embedded Devices, Identifying Embedded Real-Time Latency Issues: I-Cache and Locks
  • Build system, with a huge number of Yocto-related talks, but no other build systems represented: State of OpenEmbedded Internal Toolchain and SDKs, Yocto Project: Practical Kernel Development Tutorial, Building Custom Embedded Images with Yocto, The Yocto Project and its Application Development Toolkit (ADT) – The Answer to Effective Embedded Application Development, Yocto Project Community BoFs, Delivering Predictability: The Yocto Project Autobuilder, Automated Sanity Testing, License Collection, and Build Statistics Tracking
  • Multimedia: Fun with QML and JavaScript, Integrating a Hardware Video Codec into Android Stagefright using OpenMAX IL, Media Controller Framework (MCF) For OMAP2+ Display Subsystem, Video4linux: Progress, New videobuf2 Framework and the Media Controller, Bringing up HDMI Display for OMAP4 Panda Board – Design, Challenges and Lessons Learned, Linux Graphics Meets the ARM Ecosystem
  • FPGA: Dynamic Co-simulation of FPGA-based Linux Systems-on-Chip, A High Performance Interface Between the OMAP3 and an FPGA
  • Networking: What Embedded Linux Developers Should Know About IPv6, Zigbee Networking & Linux
  • Debugging: Kernel Shark Tutorial and Tools and Techniques for Debugging Embedded Systems
  • Optimization: Snapshot Booting on Embedded Linux, ARM Neon Instruction Set and Why You Should Care, Controlling Memory Footprint at All Layers: Linux Kernel, Applications, Libraries and Toolchain, High-Performance Computing using GPUs, What Are and How to Find a Program’s Unused DSOs
  • Low-level: Board Bringup: Open Source Hardware and Software Tools, Working with HardIRQs: Life Beyond Static IRQ Assignments, Genie in the Bottle: Linux Drivers for the AM1808 PRU
  • And many other talks on various topics: LLVM, Clang and Embedded Linux Systems, Linaro: A Year of Change, Control, Recover and Debug Your Embedded Product with PCD, Developer’s Diary: Helping the Process, High-Level Web Interface to Low-Level Linux I/O on the Beagleboard, Linaro Automated Validation on ARM, Crowd Sourcing and Protecting the Open Source Community, Android for Servers?, Hot Multi-OS Switch: How to run Ubuntu, ChromiumOS, Android at the Same Time on an Embedded Device.

This edition will be the first one organized since the merge between the CE Linux Forum into the Linux Foundation, and will therefore be a great opportunity to see if this merge had any impact on the technical quality of the conference.

My colleagues Maxime Ripard (who joined Bootlin just a week ago) and Gregory Clement as well as myself will be present at the Embedded Linux Conference and the Android Builders Summit, and we will as usual record all talks of both of these conferences and will put them online, as we have done recently for the talks that took place during the Embedded Linux Conference Europe 2010 in Cambridge. Do not hesitate to meet us in San Francisco!

Barebox 2011.03 released, with contributions from Bootlin

BareboxBarebox is a bootloader started about two years ago for embedded systems of various architectures. It plays the same role as U-Boot, which is the best known project in this area, but has several advantages over U-Boot. First, it has a much better configuration and compilation system, based on the one used by the Linux kernel: instead of the rusty include/configs/myboard.h configuration headers in U-Boot, Barebox provides a nice menuconfig/xconfig/defconfig based configuration system, that everyone is familiar with. Second, Barebox has a source code organization very similar to the one of the Linux kernel and has replicated the device/driver model of the kernel. This allows to have a nice separation between device drivers and their instantiation, and a source code that looks familiar to anyone that already does kernel development.

Of course, as Barebox is newer than U-Boot, the number of architectures and platforms is more limited, but it is growing rapidly. It already supports ARM, PPC, Blackfin, x86 and a testing sandbox architecture. On ARM, the supported platforms are AT91, EP93xx, iMX, Nomadik, OMAP, S3C24xx and Versatile. On PPC, a single mpc5xxx platform is supported. Patches to add support for the NIOS architecture have also been posted recently (NIOS is a soft-core architecture from Altera).

As a young but fast-growing project, Barebox has chosen a quick development cycle: new releases are made each month, and Barebox 2011.03 has been released a few days ago. It has many ARM and generic improvements, but is also the first release with contributions from Bootlin :

Gregory CLEMENT (3):
      BMP: Add support for 32bpp video frame buffer
      ARM STM/i.MX: Add possibility to choose the bit per pixel for STM video driver
      fb i.MX23/28: Add the reset control of LCD

My colleague Gregory Clement has contributed several improvements to framebuffer support on the i.MX platform. Those improvements were made in the context of a customer project, for which Barebox was used as a way of showing immediately after the device start-up a nice logo on the screen, while the system continues to boot in the background. Initially, the user had to wait 20+ seconds to see a logo on the screen showing that the system was booting. With our Barebox based solution, a logo is now visible on the screen less than 2 seconds after the power on button is pushed.

Snowball, a new community Linux development platform

Snowball platformThe success of the BeagleBoard platform, a low-cost development platform, that has greatly contributed to the success of Texas Instruments OMAP3 processor in the embedded Linux industry, seems to have inspired another processor manufacturer: ST Ericsson. They have recently unveiled Snowball, a low-cost development platform for their AP9500 processor, which features a dual Cortex A-9 ARM core and a Mali 400 GPU.

The development board is designed and produced by our partner Calao Systems, and offers the following features:

  • The AP9500 processor, dual Cortex-A9 and Mali 400 GPU
  • 4 to 8 GB of e-MMC storage
  • 1 GB of LP-DDR2 RAM
  • Micro-SD slot
  • Ethernet connector, Wifi and Bluetooth
  • HDMI output, composite video output
  • Audio in/out
  • USB On The Go
  • Battery charger
  • On-board battery to keep time
  • Serial port connector, JTAG connector, MiPi 34 debug connector
  • Builtin GPS
  • 3-axis accelerometer, magnetometer and gyrometer, one pressure sensor
  • Expansion connectors to access SPI, I2C, LCD, MiPi devices, GPIO, UART, etc.
  • Last but not least, the board can be powered via USB (through a regular cable or through a Y one if power hungry devices like Wifi are used.)

The technical documentation page has a few more details, but at this time, they isn’t a lot of public information available about the AP9500 processor. I hope that ST Ericsson will fully understand how open source works and will soon release datasheets for the AP9500 in an open way. Interestingly, the AP9500 does not use the traditional PowerVR SGX 3D graphics core designed by Imagination Technologies and found in many other ARM processors, but instead uses the Mali graphics core, which is designed directly by ARM. It seems ARM has already open-sourced the kernel side bits of their graphic drivers, but it looks like a proprietary binary blob in userspace is still present.

The board will be available in two variants:

  • A Product Development Kit variant for 241 Euros.
  • A Software Development Kit variant for 165 Euros. My understanding is that the only difference between the two are the expansion connectors, present on the PDK variant but not on the SDK variant.

The board should be widely available at the end of Q2 2011, i.e around June, though at Bootlin, we will receive our first samples by the end of March thanks to our partnership with Calao Systems. The Snowball platform is supported by the Igloo Community, which hosts mailing-lists, an IRC channel, documentation and will also provide Meego and Android builds for the Snowball in the future.

Stay tuned on this blog. As soon as we get our own boards, we will write about our experiments with them.

Buildroot 2011.02 released, with many interesting updates and commercial support!

Buildroot logoAs usual, the latest Buildroot version has been released just in time on the last day of the month: Buildroot 2011.02 is available for download!

This release of the increasingly popular embedded Linux build system provides new interesting features and updates:

  • Support of external toolchains has been improved with support for toolchain profiles. Those are predefined configurations for well-known toolchains such as the CodeSourcery ones for ARM, PowerPC, MIPS and SuperH. Buildroot is now capable of automatically downloading and installing those external toolchains, which is much easier than downloading them manually. It’s now easy to provide users with Buildroot configurations that use well known toolchains, without requiring them to pre-install anything specific.
  • Support for board configurations has been completely rewritten and largely simplified. All board-specific Makefile and configuration options have been removed, and instead, each board is represented by a single, simple (less than 20 lines) defconfig file, in the configs/ directory. In addition to the existing configuration, we have added support for the Mini2440 platform but also for many Qemu emulated platforms: Qemu ARM Versatile, Qemu MIPSel Malta, Qemu PowerPC G3 Beige, Qemu SH4 r2d and Qemu x86. Those configurations allow to easily produce a known-to-work system for the Qemu emulator, making Buildroot even easier to start working on your embedded Linux system. See the documentation for more details on how to add your own board support.
  • Support for the Blackfin architecture has been added, thanks to Mike Frysinger. This support came along with a lot of fixes to make Buildroot work better for non-MMU architectures, since Blackfin is the first actively supported non-MMU architecture in Buildroot. There will certainly be further improvements to support non-MMU architectures, and hopefully additional non-MMU platforms will be added. For those platforms, Buildroot is generally a very good embedded Linux build system, as those architectures are typically used for small to medium sized systems, with a relatively limited number of components.
  • The Crosstool-NG back-end has been improved and extended to support more Buildroot options, and has been upgraded to a newer Crosstool-NG version. This back-end is the third mode for Buildroot toolchain: it allows Buildroot to use Crosstool-NG as the toolchain generator.
  • Ccache support has been reworked and it now works properly. Since Buildroot often requires complete rebuilds from scratch, having the ccache compiler cache is very nice. On my laptop, compiling from scratch a sample Buildroot system was taking 5 minutes and 29 seconds without ccache, and now only takes 3 minutes and 40 seconds with ccache enabled and the cache already filled by a previous build.
  • A new CMake infrastructure has been added for packages, next to the existing generic and autotools infrastructure. For the moment, only two packages are using the infrastructure (cdrkit and libcuefile), but CMake is an increasingly popular build system and we will definitely see more packages using it in the future. Moreover, Buildroot generates a CMake toolchain file that describes the toolchain used by Buildroot, and which makes it very easy to cross-compile external libraries/applications for the Buildroot system using cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/buildroot/output/toolchainfile.cmake.
  • A very nice cleanup job of the internal toolchain build process has been started by Gustavo Zacarias. The build process of binutils, gmp, mpfr and mpc has been migrated to proper packages, and this will also be done for gcc and gdb in the future.
  • As preliminary steps towards the generation of a standalone SDK from Buildroot, two important changes have been made. First, the staging directory is now inside $(O)/host/usr/PLATFORM-TUPLE/sysroot/, but a symbolic link from $(O)/staging has been kept for compatibility. This change will allow the $(O)/host directory to be the standalone SDK in the future. The second change is on pkg-config: its configuration has been adjusted so that it behaves properly to compile target packages without needing any environment variables or options. It makes the Buildroot pkg-config much easier to use to compile external applications.
  • The Python package has been upgraded to the latest Python version, 2.7.1. This was needed since a long time, since the version of Python we had in Buildroot was only 2.4. Moreover, the package has been completely rewritten, with more options, and has been tested on several platforms. Two external Python modules, python-mad and python-serial have also been added as packages, to show how such modules can be integrated into Buildroot.
  • A set of packages to add support in GStreamer for the TI DSP codecs has been added: gst-dsp, gst-omapfb, tidsp-binaries, dsp-tools, thanks to Felipe Contreras.
  • We have a bunch of new packages as well: mpd, the Music Player Daemon with many audio codecs and libraries, the dhrystone and whetstone benchmarks and other tools such as xmlstarlet, fbgrab, irda-utils, lsuio, etc.
  • Many other packages have been upgraded or fixed, and the results of our random configuration builds are much, much better than they were in the past.

As a Bootlin engineer, I have again contributed significantly to this release: Peter Korsgaard, the Buildroot maintainer, has done 171 commits, Gustavo Zacarias has done 119 commits and I have done 103 commits. The next committer is Mike Frysinger (for the great Blackfin support) with 22 commits.

It is with this great Buildroot knowledge and experience that Bootlin has launched a few weeks ago an official offering of Buildroot commercial support. If you are using Buildroot for your embedded product, or want the buyers of your hardware platform to have a simple but efficient embedded Linux build system and you need help, development or consulting, do not hesitate to contact us.