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í.

OpenEmbedded
Logo
Vývojářvíce než 75 vývojářů[1]
Operační systémLinux
Vyvíjeno vshellový skript
Typ softwaruAutomatizace sestavování softwaru
LicenceMIT
Webwww.openembedded.org
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 editovat

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 editovat

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.openembedded.org/layerindex/branch/master/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
Vrstva Yocto
Vrstva OpenEmbedded-Core
  • openembedded-core
  • meta-openembedded

Podporované distribuce editovat

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 editovat

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.
Portování na nový hardware
Struktura OpenEmbedded, především jeho otevřený návrh, usnadňuje úpravy OpenEmbedded na nový hardware.[18][19]

Odkazy editovat

Reference editovat

V tomto článku byl použit překlad textu z článku OpenEmbedded na anglické Wikipedii.

  1. OpenEmbedded Developers [online]. Dostupné v archivu pořízeném z originálu dne 2012-11-09. 
  2. a b BRAKE, Cliff. OpenEmbedded Wiki. Blacksburg, VA: openembedded.org, 2015. Kapitola Welcome to OpenEmbedded. .
  3. a b EGGLETON, Paul. OpenEmbedded Wiki. Blacksburg, VA: openembedded.org, 2015. Kapitola OpenEmbedded-Core. .
  4. 2011.03-maintenance [online]. [cit. 2011-09-30]. Dostupné v archivu pořízeném z originálu dne 2012-11-09. 
  5. a b Yocto Projekt Aligns Technology s OpenEmbedded a Gains Corporate Collaborators [online]. Dostupné v archivu pořízeném z originálu dne 2012-01-11. 
  6. a b Yocto & OpenEmbedded Core Layers [online]. Dostupné v archivu pořízeném z originálu dne 2011-09-19. 
  7. OpenEmbedded Metadata Index - layers [online]. [cit. 2013-06-18]. Dostupné v archivu pořízeném z originálu dne 2013-06-22. 
  8. SHR [online]. [cit. 2020-10-04]. Dostupné v archivu pořízeném dne 2011-10-07. 
  9. 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. 
  10. B2C Info Solutions [online]. Dostupné online. 
  11. Overview of OE supported machines [online]. [cit. 2011-09-30]. Dostupné v archivu pořízeném z originálu dne 2011-09-28. 
  12. Using OpenEmbedded build system for Gumstix [online]. Dostupné v archivu pořízeném z originálu dne 2011-09-02. 
  13. 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. 
  14. Unofficial OpenEmbedded I.MX28 support [online]. 2012-04-07 [cit. 2020-10-04]. Dostupné v archivu pořízeném dne 2012-04-07. 
  15. PandaBoard [online]. Dostupné v archivu pořízeném z originálu. 
  16. OMAP Angstrom Main [online]. [cit. 2020-10-04]. Dostupné v archivu pořízeném dne 2018-08-31. 
  17. Power.org devcon 07 OpenEmbedded presentation [online]. 2012-03-29. Dostupné v archivu pořízeném z originálu. 
  18. Yocto Project Board Support Package guide [online]. Dostupné online. 
  19. Yocto Project Development Manual [online]. [cit. 2020-10-04]. Dostupné v archivu pořízeném dne 2021-01-16. 

Související články editovat

Externí odkazy editovat