The free embedded Linux Buildroot project released a quarterly update, featuring enhanced internal and external toolchains, 67 new packages, and bug fixes.
According to project leader Peter Korsgaard’s Buildroot 2014.02 announcement, this latest release includes new support for external packages; cleaned-up environment variable names for consistency; external toolchain updates (including uClibc, GCC on ARM, Linaro, and Sourcery Codebench); added internal toolchain support for Microblaze; Python and Luarocks package infrastructure support; 67 new packages; new defconfigs including for the Armadeus APF51 and Zedboard; and “updates to a bunch of our existing configs.”
This latest Buildroot release marks the five-year anniversary of regular quarterly Buildroot releases, Korsgaard said.
Buildroot’s website defines the project as “a set of Makefiles and patches” that simplify the process of creating “complete” Linux filesystems for small and embedded systems. These are intended to automate the process of generating “any or all of” a cross-compilation toolchain, a root filesystem, a Linux kernel image, and a bootloader image. The project supports a range of CPU architectures, including x86, ARM, MIPS, and PowerPC.
Buildroot Kconfig tool
(click image to enlarge)
Key Buildroot features touted by the project’s website include:
- Can handle everything in your embedded system development project: cross-compiling toolchain, root filesystem generation, kernel image compilation and bootloader compilation. Buildroot is also sufficiently flexible that it can also be used for only one or several of these steps.
- Very easy to set up, thanks to its menuconfig, gconfig, and xconfig configuration interfaces, familiar to all embedded Linux developers. Building a basic embedded Linux system with Buildroot typically takes 15-30 minutes.
- Supports several hundreds of packages for userspace applications and libraries: X.org stack, Gtk2, Qt, DirectFB, SDL, GStreamer, and a large number of network-related and system-related utilities and libraries are supported.
- Supports multiple filesystem types for the root filesystem image: JFFS2, UBIFS, tarballs, romfs, cramfs, squashfs, and more.
- Can generate an (e)glibc or uClibc cross-compilation toolchain, or re-use your existing glibc, eglibc or uClibc cross-compilation toolchain
- Has a simple structure that makes it easy to understand and extend. It relies only on the well-known Makefile language.
- Maintained by Peter Korsgaard and licensed under the GPLv2 (or later), with stable releases delivered every three months.
Who uses Buildroot?
Google, which was one of the sponsors of the 2014 Buildroot Developers Day in Brussels last month, uses Buildroot inside devices used as part of its Google Fiber project. Other companies known to use Buildroot, according to Korsgaard’s presentation [PDF] at that event, include Barco, Rockwell Collins, Atmel, Cadence, Imagination Technologies, Synopsys, as well as “a bunch of others that don’t tell us about it.”
Preconfigured Buildroot setups are available for popular open hardware boards and systems including BeagleBone, CubieBoard, Nitrogen6x, Raspberry Pi, SheevaPlug, Wandboard, and several QEMU variants, says Korsgaard.
Korsgaard’s presentation also reported that one of Google’s 2013 “Summer of Code” projects enabled the development of enhanced Buildroot support for SoC video performance. This included GPU support for PowerVR on TI , Mali on Allwinner, and Vivante on Freescale i.MX SoCs; and video accelerator support for Cedarx on Allwinner, VPU on Freescale i.MX SoCs, and Gst-omx on the Raspberry Pi.
Another feather in Buildroot’s cap is the popular OpenWrt project, which draws on Buildroot for its build systems.
Future Buildroot plans
Changes targeted for the current quarterly cycle include:
- Update systemd package and support for eudev
- Update Freescale iMX hardware acceleration and TI graphics drivers
- Python version update, and support for building external python packages against python 3.
- Support for Glibc 2.19 in the internal toolchain
- Infrastructure for parallel toplevel builds
- Perl packaging infrastructure
- …and a new website!
Other future Buildroot developments may include adding SELinux support, according to Korsgaard’s February talk.
Here is a YouTube video of Korsgaard’s 2014 Buildroot Developers Day talk:
Buildroot 2014.02 is available at the Buildroot.net downloads area. Full Buildroot details are found in its online user manual. Also, we dug into the depths of our LinuxDevices Archives and found this hands-on Buildroot-related tutorial.
Thanks to Thomas Petrazzoni, CTO of Free Electrons and a Buildroot lead developer, for this tip.