OpenEmbedded

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.

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

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.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
  • 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 Yocto
  • meta-yocto (vrstva projektu Yocto[6][5])
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.
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

Reference

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

  • BitBake
  • Buildroot
  • Emdebian Grip
  • Familiar Linux
  • Openpandora
  • OpenZaurus
  • Yocto (projekt)

Externí odkazy

  • Logo Wikimedia Commons Obrázky, zvuky či videa k tématu OpenEmbedded na Wikimedia Commons
  • Oficiální OpenEmbedded web a wiki
  • Prezentace OpenEmbedded na FOSDEM'05
  • Prezentace OpenEmbedded na FOSDEM'07
  • Prezentace OpenEmbedded na ELC'08
  • OpenEmbedded Uživatel Manuál Archivováno 14. 3. 2018 na Wayback Machine.