So erstellen Sie Ihre eigene Linux-Distribution mit Yocto auf Ubuntu
In diesem Artikel liegt unser Fokus auf der Erstellung einer minimalen Linux-Distribution mit dem Yocto-Projekt auf der Ubuntu-Plattform. Das Yocto-Projekt ist in der Embedded-Linux-Welt wegen seiner Flexibilität und Benutzerfreundlichkeit sehr bekannt und hat zum Ziel, eine Linux-Distribution für Hersteller von embedded Hard- und Software zu schaffen. Eine neue minimale Linux-Distribution wird für qemu als (qemu ist ein Basis-Software-Emulator) Zielmaschine erstellt und wir werden sie in qemu ausführen.
Voraussetzungen für die Entwicklungsmaschine
- Mindestens 4 – 6 GB RAM.
- Neuestes Ubuntu OS (16.04 LTS in diesem Fall).
- Mindestens 60-80 GB freier Speicherplatz auf der Festplatte.
- Installation der folgenden Pakete vor der Erstellung einer neuen Linux-Distribution.
- Laden Sie die neueste Yocto (Poky, das ist eine minimale Entwicklungsumgebung) stabile Niederlassung herunter.
apt-get update
apt-get install wget git-core unzip make gcc g++ build-essential subversion sed autoconf automake texi2html texinfo coreutils diffstat python-pysqlite2 docbook-utils libsdl1.2-dev libxml-parser-perl libgl1-mesa-dev libglu1-mesa-dev xsltproc desktop-file-utils chrpath groff libtool xterm gawk fop
Wie unten gezeigt, wird für die Installation der erforderlichen Entwicklungspakete fast 1 GB Größe benötigt.
In diesem Tutorial wird die „morty“ stabile Version von poky auf dem System geklont.
git clone -b morty git://git.yoctoproject.org/poky.git
Gehen Sie in das Verzeichnis „poky“ und führen Sie den folgenden Befehl aus, um einige Variablen für die Yocto-Entwicklung zu setzen/exportieren.
source oe-init-build-env
Wie unten gezeigt, wird nach dem Ausführen des offenen eingebetteten (oe) Build Environment Skripts der Pfadort im Terminal in ein „build“-Verzeichnis für die weitere Konfiguration und Kompilierung der neuen Distribution geändert.
Der obige Screenshot zeigt, dass die Datei „local.conf“ im Verzeichnis „conf“ erstellt wird. Dies ist die Konfigurationsdatei für yocto, die Details des Zielcomputers und des SDK für die gewünschte Architektur etc. spezifiziert.
Wie unten gezeigt, Einstellung des Zielrechners „qemux86-64“.
Entkommentieren Sie folgende Parameter in der Datei „local.conf“, wie in den Screenshots gezeigt.
DL_DIR ?= "${TOPDIR}/downloads"
SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
TMPDIR ?= "${TOPDIR}/tmp"
PACKAGE_CLASSES ?= "package_rpm"
SDKMACHINE ?= "i686"
Wie unten gezeigt, setzen Sie ein leeres Passwort für das Yocto-basierte Linux und fügen Sie die folgenden Parameter in die local.conf-Datei ein. Andernfalls kann sich der Benutzer nicht in der neuen Distribution anmelden.
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
Wir verwenden kein GUI-Tool wie Toaster (Kochfeld wird nicht mehr unterstützt), um Linux OS zu erstellen.
Yocto Zusammenstellung und Aufbau Prozess
Führen Sie nun den folgenden Befehl des Bitbake-Dienstprogramms aus, um den Download und die Kompilierung von Paketen für den ausgewählten Zielcomputer zu starten.
bitbake core-image-minimal
Es ist wichtig, den obigen Befehl als normalen Linux-Benutzer und nicht als Root-Benutzer auszuführen. Wie im folgenden Screenshot gezeigt, wird ein Fehler erzeugt, wenn Sie den Bitbake-Befehl als root-Benutzer ausführen.
Führen Sie erneut den Export des Skripts für Umgebungsvariablen (oe-init-build-env) aus und führen Sie den gleichen Befehl erneut aus, um den Download- und Kompilierungsprozess zu starten.
Wie unten gezeigt, ist der erste Schritt des Build-Skript-Dienstprogramms, das Rezept zu analysieren.
Der folgende Screenshot zeigt den Abschluss des Parsing-Schritts des Build-Skripts. Es zeigt auch die Details des Build-Systems, auf dem die neue Yocto-basierte Distribution erzeugt wird.
Nach dem Herunterladen des SDK und der notwendigen Bibliotheken ist der nächste Schritt das Herunterladen und Kompilieren der Pakete. Der folgende Screenshot zeigt die Aufgabe für die neue Verteilung. Dieser Schritt dauert 2-3 Stunden, da er zuerst die benötigten Pakete herunterlädt und dann für die neue Linux-Distribution kompiliert.
Der folgende Screenshot zeigt die Fertigstellung der Aufgabenliste.
Die kompilierten neuen Images für den Zielmaschinentyp „qemux86-64“ befinden sich im Pfad „build/tmp/deploy/images/images/qemux86-64“, wie unten gezeigt.
Wie unten gezeigt, führt der obige Befehl zu einem Fehler, wenn er im Putty ausgeführt wird.
Der obige Befehl wird erneut innerhalb des Terminals über rdp auf der Ubuntu-Plattform ausgeführt.
Ein weiterer Bildschirm für den qemu-Emulator für die neue yocto-basierte Linux-Distribution wird geöffnet.
Der Anmeldebildschirm der neuen Distribution ist unten dargestellt, der auch die Referenzversion des Yocto-Projekts zeigt. Der Standardbenutzername ist root und ein leeres Passwort.
Melden Sie sich schließlich in der neuen Distribution mit root-Benutzername und leerem Passwort an. Wie im folgenden Screenshot gezeigt, werden grundlegende Befehle (date, ifconfig und uname) in der Minimalversion von Linux ausgeführt.
Der Zweck dieses Artikels ist es, die Vorgehensweise bei der Erstellung einer neuen Linux-Distribution mit dem yocto-Projekt zu verstehen.