Buildroot is a set of Makefiles and patches that simplifies and automates the process of building a complete and bootable Linux environment for an embedded system, while using cross-compilation to allow building for multiple target platforms on a single Linux-based development system. Buildroot can automatically build the required cross-compilation toolchain, create a root file system, compile a Linux kernel image, and generate a boot loader for the targeted embedded system, or it can perform any independent combination of these steps. For example, an already installed cross-compilation toolchain can be used independently, while Buildroot only creates the root file system.[3][4][5]: 2–3, 10–12 [6]
Developer(s) | Peter Korsgaard and others |
---|---|
Initial release | January 12, 2005[1] |
Stable release | 2024.05.2[2]
/ August 14, 2024 |
Repository | |
Written in | Make, shell and C |
Operating system | Linux |
Platform | Embedded Linux |
Size | 6.2 MB |
Type | Build automation |
License | GNU GPL version 2 or later |
Website | buildroot |
Buildroot is primarily intended to be used with small or embedded systems based on various computer architectures and instruction set architectures (ISAs), including x86, ARM, MIPS, PowerPC and RISC-V.[7] Numerous architectures and their variants are supported; Buildroot also comes with default configurations for several off-the-shelf available embedded boards, such as Cubieboard, Raspberry Pi and SheevaPlug.[8][9]: 25 Several third-party projects and products use Buildroot as the basis for their build systems, including the OpenWrt project that creates an embedded operating system, and firmware for the customer-premises equipment (CPE) used by the Google Fiber broadband service.[9]: 15 [10]
Multiple C standard libraries are supported as part of the toolchain, including the GNU C Library, uClibc and musl, as well as the C standard libraries that belong to various preconfigured development environments, such as those provided by Linaro. Buildroot's build configuration system internally uses Kconfig, which provides features such as a menu-driven interface, handling of dependencies, and contextual help; Kconfig is also used by the Linux kernel for its source-level configuration. Buildroot is organized around numerous automatically downloaded packages, which contain the source code of various userspace applications, system utilities, and libraries. Root file system images, which are the final results, may be built using various file systems, including cramfs, JFFS2, romfs, SquashFS and UBIFS.[4][9]: 6–7, 18 [11]
Buildroot is free and open-source software, maintained by Peter Korsgaard and licensed under version 2 or later of the GNU General Public License (GPL).[4] The project started in 2001, with initial intentions to serve as a testbed for uClibc. New releases are made available every three months.[5]: 5 [9]: 4
See also
edit- BitBake – a make-like build tool focusing on cross-compiled packages and embedded Linux distributions
- BusyBox – a software project that provides several stripped-down Unix tools in a single executable file
- Linux distribution – an operating system made as a collection of software based on the Linux kernel and, often, a package management system
- OpenEmbedded – a software framework for creating Linux distributions tailored for embedded devices
- uClibc – a small C standard library intended for Linux-based embedded systems
- Yocto Project – a Linux Foundation workgroup focusing on architecture-independent embedded Linux distributions
- OpenWrt – an open source project for building Linux for embedded network devices based on Buildroot
References
edit- ^ "Old Buildroot downloads (index of /downloads/old)". buildroot.org. Retrieved August 16, 2015.
- ^ "Buildroot 2024.05.2 released". busybox.net. August 14, 2024.
- ^ Alexander Sirotkin (August 31, 2011). "Roll Your Own Embedded Linux System with Buildroot". Linux Journal. Retrieved December 18, 2014.
- ^ a b c "Buildroot: Making embedded Linux easy". buildroot.org. Archived from the original on December 18, 2014. Retrieved December 18, 2014.
- ^ a b "The Buildroot User Manual" (PDF). buildroot.org. December 1, 2014. Retrieved December 18, 2014.
- ^ Tom Parkin (April 27, 2010). "Tools and distributions for embedded Linux development". LWN.net. Retrieved August 16, 2015.
- ^ "Buildroot: what's new? - Embedded Linux Conference" (PDF). bootlin.com. 2022. Retrieved October 2, 2023.
- ^ "Buildroot's changelog (CHANGES file)". git.buildroot.net. December 1, 2014. Retrieved December 18, 2014.
- ^ a b c d Peter Korsgaard (October 26, 2013). "Buildroot: What's new?" (PDF). elinux.org. Retrieved December 18, 2014.
- ^ "OpenWrt Buildroot – About". openwrt.org. December 6, 2014. Retrieved December 18, 2014.
- ^ "Linux4SAM: BuildRoot". at91.com. July 15, 2013. Retrieved August 16, 2015.
External links
edit- Official website
- Buildroot: What's new?, Embedded Linux Conference 2014, by Thomas Petazzoni
- Buildroot: A deep dive into the core, Embedded Linux Conference Europe 2014, by Thomas Petazzoni
- Deciding between Buildroot and Yocto, LWN.net, April 6, 2016, by Nathan Willis