Ich arbeite gerade an eine Projekt, das viele verschiedene Hardwaren mit einem Yocto build bedienen will. Dabei habe ich ein paar Tricks gefunden, die ich hier gerne teilen möchte.
VSCode Settings automatisch erstellen
Mit dem kleine Script oe-setup-vscode könnt ihr VSCode zur Verwendung mit Yocto konfigurieren. Wenn ihr euere Yocto Umgebung ertellt habt, müsst ihr lediglich folgenden Befehl ausführen
build oe-setup-vscode <path to .vscode folder> <yocto build directory>
You had no /home/bastian/Projects/yocto/.vscode configuration.
These configuration files have therefore been created for you.
Damit wird die Extension yocto-bitbake vorgeschlagen, Python Vorschläge mit poky Code gefüttert, Dateiendungen .conf und .inc mit bitbake Syntax gehighlightet und VSCode so eingestellt mit den vielen Dateien eines Yocto Projekts klar zu kommen.
Überblick über die erzeugten Pakete
Mit dem Tool oe-pkgdata-browser könnt ihr sehen, welche Pakete von welchem Rezept gebaut wurden.
Auch die zu dem Paket gehörigen Dateien die im Image installiert werden sind aufgelistet
Warum wurde ein Paket installiert?
Wenn ihr für euer Image eine .dot Datei erstellt habt, könnt ihr mit oe-depends-dot herausfinden welches Paket dazu geführt hat ein anderes zu installieren.
oe-depends-dot -k busybox -w task-depends.dot
Because: core-image-minimal packagegroup-core-boot
core-image-minimal -> packagegroup-core-boot -> busybox
Testergebnisse des OEQA Tests aufbewahren und vergleichen
Nachdem ihr ein ptest Lauf ausgeführt habt, könnt ihr mit Hilfe von resulttool Die Testergebnisse direkt in ein git repository comitten. So fallen Änderungen im Testergebnis direkt auf.
resulttool store tmp/log/oeqa/testresults.json ../tests
INFO: Reading files from tmp/log/oeqa/testresults.json
INFO: Found 1 revisions to store
INFO: Storing test result into git repository ../test
INFO: Read local tags only, some remote tags may be missed
INFO: Committing data into to branch master
INFO: Updating /home/bastian/Projects/yocto/test HEAD to latest commit
INFO: Creating tag master/75102-g28fd497a26bdcc12d952f81436a6d873d81cd462/0
Um zu so einem Testergebnis zu kommen müsst ihr in eurer Konfiguration beispielsweise der local.conf diese Optionen hinzufügen
EXTRA_IMAGE_FEATURES ?= "debug-tweaks ptest-pkgs"
IMAGE_INSTALL += "ptest-runner"
Um den Test direkt im Anschluss eines Builds durchzuführen könnt ihr diese Optionen einschalten
IMAGE_CLASSES += "testimage testsdk"
TESTIMAGE_AUTO:qemuall = "1"
Anschließend wird nach einem bitbake-Lauf das erstelle Image in qemu gestartet und der Test durchgeführt. Das Testergebnis liegt dann in build/tmp/logoeqa/testresults.json.
Gibt es updates für meine Pakete?
Um herauszufinden ob es neuer Versionen der Softwarepakete gibt, kann das Werkzeug devtool
eingesetzt werden. Entweder es wird ein spezielles Paket angegeben, oder es werden alle bekannten Pakete in allen Layern überprüft.
devtool check-upgrade-status
Das läuft für eine ganze Weile und gibt dann eine Liste der Pakete, die bereits eine neuere Version haben.