Yocto – SDK + IDE konfigurieren

Für die Programmierung eigener Programme für das Yocto-Image, mit dem Ziel der Ausführung auf dem Raspberry Pi, ist zunächst das SDK erforderlich. Zu diesem Zweck wird ein weiteres Image erstellt, das auf das erste Image aufbaut. Das Resultat ist ein Image für die SD-Karte, das eine geringe Größe hat, aber auch ein vollständiges SDK, um alle benötigten Softwarequellen zur Verfügung zu haben.

Die Konfiguration des zweiten Images erfolgt wiederum im Verzeichnis meta-raspilab/recipes-core/images. Es hat sich als vorteilhaft erwiesen, die identische Bezeichnung des Images zu verwenden, wobei lediglich die Bezeichnung -dev ergänzt wird.

Das SDK kann ebenfalls mit bitbake erstellt werden. Dazu ist in der Docker-Umgebung folgende Anweisung auszuführen:

Die Erstellung des Software Development Kits (SDK) erfordert einen erheblichen Zeitaufwand und einen hohen Speicherbedarf, sowohl Arbeitsspeicher als auch Festplattenspeicher. Das System sollte über 32 GB Arbeitsspeicher und 400 GB freien Festplattenspeicher verfügen.

Im Falle eines Absturzes des Rechners oder des Docker-Containers kann die Erstellung an der entsprechenden Stelle wieder aufgenommen werden. Dazu ist es erforderlich, den Docker-Container neu zu starten, das Script zur Initialisierung der Yocto-Umgebung auszuführen und die Erstellung des SDKs fortzusetzen.

Sollte der Build-Prozess fortgesetzt werden, können unter Umständen Fehlermeldungen ausgegeben werden, da ein oder mehrere Pakete nicht vollständig erstellt werden konnten. In einem solchen Fall besteht die Möglichkeit, die fehlerhaften Pakete in einen sauberen Zustand zurückzusetzen.

Nach erfolgreicher Erstellung des SDK befindet sich das Installationsscript für das Hostsystem im Verzeichnis ~/yocto/rpi-build/tmp/deploy/sdk.

Die Ausführung des Installationsskripts wird im Hostsystem vorgenommen.

Im darauffolgenden Schritt erfolgt die Einrichtung der IDE. Da die Software für den Raspberry Pi mit dem Qt Creator erstellt werden soll, wird im Folgenden die Konfiguration des Kits erläutert. Es ist von essentieller Wichtigkeit, dass vor dem Start der IDE das von dem Installationsscript angegebene Script zur Initialisierung der Build-Umgebung auf dem Hostsystem ausgeführt wird.

Die Konfiguration des Kits befindet sich im Menü Bearbeiten > Einstellungen...
Der Debugger und der Compiler sollten automatisch gefunden worden sein.

Für den Debugger lautet der Pfad:
~/yocto/SDK/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gdb

Der Compiler sollte unter folgenden Pfaden gefunden werden, dabei wurde ein C-Compiler und ein C++-Compiler gefunden.
~/yocto/SDK/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc
~/yocto/SDK/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++

Die Qt-Version bzw qmake6 wurde sehr wahrscheinlich nicht automatisch gefunden. Mit der Schaltfläche Hinzufügen kann eine neue Qt-Version angegeben werden.
Der Name kann wie folgt gewählt werden: Qt %{Qt:Version} (Raspberry Pi 4-64)

Als qmake-path wird folgender Pfad gewählt: ~/yocto/SDK/sysroots/x86_64-pokysdk-linux/usr/bin/qmake6

Es ist darauf zu achten hier das Sysroot für das Hostsystem zu verwenden ist. Im Sysroot des Zielsystems wird sich kein qmake6 befinden, bzw. liesse sich damit nur auf dem Zielsystem arbeiten.

Im letzen Schritt wird nun das Kit angelegt. Hier wird ein Name vergeben, das Sysroot, der Compiler, Debugger und die Qt-Version eingetragen.

Beim Sysroot ist dieses mal darauf zu achten das hier das Sysroot des Zielsystems verwendet wird.

Die Einrichtung kann mit der Schaltfläche Übernehmen bzw. Ok abgeschlossen werden, die IDE ist nun bereit.