Buildroot es un conjunto de Makefiles y parches que simplifica y automatiza el proceso de creación de un entorno Linux completo y arrancable para un sistema integrado , al mismo tiempo que utiliza la compilación cruzada para permitir la creación de múltiples plataformas de destino en un único sistema de desarrollo basado en Linux. Buildroot puede crear automáticamente la cadena de herramientas de compilación cruzada requerida , crear un sistema de archivos raíz , compilar una imagen del núcleo de Linux y generar un cargador de arranque para el sistema integrado de destino, o puede realizar cualquier combinación independiente de estos pasos. Por ejemplo, una cadena de herramientas de compilación cruzada ya instalada se puede utilizar de forma independiente, mientras que Buildroot solo crea el sistema de archivos raíz. [3] [4] [5] : 2–3, 10–12 [6]
Buildroot está destinado principalmente a ser utilizado con sistemas pequeños o integrados basados en varias arquitecturas de computadora y arquitecturas de conjuntos de instrucciones (ISA), incluyendo x86 , ARM , MIPS , PowerPC y RISC-V . [7] Se admiten numerosas arquitecturas y sus variantes; Buildroot también viene con configuraciones predeterminadas para varias placas integradas disponibles en el mercado, como Cubieboard , Raspberry Pi y SheevaPlug . [8] [9] : 25 Varios proyectos y productos de terceros utilizan Buildroot como base para sus sistemas de compilación, incluido el proyecto OpenWrt que crea un sistema operativo integrado y firmware para el equipo local del cliente (CPE) utilizado por el servicio de banda ancha Google Fiber . [9] : 15 [10]
Se admiten varias bibliotecas estándar de C como parte de la cadena de herramientas, incluidas la biblioteca C de GNU , uClibc y musl , así como las bibliotecas estándar de C que pertenecen a varios entornos de desarrollo preconfigurados, como los proporcionados por Linaro . El sistema de configuración de compilación de Buildroot utiliza internamente Kconfig , que proporciona características como una interfaz basada en menús, manejo de dependencias y ayuda contextual ; Kconfig también es utilizado por el núcleo Linux para su configuración a nivel de fuente. Buildroot está organizado en torno a numerosos paquetes descargados automáticamente , que contienen el código fuente de varias aplicaciones de espacio de usuario , utilidades del sistema y bibliotecas . Las imágenes del sistema de archivos raíz, que son los resultados finales, se pueden crear utilizando varios sistemas de archivos , incluidos cramfs , JFFS2 , romfs , SquashFS y UBIFS . [4] [9] : 6–7, 18 [11]
Buildroot es un software libre y de código abierto , mantenido por Peter Korsgaard y licenciado bajo la versión 2 o posterior de la Licencia Pública General de GNU (GPL). [4] El proyecto comenzó en 2001, con la intención inicial de servir como banco de pruebas para uClibc. Se publican nuevas versiones cada tres meses. [5] : 5 [9] : 4