Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:linux:yocto:introduction [2022-05-17 08:46] Urs Grafsoftware:linux:yocto:introduction [2023-05-10 14:33] (aktuell) Urs Graf
Zeile 1: Zeile 1:
-====== Introduction to Yocto/Openembedded ======+====== Introduction to Yocto/OpenEmbedded ======
  
 [[https://www.yoctoproject.org/ | yocto]] and [[https://www.openembedded.org/wiki/Main_Page | OpenEmbedded]] provide the tools necessary to create small customised linux distributions aimed at embedded systems. [[https://www.yoctoproject.org/ | yocto]] and [[https://www.openembedded.org/wiki/Main_Page | OpenEmbedded]] provide the tools necessary to create small customised linux distributions aimed at embedded systems.
- 
-===== Getting Started ===== 
- 
-Check out [[ .:getting_started_cpp | this guide]] to get started developing a C/C++ application using [[ software:cmake:start | cmake ]] and yocto. 
  
  
Zeile 18: Zeile 14:
 The build system used by yocto (from OpenEmbedded) is called **bitbake**. Bitbake uses the notions of recipes organised into layers to organise its builds. The build system used by yocto (from OpenEmbedded) is called **bitbake**. Bitbake uses the notions of recipes organised into layers to organise its builds.
  
-===== bitbake: recipes, layers and machines =====+===== bitbake =====
  
 Bitbake is the build system used by yocto and OpenEmbedded. Bitbake is the build system used by yocto and OpenEmbedded.
  
-==== Recipes ==== +===== Recipes ===== 
-Rather than defining all parts of the build in a single file (like make or cmake), bitbake seperates each component that needs to be built into its own file.+Rather than defining all parts of the build in a single file (like make or cmake), bitbake separates each component that needs to be built into its own file.
 This file is that component's recipe. This file is that component's recipe.
 Each recipe can either provide one or more packages (for example, libraries will often provide a lib and lib-dev package), or modify an existing recipe. Each recipe can either provide one or more packages (for example, libraries will often provide a lib and lib-dev package), or modify an existing recipe.
Zeile 29: Zeile 25:
 Whether a file represents a new recipe or changes to an existing one is controlled by its file extension: files for new recipes end in ''.bb'' while those modifying existing recipes end in ''.bbappend''. Whether a file represents a new recipe or changes to an existing one is controlled by its file extension: files for new recipes end in ''.bb'' while those modifying existing recipes end in ''.bbappend''.
  
-Check the [[ .:recipes | Recipes page]] for more information.+Check the [[ .:recipes | Recipes ]] page for more information.
  
-==== Layers ====+===== Layers =====
  
 Groups of recipes that belong together are grouped into layers. Groups of recipes that belong together are grouped into layers.
-For example [[.:meta-ost | meta-ost]] is the layer that contains all the things we need in our images. +For example [[.:meta-ost | meta-ost]] is the layer that contains all the things we need in our images. Some repositories are named after layers. They typically contain a collection of associated layers.
-You may also find repositories named like layers that contain a collection of layers in it.+
 ''meta-openembedded'' is such a collection. ''meta-openembedded'' is such a collection.
 It contains various programs split into layers such as ''meta-connectivity'' and ''meta-python''. It contains various programs split into layers such as ''meta-connectivity'' and ''meta-python''.
-Note that in such cases you need to add each layer in the repository seperately (e.g. ''meta-openembedded/meta-connectivity'' rather than ''meta-openembedded'').+Note that in such cases you need to add each layer in the repository separately (e.g. ''meta-openembedded/meta-connectivity'' rather than ''meta-openembedded'').
 See also: [[ .:setup |Setting up the Build Environment ]] See also: [[ .:setup |Setting up the Build Environment ]]
  
  
-Check the [[ .:layer | Layer page]] for more information.+Check the [[ .:layer | Layer ]] page for more information.
  
-=== BSP ===+==== BSP ====
  
 The BSP (board support package) is just a layer that provides a bootloader and kernel specific to the hardware that the BSP is for.  The BSP (board support package) is just a layer that provides a bootloader and kernel specific to the hardware that the BSP is for. 
  
-=== machines ===+==== Machines ====
  
 Machines are bitbake's way of managing harware specific settings. Machines are bitbake's way of managing harware specific settings.
Zeile 60: Zeile 55:
 See [[ .:kernel | Kernel ]] See [[ .:kernel | Kernel ]]
  
-===== SDK's ===== 
- 
-There are essentially three ways to build on/for a yocto image: 
- 
-  * include the toolchain in the image and build natively (not recommended) 
-  * SDK 
-  * extensible SDK 
  
-See [[ .:sdk | SDK's]]