OpenEmbedded es un marco de automatización de compilación y un entorno de compilación cruzada que se utiliza para crear distribuciones de Linux para dispositivos integrados . [2] El marco OpenEmbedded es desarrollado por la comunidad OpenEmbedded, que se estableció formalmente en 2003. OpenEmbedded es el sistema de compilación recomendado del Proyecto Yocto , que es un grupo de trabajo de la Fundación Linux que ayuda a las empresas comerciales en el desarrollo de sistemas basados en Linux para productos integrados.
![]() | |
Desarrollador (es) | 75+ desarrolladores [1] |
---|---|
Repositorio | ![]() |
Sistema operativo | Linux |
Plataforma | Multiplataforma |
Tipo | Automatización de construcción |
Licencia | MIT |
Sitio web | www |
El sistema de compilación se basa en "recetas" de BitBake , que especifican cómo se compila un paquete en particular, pero también incluye listas de dependencias y ubicaciones de código fuente, así como instrucciones sobre cómo instalar y eliminar un paquete compilado. Las herramientas OpenEmbedded utilizan estas recetas para buscar y parchear el código fuente, compilar y vincular binarios, producir paquetes binarios ( ipk , deb , rpm ) y crear imágenes de arranque.
Históricamente, la colección de recetas de OpenEmbedded se almacenaba en un único repositorio, y los metadatos se estructuraban en un formato que ahora se llama "OpenEmbedded-Classic". Para 2010, se había vuelto cada vez más difícil administrar el número cada vez mayor de recetas. Para resolver esto, los metadatos de la receta se dividieron en varias capas. La capa más baja, que incluye metadatos independientes de la plataforma y de la distribución, se llama "OpenEmbedded-Core". [3] Las instrucciones específicas de la arquitectura, de la aplicación y dependientes de la distribución se aplican en las capas de soporte de destino adecuadas que pueden anular o complementar las instrucciones de las capas inferiores. Además, los cambios en las recetas en la capa central ahora se administran con un modelo de extracción: en lugar de enviar sus cambios directamente al repositorio (como era el caso anteriormente), los desarrolladores ahora envían sus parches a la lista de correo. Los parches, si se aprueban, son luego fusionados (extraídos) por un mantenedor. [3]
El marco OpenEmbedded se puede instalar y actualizar automáticamente a través de Git . [2]
Historia
El proyecto OpenEmbedded ( OE para abreviar) fue creado por Chris Larson, Michael Lauer y Holger Schurig, fusionando los logros de OpenZaurus con contribuciones de proyectos como Familiar Linux y OpenSIMpad en una base de código común. OpenEmbedded reemplazó estos proyectos y se utilizó para construir cualquiera de ellos desde la misma base de código. Existen construcciones de mantenimiento estables para el antiguo OpenEmbedded-Classic, [4] aunque la mayor parte del desarrollo está, o estará, basado en el nuevo OpenEmbedded-Core en el futuro.
El Proyecto OpenEmbedded-Core ( OE-Core para abreviar) resultó de la fusión del Proyecto Yocto con OpenEmbedded. [5] Esta es la versión más reciente de OpenEmbedded y muchas de las recetas de desarrollo de OE están disponibles en OE-Core. Es posible que las versiones más recientes de las recetas de paquetes solo se adapten a OpenEmbedded-Core.
Organización de capas
OpenEmbedded-Core ha adaptado esta estructura en capas en la fusión con Yocto y se agregaron nuevas entradas de capa con el tiempo. [6] [7] Las capas representan una estructura que es solo de naturaleza declarativa. Las entradas específicas son más estrictas en el ámbito de decidir qué entrada proporciona qué paquetes. La descripción general de las capas está disponible en: capas
- Capa de desarrollador
- La capa definida por el usuario para recetas personalizadas de Bitbake. Los desarrolladores de software de sistemas integrados colocarían su receta aquí si el software no se ajustara a la capa comercial o base.
- Capa comercial
- Los paquetes, complementos y configuraciones de proveedores de código abierto van en esta capa.
- Capa específica de la interfaz de usuario
- Capas actualmente presentes dentro de la capa insertada meta-abierta:
- meta-efl ( administrador de ventanas de iluminación )
- meta-gnome ( administrador de ventanas GNOME )
- meta-gpe ( administrador de ventanas GPE )
- meta-xfce ( administrador de ventanas Xfce )
- Capa específica de hardware
- meta-efikamx ( dispositivos Efika )
- meta-fsl-arm ( placas de desarrollo con soporte oficial de Freescale Semiconductor )
- meta-fsl-arm-extra ( placas compatibles con la comunidad de Freescale Semiconductor )
- meta-dispositivo portátil ( asistentes digitales personales , PDA)
- meta-intel ( dispositivos integrados Intel )
- meta-nslu2 ( dispositivos NSLU2 )
- meta-openpandora ( dispositivos Openpandora )
- meta-smartphone (varios dispositivos de smartphone)
- meta-ti ( dispositivos de Texas Instruments )
- meta-xilinx ( dispositivos Xilinx )
- meta-altera ( dispositivos Altera )
- meta-ettus (dispositivos Ettus Research USRP SDR)
- (Otros)
- Capa OpenEmbedded-Core
- núcleo incrustado abierto
- meta-abierto
Distribuciones compatibles
En OpenEmbedded-Classic, las configuraciones desde Base- hasta UI-Layer pueden complementarse con varias distribuciones de Linux . La siguiente lista está disponible para OpenEmbedded:
- Distribución Ångström
- KaeilOS
- Openmoko
- SHR [8]
- SlugOS
- WebOS [9]
- Otros [10]
Hardware compatible
Se admiten varios dispositivos: [11]
- Placas y procesadores
- Se admiten el BeagleBoard de Texas Instruments, el Gumstix , [12] [13] Nvidia Tegra y varios dispositivos I.MX (por ejemplo, la serie I.MX28 ) [14] de Freescale Semiconductor. [ cita requerida ]
- También se admiten otras placas conocidas como PandaBoard . [15] [ síntesis incorrecta? ] [16] [ síntesis incorrecta? ] junto con otro hardware.
- Algunos dispositivos de la serie IBM PowerPC son compatibles con OpenEmbedded. [17]
- Teléfonos inteligentes
- Se admiten teléfonos inteligentes como Nokia N800 y Neo FreeRunner .
- Portar a nuevo hardware
- La constelación de OpenEmbedded, especialmente el diseño abierto, le permite obtener OpenEmbedded para adaptar el nuevo hardware con bastante facilidad. [18] [ síntesis incorrecta? ] [19] [ síntesis incorrecta? ]
Ver también
- BitBake
- Buildroot
- Agarre Emdebian
- Linux familiar
- Openpandora
- OpenZaurus
- Proyecto Yocto
- T2 SDE
Referencias
- ^ "Desarrolladores OpenEmbedded" . Archivado desde el original el 9 de noviembre de 2012.
- ^ a b Freno, acantilado; et al. (2015), "Bienvenido a OpenEmbedded" , OpenEmbedded Wiki , Blacksburg, VA: openembedded.org.
- ^ a b Eggleton, Paul (2015), "OpenEmbedded-Core" , Wiki de OpenEmbedded , Blacksburg, VA: openembedded.org.
- ^ "2011.03-mantenimiento" . Archivado desde el original el 9 de noviembre de 2012 . Consultado el 30 de septiembre de 2011 .
- ^ a b "Proyecto Yocto alinea tecnología con OpenEmbedded y gana colaboradores corporativos" . Archivado desde el original el 11 de enero de 2012.
- ^ a b Capas de núcleo Yocto y OpenEmbedded Archivado el 19 de septiembre de 2011 en la Wayback Machine.
- ^ "Índice de metadatos OpenEmbedded - capas" . Archivado desde el original el 22 de junio de 2013 . Consultado el 18 de junio de 2013 .
- ^ "SHR" .
- ^ Ben Combee en Palm Developer Forum - viernes 16 de julio de 2010. Creación de bibliotecas estáticas Archivado el 26 de julio de 2011 en Wayback Machine.
- ^ "Soluciones de información B2C" .
- ^ "Descripción general de las máquinas compatibles con OE" . Archivado desde el original el 28 de septiembre de 2011 . Consultado el 30 de septiembre de 2011 .
- ^ Uso del sistema de compilación OpenEmbedded para Gumstix Archivado el 2 de septiembre de 2011 en Wayback Machine
- ^ "Entorno de desarrollo TI Gumstix OpenEmbedded" . Archivado desde el original el 15 de mayo de 2019 . Consultado el 28 de noviembre de 2019 .
- ^ Soporte no oficial de OpenEmbedded I.MX28 Archivado el 7 de abril de 2012 en la Wayback Machine.
- ^ "PandaBoard" . Archivado desde el original el 31 de diciembre de 2015.
- ^ "OMAP Angstrom Main" .
- ^ Presentación de Power.org devcon 07 OpenEmbedded Archivado el 29 de marzo de 2012 en Wayback Machine.
- ^ Guía del paquete de soporte de la placa de proyecto Yocto
- ^ "Manual de desarrollo de proyectos Yocto" .
enlaces externos
- Wiki y sitio web oficial de OpenEmbedded
- Presentación FOSDEM'05 de OpenEmbedded
- Presentación FOSDEM'07 de OpenEmbedded
- Presentación ELC'08 de OpenEmbedded
- Manual de usuario de OpenEmbedded