GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Am häufigsten durchgeführte Operationen in Yocto

Das Yocto-Projekt ist ein Builder für eingebettete Linux-Distributionen, der mehrere andere Open-Source-Projekte nutzt. Eine Linux-Distribution ist eine Sammlung von Softwarepaketen und Richtlinien, und es sind Hunderte von Linux-Distributionen verfügbar. Die meisten davon sind nicht für eingebettete Systeme konzipiert und ihnen fehlt die Flexibilität, die erforderlich ist, um die angestrebten Footprint-Größen und Funktionsoptimierungen zu erreichen, und sie sind nicht gut für Systeme mit begrenzten Ressourcen geeignet.

Im Gegensatz dazu ist das Yocto-Projekt per se keine Distribution; Es ermöglicht Ihnen, eine Linux-Distribution zu erstellen, die für Ihr spezielles eingebettetes System entwickelt wurde. Das Yocto-Projekt bietet eine Referenzdistribution für eingebettetes Linux namens Poky.

Dem Yocto-Projekt liegen die Projekte BitBake und OpenEmbedded-Core (OE-Core) zugrunde. Zusammen bilden sie das Yocto-Build-System, das die Komponenten erstellt, die für ein eingebettetes Linux-Produkt benötigt werden, nämlich:

  • Ein Bootloader-Image
  • Ein Linux-Kernel-Image
  • Ein Root-Dateisystem-Image
  • Toolchains und Software Development Kits (SDKs) für die Anwendungsentwicklung

Damit deckt das Yocto Project sowohl die Bedürfnisse von System- als auch von Anwendungsentwicklern ab. Wenn das Yocto-Projekt als Integrationsumgebung für Bootloader, den Linux-Kernel und User-Space-Anwendungen verwendet wird, bezeichnen wir dies als Systementwicklung.

1. Um die Menükonfiguration des Linux-Kernels zu öffnen (hier verwende ich die Meta-Intel-Schicht), führen Sie die folgenden Befehle aus.

bitbake -c menuconfig linux-intel

Wenn Sie den Yocto-Kernel verwenden, lautet dies:

bitbake -c menuconfig linux-yocto

2. Um zu überprüfen, ob Ihr bbappend-Rezept von Bitbake geparst wird, führen Sie den folgenden Befehl aus:

bitbake-layers show-appends

3. Um ein bestimmtes Paket zu Ihrem Root-Dateisystem hinzuzufügen.

Öffnen Sie Ihre local.conf-Datei und fügen Sie den Rezeptnamen unten hinzu:

IMAGE_INSTALL += "recipe-name"

Zum Beispiel:

IMAGE_INSTALL += "libusb"

oder

IMAGE_INSTALL_append = "libusb"

Wenn Sie möchten, dass dieses Paket nur in einem bestimmten Image enthalten ist, dann

IMAGE_INSTALL_append_pn-[image-name] = "recipe-name"

Zum Beispiel:

IMAGE_INSTALL_append_pn-core-image-sato = "libusb"

4. Um ein Kernel-Modul in Ihr Root-Dateisystem aufzunehmen:

MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "kernel-module-cp210x"

5. So laden Sie das Modul automatisch beim Booten:

KERNEL_MODULE_AUTOLOAD += "cp210x"

6. Befehl zum Überprüfen der Liste der verfügbaren Bilder.

Führen Sie den folgenden Befehl in Ihrem Quellverzeichnis aus:

$ ls meta*/recipes*/images/*.bb

7. Befehl zum Ausführen des generierten Bildes in QEMU:

$ runqemu [machine] [zImage] [filesystem]

Zum Beispiel:

$ runqemu qemux86 core-image-minimal

8. Befehl zum Auflisten der verfügbaren Maschinen:

$ ls meta*/conf/machine/*.conf

9. Befehl zum Generieren des SDK für ein bestimmtes Image:

$ bitbake [imagename] -c populate_sdk

Zum Beispiel:

$ bitbake core-image-full-cmdline -c populate_sdk

10. Reihenfolge, in der alle ausgeführten Aufgaben gespeichert werden in:

[build directory]/tmp/work/[machine toolchain]/[package name]/[package version]/temp/log.task_order

Zum Beispiel:

build/tmp/work/corei7-64-poky-linux/grep/3.1-r0/temp/log.task_order

11. Generieren Sie Abhängigkeitsbauminformationen in der Punktsyntax:

$ bitbake -g core-image-minimal

Der obige Befehl generiert ein Abhängigkeitsdiagramm. Bitbake erstellt die Dateien pn-buildlist, Recipe-depends.dot und task-depends.dot.

  • pn-buildlist :Einfache Liste von Paketen, die gebaut werden sollen
  • rezeptabhängig.dot :Abhängigkeiten zwischen Rezepten anzeigen
  • task-depends.dot :Zeigt Abhängigkeiten zwischen Aufgaben an.

12. Zeigt Umgebungsvariablen an:

$ bitbake -e [recipe/target name]

Zum Beispiel:

$ bitbake -e core-image-minimal | grep ^SDKMACHINE

13. Aktivieren Sie die ausführliche Ausgabe von Shell-Tasks:

$ bitbake -v [recipe/target name]

Zum Beispiel:

$ bitbake -v core-image-minimal

14. Bitbake auch nach Fehler fortsetzen. Dies ist nützlich, wenn Sie einen Build gestartet haben und zum Mittagessen gegangen sind und nicht möchten, dass der Bitbake anhält, wenn er keine Datei über das Internet abrufen kann.

$ bitbake -k [target]

Zum Beispiel:

$ bitbake -k core-image-minimal

15. Erzwinge, dass das Ziel ausgeführt wird, selbst wenn sstate-cache dafür verfügbar ist.

$ bitbake -f [target/recipe name]

Zum Beispiel:

$ bitbake -f busybox


Linux
  1. Top 5 der stabilsten Linux-Distributionen im Jahr 2022

  2. Laden Sie den Spickzettel für die OpenStack-Befehlszeilenschnittstelle herunter! – Am häufigsten verwendete Befehle

  3. N häufigste Wörter in einer Datei finden?

  4. Durchführen von atomaren Schreibvorgängen in einer Datei in Bash?

  5. Befehlszeilenoperationen für elliptische Kurven

Bash Math Operationen (Bash Arithmetik) erklärt

Bash-Anfängerserie Nr. 6:Zeichenfolgenoperationen in Bash

Apache HTTP-Server – am häufigsten verwendete Konfigurationsanweisungen

lsof :Am häufigsten verwendete Beispiele

GNUPLOT kann nicht hineinzoomen

Ungerade Ergebnisse bei base64-Operationen