Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
software:linux:yocto:introduction [2021-10-27 17:24] – Urs Graf | software:linux:yocto:introduction [2023-05-10 14:33] (aktuell) – Urs Graf | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Introduction to Yocto/Openembedded | + | ====== Introduction to Yocto/OpenEmbedded |
[[https:// | [[https:// | ||
- | |||
- | ===== Getting Started ===== | ||
- | |||
- | Check out [[ .: | ||
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 | + | Rather than defining all parts of the build in a single file (like make or cmake), bitbake |
This file is that component' | This file is that component' | ||
- | 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. |
The latter is useful when the package you want to modify is not under your control. | The latter is useful when the package you want to modify is not under your control. | ||
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 '' | 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 '' | ||
- | Check the [[ .:recipes | Recipes | + | 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 [[.: | + | For example [[.: |
- | You may also find repositories named like layers | + | |
'' | '' | ||
It contains various programs split into layers such as '' | It contains various programs split into layers such as '' | ||
- | Note that in such cases you need to add each layer in the repository | + | Note that in such cases you need to add each layer in the repository |
- | See also: [[ .:setup | Creating | + | 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' | Machines are bitbake' | ||
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' |