4.3 KiB
\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}