OpenEmbedded
OpenEmbedded (zkratka OE) je prostředí pro automatizaci sestavování softwaru (anglicky build automation) a křížový překlad používané pro tvorbu linuxových distribucí pro vestavěná zařízení[2]. OpenEmbedded framework vyvinula komunita OpenEmbedded, která byla formálně založena v roce 2003. OpenEmbedded je doporučený buildovací systém projektu Yocto, což je pracovní skupina Linux Foundation, která pomáhá komerčním společnostem při vývoji linuxových systémů pro vestavěná zařízení.
Vývojář | více než 75 vývojářů[1] |
---|---|
Operační systém | Linux |
Vyvíjeno v | shellový skript |
Typ softwaru | Automatizace sestavování softwaru |
Licence | MIT |
Web | www |
Některá data mohou pocházet z datové položky. |
Buildovací systém je založen na BitBake „receptech“, které udávají, jak se builduje určitý balíček, i seznamy závislostí a lokací zdrojového kódu, a instrukce, jak přeložený balíček nainstalovat nebo odstranit. Nástroje OpenEmbedded používají tyto recepty pro získání a patchování zdrojového kódu, překlad a linkování programů, vytvoření binárních balíčků (ipk, deb, rpm) a vytvoření diskových obrazů pro zavádění systému (boot).
Historicky byly kolekce OpenEmbedded receptů uloženy v jednom repozitáři a metadata byla strukturována do tvaru nyní nazývaného „OpenEmbedded-Classic“. Kolem roku 2010 začala být správa stále rostoucího množství receptů příliš složitá. Proto byla metadata receptu rozdělena do několika vrstev. Nejnižší vrstva obsahuje platformně nezávislá a na distribuci nezávislá metadata a nazývá se „OpenEmbedded-Core“[3]. Instrukce závislé na architektuře, aplikaci nebo distribuci jsou aplikovány ve vhodných cílových vrstvách pro podporu cíle, a mohou mít přednost před instrukcemi z nižší vrstvy nebo je mohou doplňovat. Změny receptů v centrální (core) vrstvě se nyní spravují pomocí pull modelu: místo commitování svých změn přímo do repozitáře (což byl dřívější postup) vývojáři posílají svoje patche do elektronická konference. Schválené patche správce zahrne (pull) do projektu.[3]
OpenEmbedded framework lze nainstalovat a automaticky aktualizovat pomocí verzovacího systému git.[2]
Historie
Projekt OpenEmbedded vytvořil Chris Larson, Michael Lauer a Holger Schurig sloučením výsledků projektu OpenZaurus s příspěvky z projektů jako Familiar Linux a OpenSIMpad do společné kódové základny. OpenEmbedded nahradil novější verze uvedených projektů a umožňoval sestavení softwaru kteréhokoli z nich ze stejné kódové báze. K dispozici jsou stabilní verze pro starý OpenEmbedded-Classic,[4] i když budoucí vývoj bude nebo je založen na novém OpenEmbedded-Core.
Projekt OpenEmbedded-Core (zkráceně OE-Core) vznikl sloučením projektu Yocto s OpenEmbedded.[5] Jde o poslední verzi OpenEmbedded, a je v něm dostupných mnoho OE-dev receptů. Novější verze receptů pro balíčky mohou být portovány pouze pro OpenEmbedded-Core.
Organizace vrstev
Při sloučení s Yocto upravil OpenEmbedded-Core jeho vrstvenou strukturu a postupně byly přidány položky nové vrstvy.[6][7] Struktura, která reprezentuje vrstvy, má pouze deklarativní povahu. Přísnější pravidla platí pro praametry určující, jaké položky patří do jakých balíčků. Vysvětlení vrstev je dostupné v layers
- Vývojářská vrstva
- Uživatelem definovaná vrstva pro přizpůsobování Bitbake receptů. Sem vývojáři vestavěného systému umísťují svůj recept, pokud software nepatří do komerční nebo bázové vrstvy.
- Komerční vrstva
- Balíčky, pluginy a konfigurace od komerčních dodavatelů softwaru s otevřeným zdrojovým textem patří do této vrstvy.
- Vrstva závislá na uživatelském rozhraní
- Vrstvy aktuálně přítomné ve vrstvě meta-openembedded:
- meta-efl (okenní manažer Enlightenment)
- meta-gnome (okenní manažer GNOME)
- meta-gpe (okenní manažer GPE)
- meta-xfce (okenní manažer Xfce)
- Hardwarově závislá vrstva
- meta-efikamx (zařízení Efika)
- meta-fsl-arm (oficiálně podporované vývojové desky Freescale Semiconductor)
- meta-fsl-arm-extra (komunitou podporované desky Freescale Semiconductor)
- meta-handheld (pro PDA)
- meta-intel (vestavěná zařízení firmy Intel)
- meta-nslu2 (zařízení NSLU2)
- meta-openpandora (zařízení Openpandora)
- meta-smartphone (různé smartfony)
- meta-ti (zařízení Texas Instruments)
- meta-xilinx (zařízení Xilinx)
- meta-altera (zařízení Altera)
- meta-ettus (SDR zařízení Ettus Research USRP)
- a další
- Vrstva OpenEmbedded-Core
- openembedded-core
- meta-openembedded
Podporované distribuce
V OpenEmbedded-Classic mohou být konfigurace ze základní vrstvy (anglicky base layer) do UI vrstvy doplněny různými linuxovými distribucemi. Pro OpenEmbedded je dostupný následující seznam:
Podporovaný hardware
Mezi podporovaná zařízení patří:[11]
- Desky a procesory
- Jsou podporovány desky BeagleBoard firem Texas Instruments, Gumstix,[12][13] Nvidia Tegra a několik zařízení I.MX (například řady I.MX28)[14] firmy Freescale Semiconductor.[zdroj?]
- K podporovaným deskám patří i další dobře známé desky jako PandaBoard[15][16] a další hardware.
- OpenEmbedded podporuje některá zařízení řady PowerPC firmy IBM[17].
- Smartfony
- K podporovaným smartfonům patří např. Nokia N800 a Neo FreeRunner.
Odkazy
Reference
V tomto článku byl použit překlad textu z článku OpenEmbedded na anglické Wikipedii.
- OpenEmbedded Developers [online]. Dostupné v archivu pořízeném z originálu dne 2012-11-09.
- BRAKE, Cliff. OpenEmbedded Wiki. Blacksburg, VA: openembedded.org, 2015. Kapitola Welcome to OpenEmbedded..
- EGGLETON, Paul. OpenEmbedded Wiki. Blacksburg, VA: openembedded.org, 2015. Kapitola OpenEmbedded-Core..
- 2011.03-maintenance [online]. [cit. 2011-09-30]. Dostupné v archivu pořízeném z originálu dne 2012-11-09.
- Yocto Projekt Aligns Technology s OpenEmbedded a Gains Corporate Collaborators [online]. Dostupné v archivu pořízeném z originálu dne 2012-01-11.
- Yocto & OpenEmbedded Core Layers [online]. Dostupné v archivu pořízeném z originálu dne 2011-09-19.
- OpenEmbedded Metadata Index - layers [online]. [cit. 2013-06-18]. Dostupné v archivu pořízeném z originálu dne 2013-06-22.
- SHR [online]. [cit. 2020-10-04]. Dostupné v archivu pořízeném dne 2011-10-07.
- Ben Combee na Palm Developer Forum - Fri Jul 16, 2010. Building static libs [online]. Dostupné v archivu pořízeném z originálu dne 2011-07-26.
- B2C Info Solutions [online]. Dostupné online.
- Overview of OE supported machines [online]. [cit. 2011-09-30]. Dostupné v archivu pořízeném z originálu dne 2011-09-28.
- Using OpenEmbedded build system for Gumstix [online]. Dostupné v archivu pořízeném z originálu dne 2011-09-02.
- TI Gumstix OpenEmbedded vývojové prostředí [online]. [cit. 2019-11-28]. Dostupné v archivu pořízeném z originálu dne 2019-05-15.
- Unofficial OpenEmbedded I.MX28 support [online]. 2012-04-07 [cit. 2020-10-04]. Dostupné v archivu pořízeném dne 2012-04-07.
- PandaBoard [online]. Dostupné v archivu pořízeném z originálu.
- OMAP Angstrom Main [online]. Dostupné online.
- Power.org devcon 07 OpenEmbedded presentation [online]. 2012-03-29. Dostupné v archivu pořízeném z originálu.
- Yocto Project Board Support Package guide [online]. Dostupné online.
- Yocto Project Development Manual [online]. Dostupné online.
Související články
- BitBake
- Buildroot
- Emdebian Grip
- Familiar Linux
- Openpandora
- OpenZaurus
- Yocto (projekt)