\pagebreak

## Yocto Project

Kein source-code, nur meta daten.
Die Regeln, wie der Source-Code gebaut wird, werden in Rezepten festgelegt.

docker als build-umgebung.
https://hub.docker.com/r/crops/poky

poky = yocto.
Yocto Project basierend auf Poky Linux.
Ausgesprochen "Pocky" wie das japanische Knabberzeug.

Alle 6 Monate neue Version.
Alle 2 Jahre Long-Term-Support Version.

Distro: How I want to put my system together.
Machine: the board i want to build for.
Image: the selection of packages i want.

build cross-compiler.
tools for build time.
compile code for target machine.

### Layers

Layer contains bunch of recipes.

3 layers:
bsp: board support package
defines a machine and related board-specific packages
contains conf/machine/[MACHINE].conf

distribution: defines a DISTRO such as Poky
contains conf/distro/[DISTRO].conf

Software: everything else
contains neither conf/machine/[MACHINE].conf nor conf/distro/[DISTRO].conf
libraries, e.g. qt5
languages, e.g. Java
tools, e.g. virtualisation or selinux

### Recipes

contain instructions on how to fetch, configure, compile and install a software component
the body contains BitBake metadata (assignment of variables, mostly); the tasks are written
in shell script or Python
Recipe files have a suffix .bb
may be extended with append recipes with .bbappend suffix

majority of recipes produce packages.
/tmp/deploy/rpm/..
often one recipe produces several packages.

IMAGE_INSTALL:append

### Images

core-image-base: A console-only image that fully supports the target device hardware.
core-image-full-cmdline: A console-only image with more full-featured Linux system functionality installed.
core-image-minimal: A small image just capable of allowing a device to boot.
core-image-weston: A very basic Wayland image with a terminal. This image provides the
Wayland protocol libraries and the reference Weston compositor. For more information,
see the “Using Wayland and Weston” section in the Yocto Project Development Tasks Manual.

\begin{center}
\begin{table}[h]
\caption{Example caption}
\resizebox{\textwidth}{!}{%
\begin{tabular}{|l|l|}
\hline
Meta-Layer & Branch \\ \hline
https://github.com/kraj/meta-clang & 312ff1c39b1bf5d35c0321e873417eb013cea477 \\ \hline
https://github.com/meta-flutter/meta-flutter & 82e167a7f13161a4ee9c5a426f13df79987d1055 \\ \hline
https://github.com/openembedded/meta-openembedded & fda737ec0cc1d2a5217548a560074a8e4d5ec580 \\ \hline
https://github.com/agherzan/meta-raspberrypi & 9dc6673d41044f1174551120ce63501421dbcd85 \\ \hline
https://github.com/jwinarske/meta-vulkan & ceb47bd0ed2a9f657fdae48a901e8a41ba697e74 \\ \hline
https://codeberg.org/flk/meta-wayland & cb22939f751c74baa51d9474ba6e8ba647e99756 \\ \hline
\end{tabular}%
}
\end{table}
\end{center}

\begin{figure}[h]
\caption{Example caption}
\centering
\begin{minipage}{7cm}
\dirtree{%
.1 crops-yocto/.
.2 build/.
.3 conf/.
.4 bblayers.conf.
.4 local.conf.
.2 poky/.
.2 run\char`\_crops.sh.
.2 Makefile.
}
\end{minipage}
\end{figure}

\begin{figure}[h]
\caption{Example caption}
\centering
\begin{minipage}{7cm}
\dirtree{%
.1 poky/.
.2 meta/.
.2 meta-poky/.
.2 meta-yocto-bsp/.
.2 meta-selftest/.
.2 meta-skeleton/.
.2 mea-clang/.
.2 meta-flutter/.
.2 meta-flutter-apps/.
.2 meta-flutter-elinux/.
.2 meta-openembedded/.
.2 meta-raspberrypi/.
.2 meta-wayland/.
.2 meta-vulkan/.
}
\end{minipage}
\end{figure}

\begin{figure}[h]
\caption{Example caption}
\centering
\begin{minipage}{10cm}
\dirtree{%
.1 meta-flutter-apps/.
.2 recipes-graphics/.
.3 flutter-apps/.
.4 third-party/.
.5 flutter-elinux\char`\_git.bb/.
.5 flutter-wonders\char`\_git.bb/.
}
\end{minipage}
\end{figure}

\begin{figure}[h]
\caption{Example caption}
\centering
\begin{minipage}{10cm}
\dirtree{%
.1 meta-flutter-elinux/.
.2 recipes-core/.
.3 custom-scripts/.
.4 files/.
.5 flutter-auto-launch/.
.4 flutter-auto-launch\char`\_1.00.bb.
.3 flutter-elinux-rules/.
.4 files/.
.5 90-interfaces.rules.
.4 flutter-elinux-rules\char`\_1.00.bb.
.3 flutter-user/.
.4 flutter-user\char`\_1.00.bb.
.3 systemd/.
.4 files/.
.5 flutter-auto.service.
.5 flutter-pi.service.
.4 flutter-auto-service\char`\_1.00.bb.
.4 flutter-pi-service\char`\_1.00.bb.
.4 systemd\char`\_\%.bbappend.
.3 systemd-conf/.
.4 files/.
.5 en.network.
.5 eth.network.
.5 wlan.network.
.4 systemd-conf\char`\_\%.bbappend.
}
\end{minipage}
\end{figure}
