{"id":8140,"date":"2025-11-29T14:52:31","date_gmt":"2025-11-29T13:52:31","guid":{"rendered":"https:\/\/web-dev-weissblau.de\/microconsult\/?p=8140"},"modified":"2026-02-11T05:25:20","modified_gmt":"2026-02-11T04:25:20","slug":"yocto-that-can-also-be-done-automatically","status":"publish","type":"post","link":"https:\/\/www.microconsult.de\/en\/yocto-das-geht-auch-automatisch\/","title":{"rendered":"Yocto: That can be done automatically!"},"content":{"rendered":"<h2>Baukasten f\u00fcr ma\u00dfgeschneiderte Embedded-Distributionen<\/h2>\n<p>Autor: Simon Egli, bbv Software Services<\/p>\n<h3>Beitrag &#8211; Embedded Software Engineering Kongress 2015<\/h3>\n<p class=\"Standard1\"><strong>Das Yocto-Buildsystem ist ein gro\u00dfes und m\u00e4chtiges Werkzeug. F\u00fcr den Einsteiger ist es oftmals schwierig, die Zusammenh\u00e4nge des Buildsystems zu sehen, und der Start eines eigenen Projektes gestaltet sich entsprechend schwierig. Dieser Beitrag zeigt Schritt f\u00fcr Schritt den Bau einer einfachen Distribution mit eigenen Rezepten. Der Leser dieses Artikels ist daf\u00fcr ger\u00fcstet, weiterf\u00fchrende Themen auf eigene Faust zu meistern.<\/strong><\/p>\n<p class=\"Standard1\">Das Yocto-Projekt stellt Herstellern von Embedded-Produkten Tools und Metadaten zur Verf\u00fcgung, um eigene Linux-basierte Distributionen hardwareunabh\u00e4ngig zu entwickeln. Mit Yocto lassen sich alle Eigenschaften und Eigenheiten eines Systems schon von vornherein bestimmen, testen und gegebenenfalls auf einem virtuellen System simulieren.<br \/>\nTypischerweise sollen selbst entwickelte Programme, zusammen mit eigenen Konfigurationsfiles und den \u00fcblichen Standardprogrammen (SSH, vim o.\u00e4.), in das fertige Image eingebunden werden.<\/p>\n<p class=\"Standard1\">Einzelne Einheiten werden in sogenannte Rezepte unterteilt, diese beschreiben die Schritte, um eine Programmeinheit mit Hilfe des Bitbake-Programms zu &#8222;backen&#8220;. Die Rezepte sind wiederum in sogenannte Schichten (engl. Layer) zusammengefasst, welche helfen, die Komplexit\u00e4t der vielen Rezepte zu unterteilen.<br \/>\nNachfolgend soll eine kleine Beispielsdistribution gebildet werden.\u00a0<a title=\"\" href=\"https:\/\/www.microconsult.de\/yocto-das-geht-auch-automatisch\/\" target=\"_blank\" rel=\"noopener\" name=\"_ftnref1\">[1]<\/a><\/p>\n<p class=\"Standard1\"><a title=\"\" href=\"https:\/\/www.microconsult.de\/1637-0-Yocto-Das-geht-auch-automatisch---ESE-2015.html#_ftn1\" name=\"_ftnref1\"><\/a>Alle hier erstellten Dateien k\u00f6nnen auch von GitHub heruntergeladen werden; siehe weiterf\u00fchrende Links.<\/p>\n<h2 class=\"Standard1\">Initialisieren eines Yocto-Projekts<\/h2>\n<p class=\"Standard1\">Mit folgenden Kommandos wird ein neues Yocto-Projekt angelegt und das Terminal f\u00fcr die nachfolgenden Befehle vorbereitet.\u00a0[2]<\/p>\n<p class=\"quellcode\">~\/ $\u00a0<strong>git clone<\/strong>\u00a0git:\/\/git.yoctoproject.org\/poky.git ~\/yocto\/poky<\/p>\n<p class=\"quellcode\">~\/ $\u00a0<strong>source<\/strong>\u00a0~\/yocto\/poky\/oe-init-build-env<\/p>\n<p class=\"Standard1\">Der Source-Befehl initialisiert das Terminal und wechselt in das zum Builden automatisch generierte Verzeichnis.<br \/>\nDie nachfolgenden Schritte nehmen an, dass diese Befehle vorg\u00e4ngig ausgef\u00fchrt worden sind und dieses initialisierte Terminal verwendet wird.<\/p>\n<h2 class=\"Standard1\">Einen eigenen Layer erstellen<\/h2>\n<p>Ein eigener Layer wird am einfachsten mit einem zur Verf\u00fcgung gestellten Script erstellt. Jeder Layer besitzt eine anpassbare Priorit\u00e4t und kann so Rezepte von weniger hoch eingestuften Sammlungen erweitern oder \u00fcberschreiben. Der Beispiels-Layer dieses Beitrags wird \u00abese\u00bb benannt.<\/p>\n<div class=\"quellcode\">\n<p class=\"PreformattedText\">~\/yocto\/build$\u00a0<strong>..\/poky\/scripts\/yocto-layer\u00a0<\/strong>create ese -o ..\/poky\/meta-ese<\/p>\n<p class=\"PreformattedText\">Please enter the layer priority you&#8217;d like to use for the layer: [default: 6]<\/p>\n<p class=\"PreformattedText\">Would you like to have an example recipe created? (y\/n) [default: n]<\/p>\n<p class=\"PreformattedText\">Would you like to have an example bbappend file created? (y\/n) [default: n]<\/p>\n<p class=\"PreformattedText\">New layer created in meta-ese.<\/p>\n<\/div>\n<div><\/div>\n<div>\n<p>Nach der Beantwortung der ben\u00f6tigten Angaben des Skripts werden die Verzeichnisstruktur und die ben\u00f6tigten Konfigurationsdateien Yocto-konform angelegt.<\/p>\n<p>Damit der neu angelegte Layer mit in das System eingebunden wird, muss er in der Datei \u00abconf\/bblayers.conf\u00bb eingetragen werden.<\/p>\n<p class=\"quellcode\">~\/yocto\/build $\u00a0<strong>vi<\/strong>\u00a0.\/conf\/bblayers.conf<\/p>\n<p class=\"quellcode\">BBLAYERS ?= &#8220; \\<\/p>\n<p class=\"quellcode\">\u00a0\u00a0\/home\/dead\/yocto\/poky\/meta \\<\/p>\n<p class=\"quellcode\">\u00a0\u00a0\/home\/dead\/yocto\/poky\/meta-yocto \\<\/p>\n<p class=\"quellcode\">\u00a0\u00a0\/home\/dead\/yocto\/poky\/meta-yocto-bsp \\<\/p>\n<p class=\"quellcode\">\u00a0\u00a0<strong>\/home\/dead\/yocto\/poky\/meta-ese<\/strong><strong>\u00a0\\<\/strong><\/p>\n<p class=\"quellcode\">\u00a0\u00a0&#8222;<\/p>\n<\/div>\n<div>\n<p class=\"Standard1\">Durch diesen Eintrag ist der neue Layer eingebunden und wird beim n\u00e4chsten Bauen der Distribution mit einbezogen.<\/p>\n<h2 class=\"Standard1\">Ein eigenes Rezept<\/h2>\n<p class=\"Standard1\">Mit dem neu erstellten Layer l\u00e4sst sich jetzt ein Rezept f\u00fcr ein eigenes Programm hinzuf\u00fcgen. Im Verzeichnis &#8222;meta-ese&#8220; wird ein Verzeichnis &#8222;recipes-example&#8220; angelegt und darin ein weiterer Unterordner Namens &#8222;hello-world&#8220;. Dies ist der Hauptordner f\u00fcr das selbst erstellte Rezept. Es handelt sich hierbei um ein kleines hello-world-Programm (in C geschrieben), welches unter\u00a0<em>\/usr\/bin<\/em>[3]\u00a0installiert werden soll.\u00a0 Rezepte in einem Layer sind stets unter einem Begriff zusammengefasst. Bitbake sucht Rezepte standardm\u00e4ssig nur in solchen Kollektionen.\u00a0 Im hello-world-Verzeichniss wird ein Ordner mit dem Namen &#8222;<em>hello-world-0.1&#8243;<\/em>\u00a0f\u00fcr den Sourcecode des Rezepts erstellt. Darin wird das zu kompilierende C-File &#8222;<em>helloworld.c<\/em>\u00a0kreiert (siehe auch Abbildung 1,\u00a0<a title=\"Yocto: Das geht auch automatisch! (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_open_source_yocto-das_geht_auch_automatisch_bbv_software_services_egli.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>).<\/p>\n<p class=\"quellcode\">#include &lt;stdio.h&gt;<\/p>\n<p class=\"quellcode\">int main(int argc, char **argv)<\/p>\n<p class=\"quellcode\">{<\/p>\n<p class=\"quellcode\">\u00a0\u00a0\u00a0\u00a0<strong>printf<\/strong>(&#8222;Hello World! &#8222;);<\/p>\n<p class=\"quellcode\">\u00a0\u00a0\u00a0\u00a0<strong>return<\/strong>\u00a00;<\/p>\n<p class=\"quellcode\">}<\/p>\n<p class=\"Standard1\">Entgegen diesem Beispiel wird der Sourcecode oft auch mithilfe des dazugeh\u00f6rigen Rezepts automatisch aus dem Internet heruntergeladen.\u00a0 Den Sourcecode-Unterordner findet Bitbake automatisch und verwendet die darin enthaltenen Dateien f\u00fcr die Abarbeitung der im Rezept enthaltenen Schritte. Im Verzeichnis &#8222;<em>meta-ese\/recipes-example\/hello-world&#8220;<\/em>\u00a0wird das eigentliche Rezept &#8222;hello-world_0.1.bb&#8220; angelegt. Die Zahlen nach dem Unterstrich stehen f\u00fcr die Versionsnummer und werden f\u00fcr jedes Rezept ben\u00f6tigt.<\/p>\n<div>Der Inhalt des Rezepts umfasst schon fr diese relativ einfache Aufgabe mehrere Zeilen.<\/div>\n<div class=\"quellcode\">\n<p class=\"PreformattedText\">SUMMARY = &#8222;Simple helloworld application&#8220;<\/p>\n<p class=\"PreformattedText\">SECTION = &#8222;examples&#8220;<\/p>\n<p class=\"PreformattedText\">LICENSE = &#8222;MIT&#8220;<\/p>\n<p class=\"PreformattedText\">LIC_FILES_CHKSUM = &#8222;file:\/\/\/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302&#8220;<\/p>\n<p class=\"PreformattedText\">SRC_URI = &#8222;file:\/\/helloworld.c&#8220;<\/p>\n<p class=\"PreformattedText\">S = &#8222;&#8220;<\/p>\n<p class=\"PreformattedText\">do_compile() {<\/p>\n<p class=\"PreformattedText\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 helloworld<strong>.<\/strong>c -o helloworld<\/p>\n<p class=\"PreformattedText\">}<\/p>\n<p class=\"PreformattedText\">do_install() {<\/p>\n<p class=\"PreformattedText\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 install -d<\/p>\n<p class=\"PreformattedText\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 install -m 0755 helloworld<\/p>\n<p class=\"PreformattedText\">}<\/p>\n<p class=\"PreformattedText\">\n<\/div>\n<p class=\"Standard1\">Ein Rezept ben\u00f6tigt jeweils eine Lizenzbeschreibung. Hier wird die MIT-Lizenz aus dem Standard-Lizenzen-Verzeichnis verwendet. Jedes Rezept besteht aus mehreren erweiterbaren Standardschritten, sog. Tasks, welche mit &#8222;do_&#8220; bezeichnet sind. In den wenigsten F\u00e4llen m\u00fcssen die einzelnen Schritte von Hand geschrieben werden: viele Programme benutzen automatisierte Build-Prozesse, etwa cmake oder qmake.\u00a0 Bitbake kann die Kompilierschritte f\u00fcr diese automatisch erkennen und ausf\u00fchren. Die Schritte des Beispiel-Rezepts kompilieren den Quellcode im &#8222;compile&#8220;-Task. In &#8222;do_install\u00bb wird die entstandene ausf\u00fchrbare Datei im &#8222;bindir&#8220; des &#8222;D&#8220; \u2013 also im\u00a0<em>\/usr\/bin<\/em>-Verzeichnis des fertigen Images \u2013 installiert und mit den ben\u00f6tigten Rechten ausgestattet.<br \/>\nWenn das Rezept fertig erstellt ist, kann diese Kompilierung gestartet werden. Im Yocto-Umfeld nennt man das &#8222;ein Rezept backen&#8220;.<\/p>\n<p class=\"quellcode\">~\/yocto\/build$\u00a0<strong>bitbake<\/strong>\u00a0hello-world<\/p>\n<p class=\"Standard1\">Je nach Rezept kann die Abarbeitung einige Zeit in Anspruch nehmen, da alle abh\u00e4ngigen Rezepte auch verarbeitet werden m\u00fcssen. Der Output des Rezepts kann unter<\/p>\n<p class=\"Standard1\"><em>~\/yocto\/build\/tmp\/work\/i586-poky-linux\/hello-world\/0.1-r0\/image\/<\/em><\/p>\n<p class=\"Standard1\">eingesehen werden.<\/p>\n<h2 class=\"Standard1\">Patchen fremder Rezepte<\/h2>\n<p class=\"Standard1\">Oftmals m\u00fcssen die Rezepte fremder Layer modifiziert werden. Typischerweise soll zum Beispiel ein anderes Konfigurationsfile benutzt oder ein paar Zeilen eines Standardprogramms f\u00fcr die eigene Distribution modifiziert werden.<\/p>\n<p class=\"Standard1\">Im folgenden Beispiel soll das Konfigurationsfile des Linux-Schedulers \u00abcron\u00bb durch eine eigene Datei ersetzt werden.<\/p>\n<p class=\"Standard1\">Das Rezept, in dem Cron enthalten ist, heisst unter Yocto \u00abCronie\u00bb und ist unter\u00a0<em>meta\/recipes-extended\/cronie<\/em>\u00a0zu finden.<\/p>\n<p>Um es zu erweitern, wird ein neues \u00abbbappend\u00bb-File erstellt. Dateien mit dieser Endung werden automatisch dazu verwendet, ein gleichnamiges Rezept zu patchen.<br \/>\nDie Erstellung dieser Datei und der dazugeh\u00f6rigen Rezeptstruktur soll diesmal von einem Yocto beliegenden Tool erledigt werden.<\/p>\n<p class=\"quellcode\">~\/yocto\/build$\u00a0<strong>recipetool<\/strong>\u00a0newappend\u00a0<strong>..<\/strong>\/poky\/meta-ese cronie<\/p>\n<p class=\"Standard1\">Das Skript durchsucht die Rezepte und erstellt automatisch eine neue bbappend-Datei am richtigen Ort und mit der aktuellen Version des cronie-Rezepts:<\/p>\n<p class=\"Standard1\"><em>\/home\/dead\/yocto\/poky\/meta-ese\/recipes-extended\/cronie\/cronie_1.5.0.bbappend<\/em><\/p>\n<p class=\"Standard1\">Um das Rezept f\u00fcr alle zuk\u00fcnftigen Versionen zu r\u00fcsten, wird die Versionsnummer (1.5.0) noch manuell mit \u00ab%\u00bb \u2013 einem Wildcard-Charakter, der alle Versionen zul\u00e4sst \u2013 ersetzt. Die Datei heisst somit neu\u00a0<em>cronie_%.bbappend<\/em>.<\/p>\n<p class=\"Standard1\">Der Inhalt der Datei ist sehr kurz:<\/p>\n<p class=\"quellcode\">FILESEXTRAPATHS_prepend := &#8222;\/files:&#8220;<\/p>\n<p class=\"quellcode\">SRC_URI += &#8222;file:\/\/crontab<\/p>\n<p class=\"Standard1\">Die Zeilen weisen Bitbake lediglich an, den Ordner zu ber\u00fccksichtigen und das darin enthaltene File in das Build-Verzeichnis zu kopieren; dort \u00fcberschreibt es das Standard-File des Cronie-Rezepts.<br \/>\nDas eigentliche, im externen Layer liegende Rezept erledigt die Kompilierung und alle anderen ben\u00f6tigten Schritte.<\/p>\n<p class=\"Standard1\">Um das Konfigurationsfile vom Rezept zu trennen, werden ein neuer Unterordner in\u00a0<em>~\/yocto\/poky\/meta-ese\/recipes-extended\/cronie<\/em>\u00a0namens \u00abfiles\u00bb und darin ein modifiziertes crontab-File erstellt.<\/p>\n<p class=\"quellcode\"># \/etc\/crontab: system-wide crontab<\/p>\n<p class=\"quellcode\"># Example crontab-File for the meta-ese layer<\/p>\n<p class=\"quellcode\">SHELL=\/bin\/sh<\/p>\n<p class=\"quellcode\">PATH=\/usr\/local\/sbin:\/usr\/local\/bin:\/sbin:\/bin:\/usr\/sbin:\/usr\/bin<\/p>\n<p class=\"quellcode\">#\u00a0 m\u00a0 h\u00a0 dom mon dow user\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 command<\/p>\n<p class=\"quellcode\">*\/5 * * * * root\u00a0<strong>echo<\/strong>\u00a0&#8222;Hello world&#8220; &gt; \/var\/log\/syslog &amp;<\/p>\n<p>Damit kann auch dieses Rezept gebacken werden:<\/p>\n<\/div>\n<div><\/div>\n<div class=\"quellcode\">~\/yocto\/build $\u00a0<strong>bitbake<\/strong>\u00a0cronie<\/div>\n<div><\/div>\n<div>\n<p class=\"Standard1\">Dies kann wiederum eine Weile dauern \u2013 da nicht nur cronie, sondern auch alle Rezepte, von denen Cronie abh\u00e4ngt, gebuildet werden m\u00fcssen.<\/p>\n<p class=\"Standard1\">Das Ergebnis kann schliesslich unter\u00a0<em>~\/yocto\/build\/tmp\/work\/i586-poky-linux\/cronie\/1.5.0-r0\/image<\/em>\u00a0inspiziert werden \u2013 das Crontab-File sollte korrekt unter \/etc\/crontab abgelegt sein und wird auf dem fertigen Image mit ausgeliefert werden.<\/p>\n<h2 class=\"Standard1\">Builden eines Images<\/h2>\n<p class=\"Standard1\">Es soll ein Image mit dem eigenen und dem gepatchten Rezept erstellt werden.<\/p>\n<p class=\"Standard1\">Als Basis wird ein Beispiel-Image des Standard-poky-Layers \u00abcore-image-base\u00bb verwendet.<\/p>\n<p class=\"Standard1\">Es gibt mehrere Wege, um das Ziel \u2013 die Rezepte an dieses Image-Rezept anzuh\u00e4ngen \u2013 zu erreichen. Hier wird das Erstellen einer eigenen Rezeptdatei gew\u00e4hlt.<\/p>\n<p class=\"Standard1\">Das Rezept wird in\u00a0<em>~\/yocto\/poky\/meta-ese\/recipes-core\/images\/ese-image.bb<\/em>\u00a0mit folgendem Inhalt erstellt.<\/p>\n<p class=\"quellcode\"># Base this image on core-image-minimal<\/p>\n<p class=\"quellcode\">include recipes-core\/images\/core-image-base.bb<\/p>\n<p class=\"quellcode\">IMAGE_INSTALL += &#8222;hello-world cronie&#8220;<\/p>\n<p class=\"Standard1\">Die Rezeptekollektion \u00abrecipes-core\u00bb beinhaltet normalerweise die f\u00fcr das System essenziellen Rezepte, das ist passend f\u00fcr dieses Haupt-Rezept.<br \/>\nDie Anweisungen des Image-Rezepts instruieren Bitbake, \u00abhello-world\u00bb und das modifizierte cronie zu installieren. Dar\u00fcber hinaus soll es aber die Anweisungen des \u00abcore-image-base\u00bb-Images befolgen.<br \/>\nDas Image kann nun gebuildet werden.<\/p>\n<p class=\"quellcode\">~\/yocto\/poky$\u00a0<strong>bitbake<\/strong>\u00a0ese-image<\/p>\n<p class=\"Standard1\">Der Build-Vorgang dauert l\u00e4ngere Zeit, da alle Werkzeuge, Programme und Komponenten f\u00fcr das fertige System gebaut werden m\u00fcssen. Danach kann das Image beispielsweise auf einer virtuellen Maschine gestartet werden.<\/p>\n<p class=\"Standard1\">Um die Rezepte produktiv zu verwenden, m\u00fcsste ein Hersteller-Layer heruntergeladen und eingebunden werden. Am einfachsten w\u00fcrde daraufhin das ese-image so umgeschrieben werden, dass es, statt des core-image-base, ein vom Hersteller bereitgestelltes Image inkludiert.<\/p>\n<h2 class=\"Standard1\">Schlussfolgerung<\/h2>\n<p class=\"Standard1\">In diesem Beitrag wird die Erstellung einer eigenen Distribution mit Hilfe von Yocto dargestellt. Innert kurzer Zeit kann so ein funktionsf\u00e4higes Image generiert werden.<\/p>\n<p class=\"Standard1\">Schritt f\u00fcr Schritt kann der Leser dies nachvollziehen und so einen Einblick in das Arbeiten mit Yocto gewinnen.\u00a0 Es wird nur ein kleiner Teil des Funktionsumfangs von Yocto gezeigt, und viele M\u00f6glichkeiten und Themen werden aussen vor gelassen (siehe Abbildung 2,\u00a0<a title=\"Yocto: Das geht auch automatisch! (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_open_source_yocto-das_geht_auch_automatisch_bbv_software_services_egli.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>).<\/p>\n<p class=\"Standard1\">Der Leser wird dazu ermutigt, die weiterf\u00fchrende Dokumentation von Bitbake und Yocto durchzulesen und sein Wissen zu vertiefen.<\/p>\n<h2 class=\"Standard1\">Weiterf\u00fchrende Links<\/h2>\n<ul>\n<li><a title=\"Meta-ese zum Herunterladen\" href=\"https:\/\/github.com\/Deadolus\/meta-ese\" target=\"_blank\" rel=\"noopener\">Meta-ese zum Herunterladen<\/a><\/li>\n<li><a title=\"Yocto Developer Manual\" href=\"https:\/\/www.yoctoproject.org\/docs\/current\/dev-manual\/dev-manual.html\" target=\"_blank\" rel=\"noopener\">Yocto-Developer-Manual<\/a><\/li>\n<li><a title=\"Bitbake Manual\" href=\"https:\/\/www.microconsult.de\/%20http:\/www.yoctoproject.org\/docs\/current\/bitbake-user-manual\/bitbake-user-manual.html\" target=\"_blank\" rel=\"noopener\">Bitbake-Manual<\/a><\/li>\n<li><a title=\"Bitbake Cheatsheet\" href=\"https:\/\/community.freescale.com\/docs\/DOC-94953%20\" target=\"_blank\" rel=\"noopener\">Bitbake-Cheatsheet<\/a><\/li>\n<\/ul>\n<\/div>\n<div>\n<hr align=\"left\" size=\"1\" width=\"33%\" \/>\n<div id=\"ftn1\">\n<p><a title=\"\" href=\"https:\/\/www.microconsult.de\/1637-0-Yocto-Das-geht-auch-automatisch---ESE-2015.html#_ftnref1\" target=\"_blank\" rel=\"noopener\" name=\"_ftn1\">[1]\u00a0<\/a>Alle im Dokument enthaltenen Terminal-Befehle verwenden die Struktur \u00abOrt $ Befehl Parameter<br \/>\n<a title=\"\" href=\"https:\/\/www.microconsult.de\/1637-0-Yocto-Das-geht-auch-automatisch---ESE-2015.html#_ftnref1\" target=\"_blank\" rel=\"noopener\" name=\"_ftn1\">[2]\u00a0<\/a>F\u00fcr die Beispiele wird eine Linux-Umgebung verwendet.<br \/>\n<a title=\"\" href=\"https:\/\/www.microconsult.de\/1637-0-Yocto-Das-geht-auch-automatisch---ESE-2015.html#_ftnref1\" target=\"_blank\" rel=\"noopener\" name=\"_ftn1\">[3]\u00a0<\/a>Dem Programmpfad unter Linux<\/p>\n<\/div>\n<\/div>\n<p><a title=\"Yocto: Das geht auch automatisch! (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_open_source_yocto-das_geht_auch_automatisch_bbv_software_services_egli.pdf\" target=\"_blank\" rel=\"noopener\"><strong>Beitrag als PDF downloaden<\/strong><\/a><\/p>\n<hr \/>\n<h2>Open Source &#8211; unsere Trainings &amp; Coachings<\/h2>\n<p><strong>Wollen Sie sich auf den aktuellen Stand der Technik bringen?<\/strong><\/p>\n<p>Dann informieren Sie sich\u00a0<a title=\"MicroConsult Training\" href=\"https:\/\/www.microconsult.de\/alle-trainings-termine-komplettuebersicht\/\" target=\"_blank\" rel=\"noopener\"><strong>hier<\/strong>\u00a0<\/a>zu Schulungen\/ Seminaren\/ Trainings\/ Workshops und individuellen Coachings von MircoConsult zum Thema Open Source \/ Embedded Software Engineering.<\/p>\n<p><strong>Training &amp; Coaching zu den weiteren Themen unseren Portfolios finden Sie\u00a0<a title=\"Training &amp; Beratung - alle Themen\" href=\"https:\/\/www.microconsult.de\/training-beratung\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n<hr \/>\n<h2>Open Source &#8211; Fachwissen<\/h2>\n<p>Wertvolles Fachwissen zum Thema Modellierung \/Embedded- und Echtzeit-Softwareentwicklung steht\u00a0<a title=\"Embedded- und Echtzeit-Softwareentwicklung\" href=\"https:\/\/www.microconsult.de\/embedded-und-echtzeit-softwareentwicklung\/\" target=\"_blank\" rel=\"noopener\"><strong>hier<\/strong>\u00a0<\/a>f\u00fcr Sie zum kostenfreien Download bereit.<\/p>\n<p><a title=\"Embedded- und Echtzeit-Softwareentwicklung\" href=\"https:\/\/www.microconsult.de\/embedded-und-echtzeit-softwareentwicklung\/\" target=\"_blank\" rel=\"noopener\"><strong>Zu den Fachinformationen<\/strong><\/a><\/p>\n<p><strong>Fachwissen zu weiteren Themen unseren Portfolios finden Sie\u00a0<a title=\"Fachinformationen\" href=\"https:\/\/www.microconsult.de\/fachwissen\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Baukasten f\u00fcr ma\u00dfgeschneiderte Embedded-Distributionen Autor: Simon Egli, bbv Software Services Beitrag &#8211; Embedded Software Engineering Kongress 2015 Das Yocto-Buildsystem ist ein gro\u00dfes und m\u00e4chtiges Werkzeug. F\u00fcr den Einsteiger ist es oftmals schwierig, die Zusammenh\u00e4nge des Buildsystems zu sehen, und der Start eines eigenen Projektes gestaltet sich entsprechend schwierig. Dieser Beitrag zeigt Schritt f\u00fcr Schritt den [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-8140","post","type-post","status-publish","format-standard","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Yocto: Das geht auch automatisch! - MicroConsult Academy GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microconsult.de\/en\/yocto-that-can-also-be-done-automatically\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Yocto: Das geht auch automatisch! - MicroConsult Academy GmbH\" \/>\n<meta property=\"og:description\" content=\"Baukasten f\u00fcr ma\u00dfgeschneiderte Embedded-Distributionen Autor: Simon Egli, bbv Software Services Beitrag &#8211; Embedded Software Engineering Kongress 2015 Das Yocto-Buildsystem ist ein gro\u00dfes und m\u00e4chtiges Werkzeug. F\u00fcr den Einsteiger ist es oftmals schwierig, die Zusammenh\u00e4nge des Buildsystems zu sehen, und der Start eines eigenen Projektes gestaltet sich entsprechend schwierig. Dieser Beitrag zeigt Schritt f\u00fcr Schritt den [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microconsult.de\/en\/yocto-that-can-also-be-done-automatically\/\" \/>\n<meta property=\"og:site_name\" content=\"MicroConsult Academy GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-29T13:52:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-11T04:25:20+00:00\" \/>\n<meta name=\"author\" content=\"weissblau media\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"weissblau media\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/yocto-das-geht-auch-automatisch\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/yocto-das-geht-auch-automatisch\\\/\"},\"author\":{\"name\":\"weissblau media\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"headline\":\"Yocto: Das geht auch automatisch!\",\"datePublished\":\"2025-11-29T13:52:31+00:00\",\"dateModified\":\"2026-02-11T04:25:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/yocto-das-geht-auch-automatisch\\\/\"},\"wordCount\":1659,\"commentCount\":0,\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/yocto-das-geht-auch-automatisch\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/yocto-das-geht-auch-automatisch\\\/\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/yocto-das-geht-auch-automatisch\\\/\",\"name\":\"Yocto: Das geht auch automatisch! - MicroConsult Academy GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\"},\"datePublished\":\"2025-11-29T13:52:31+00:00\",\"dateModified\":\"2026-02-11T04:25:20+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/yocto-das-geht-auch-automatisch\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/yocto-das-geht-auch-automatisch\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/yocto-das-geht-auch-automatisch\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microconsult.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Yocto: Das geht auch automatisch!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/\",\"name\":\"MicroConsult Academy GmbH\",\"description\":\"Professionelle Schulungen, Beratung und Projektunterst\u00fctzung\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.microconsult.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\",\"name\":\"weissblau media\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"caption\":\"weissblau media\"},\"sameAs\":[\"https:\\\/\\\/www.microconsult.de\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Yocto: This can also be automated! - MicroConsult Academy GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microconsult.de\/en\/yocto-that-can-also-be-done-automatically\/","og_locale":"en_GB","og_type":"article","og_title":"Yocto: Das geht auch automatisch! - MicroConsult Academy GmbH","og_description":"Baukasten f\u00fcr ma\u00dfgeschneiderte Embedded-Distributionen Autor: Simon Egli, bbv Software Services Beitrag &#8211; Embedded Software Engineering Kongress 2015 Das Yocto-Buildsystem ist ein gro\u00dfes und m\u00e4chtiges Werkzeug. F\u00fcr den Einsteiger ist es oftmals schwierig, die Zusammenh\u00e4nge des Buildsystems zu sehen, und der Start eines eigenen Projektes gestaltet sich entsprechend schwierig. Dieser Beitrag zeigt Schritt f\u00fcr Schritt den [&hellip;]","og_url":"https:\/\/www.microconsult.de\/en\/yocto-that-can-also-be-done-automatically\/","og_site_name":"MicroConsult Academy GmbH","article_published_time":"2025-11-29T13:52:31+00:00","article_modified_time":"2026-02-11T04:25:20+00:00","author":"weissblau media","twitter_card":"summary_large_image","twitter_misc":{"Written by":"weissblau media","Estimated reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microconsult.de\/yocto-das-geht-auch-automatisch\/#article","isPartOf":{"@id":"https:\/\/www.microconsult.de\/yocto-das-geht-auch-automatisch\/"},"author":{"name":"weissblau media","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"headline":"Yocto: Das geht auch automatisch!","datePublished":"2025-11-29T13:52:31+00:00","dateModified":"2026-02-11T04:25:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microconsult.de\/yocto-das-geht-auch-automatisch\/"},"wordCount":1659,"commentCount":0,"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microconsult.de\/yocto-das-geht-auch-automatisch\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microconsult.de\/yocto-das-geht-auch-automatisch\/","url":"https:\/\/www.microconsult.de\/yocto-das-geht-auch-automatisch\/","name":"Yocto: This can also be automated! - MicroConsult Academy GmbH","isPartOf":{"@id":"https:\/\/www.microconsult.de\/#website"},"datePublished":"2025-11-29T13:52:31+00:00","dateModified":"2026-02-11T04:25:20+00:00","author":{"@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"breadcrumb":{"@id":"https:\/\/www.microconsult.de\/yocto-das-geht-auch-automatisch\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microconsult.de\/yocto-das-geht-auch-automatisch\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.microconsult.de\/yocto-das-geht-auch-automatisch\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microconsult.de\/"},{"@type":"ListItem","position":2,"name":"Yocto: Das geht auch automatisch!"}]},{"@type":"WebSite","@id":"https:\/\/www.microconsult.de\/#website","url":"https:\/\/www.microconsult.de\/","name":"MicroConsult Academy GmbH","description":"Professional training, consulting and project support","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microconsult.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a","name":"weissblau media","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","caption":"weissblau media"},"sameAs":["https:\/\/www.microconsult.de"]}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/comments?post=8140"}],"version-history":[{"count":7,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8140\/revisions"}],"predecessor-version":[{"id":11611,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8140\/revisions\/11611"}],"wp:attachment":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media?parent=8140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/categories?post=8140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/tags?post=8140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}