Yocto-Projekt: Erstellen eines eigenen Betriebssystems für eingebettete Geräte
14. Juni 2020Der Elektronikmarkt wächst. Viele Unternehmen entwickeln verschiedene Projekte mit maßgeschneiderten Geräten. Diese Geräte werden als eingebettete Hardware bezeichnet. Die Leistung der Hardware hat sich weiterentwickelt, so dass viele eingebettete Lösungen mit leistungsstarker Hardware ausgestattet sind. Aus all diesen Gründen werden viele neue Geräte entwickelt, für die Unternehmen maßgeschneiderte Software und Betriebssysteme benötigen. Heutzutage entscheidet sich jeder für Linux und Yocto Project wird es ihnen ermöglichen, ein solches System effizient vorzubereiten. Mit Yocto Projket können Sie Ihre eigene Distribution für Ihre Hardware vorbereiten.
Betriebssystem im Gerät
Die meisten elektronischen Geräte sind heute eigentlich Computer:
Handys, Fernsehgeräte, Router.
Die Benutzer wissen es vielleicht nicht, aber alle diese Geräte laufen typischerweise unter GNU/Linux,
das sich zum Standard für eingebettete Hardware entwickelt hat.
Und weil Linux ein sehr hochwertiges System und eine sehr anpassbare Basis ist,
verwenden aufstrebende Unternehmen und Projekte automatisch Linux.
Jetzt wechseln auch eingefleischte Windows-Befürworter zu Linux.
Sogar Microsoft selbst unterstützt Linux.
Firmen und Entwicklung
Unternehmen wollen also GNU/Linux in ihren Geräten einsetzen und damit dem Beispiel anderer folgen.
Manchmal sind die Unternehmen unerfahren und wissen nicht, wie sie es machen sollen, und so geht jedes Unternehmen das Projekt auf seine eigene Weise an.
Die Entwicklung jedes Softwareprojekts ist eine Herausforderung, insbesondere bei Hardwareprojekten.
Ältere Entwickler sind oft mit MS DOS aufgewachsen, jüngere mit Windows, und die Unix-Philosophie ist ihnen unbekannt.
Solche Entwickler kämpfen mit der Vorbereitung des Linux-Systems und finden es schwierig, sich in der Entwicklung von Open-Source-Projekten zurechtzufinden.
Hier entstehen die ersten Probleme aus Unwissenheit.
Dabei ist die Entwicklung für Linux für den kundigen Anwender wesentlich einfacher.
Die richtige Herangehensweise ist auch auf lange Sicht wichtig.
Ein Anwender, der nur den vergoldeten Windows-Käfig kennt, wirkt bei der Entwicklung von Unix-Software oft wie ein Elefant im Porzellanladen.
Für MSDOS- und Windows-Experten ist es daher ideal, zumindest einen Grundkurs in MSDOS und Windows zu belegen.
Linux-Schulung.
Es empfiehlt sich auch, GNU/Linux als Hauptbetriebssystem auf dem Arbeitsrechner zu installieren.
Denn auch das vermittelt dem Programmierer neue Kenntnisse und Fähigkeiten.
Oder ein Unternehmen stellt junge Entwickler ein, für die Linux eine ganz natürliche Sache ist.
Welche Art von Entwicklern ein Unternehmen auch immer hat, für diese Unternehmen ist das Yocto Project, das es ihnen ermöglicht, ein maßgeschneidertes System vorzubereiten, und zwar ein universelles, so dass sie das System schnell für andere Zwecke oder sogar andere Geräte vorbereiten können. Für neuere Versionen für verschiedene Geräte. Das Yocto-Projekt vereinfacht auch die Arbeit durch die Zusammenarbeit zwischen Entwicklern, Herstellern und anderen Mitwirkenden. Dazu muss man sich nur mit dem Yocto-Projekt, der Unix-Philosophie und Open-Source vertraut machen.
Linux und Embedded
Ich persönlich bin auf die Embedded-Entwicklung für Linux gestoßen, als ich mir ein kostenloses Smartphone zugelegt habe OpenMoko Neo Freerunner. Damals programmierte ich zunächst in C Sprache für ARM Mikroprozessoren. Ich portierte erfolgreich die Kommunikationsbibliotheken und machte Schnittstellen zu Peripheriegeräten, mit denen ich dann kommunizieren konnte. Bislang unterstützt der Hersteller der betreffenden Peripheriegeräte Linux nicht. Aber dank des Drucks der Kunden und der Arbeit der Community zeigt er nach zehn Jahren immerhin, wie seine Geräte mit Linux zu verbinden, wie ich es einst tat mit RasberryPI verbinden.
Damals wurde das System-Image mit Tools/Projekten wie
openembedded,
buildroot oder
LTIB.
Ich habe mit all diesen Tools gearbeitet...
Die große Veränderung kam, als Linux das HW (Board) Definitionssystem schuf
und als das Yocto Projekt gegründet wurde.
Dadurch haben die Entwickler weniger Arbeit, um das System für andere HW vorzubereiten,
Board oder die Modifizierung des Systems nach den Bedürfnissen des Kunden.
Was ist Yocto Project
Das Yocto Project ist ein Open-Source-Gemeinschaftsprojekt,
das sich an Entwickler von eingebetteten Linux-Geräten richtet.
Das Yocto-Projekt verwendet unter anderem OpenEmbedded, das das BitBake-Tool nutzt, um komplette Linux-Images zu erstellen.
Die Komponenten von BitBake und OpenEmbedded werden kombiniert, um eine Referenz-Build-Umgebung zu erstellen, die auf dem Rechner des Entwicklers ausführbar ist.
Mit dieser Umgebung kann man dann vordefinierte Definitionen und Anpassungen verwenden, um ein
komplettes System
für ein bestimmtes eingebettetes Gerät einschließlich Ihrer Anwendungen zu erstellen.
Mit Hilfe des Yocto-Projekts kann jeder seine eigene Linux-Distribution erstellen, die auf seine Hardware und seine spezifischen Bedürfnisse zugeschnitten ist.
Gleichzeitig ermöglichen die Prinzipien der Yocto-Entwicklung die Wiederholbarkeit des Prozesses und gewährleisten
Selbstdokumentation
Projekt.
Ein gemeinsames System ist bereits von anderen vor uns erstellt worden, so dass die erste Probenvorbereitung sehr einfach ist.
Es gibt fertige Definitionen für die Kompilierung und Integration von Programmen, so dass Sie nur angeben müssen, was Sie in Ihrem System haben wollen.
Das System kann in Form eines Kernels und eines System-Images vorliegen, das in den Flash-Speicher hochgeladen wird.
Programme werden auch als Pakete kompiliert, die erst später in das System installiert werden können
Es besteht also keine Notwendigkeit, das gesamte Systemabbild neu zu erstellen und das Gerät zu flashen, wenn Sie nur ein
Benutzerprogramm.
Viele Plattformen sind auch vordefiniert, und jede neue Plattform sollte von ihrem Hersteller vordefiniert werden.
Eine solche Definition nennt man ein Board Support Package (BSP).
Die Konfiguration, wie ein System und einzelne Programme kompiliert und daraus das System und die Packages gebaut werden sollen wird in Dateien, den sogenannten Rezepten, festgelegt. Diese Dateien werden dann von der BitBake, das den gesamten Prozess ausführt und verwaltet.
Video Yocto Projekt
Wie wird Yocto gestartet?
Wie startet man Ihr erstes System erstellen mit Yocto erstellen, ist im englischen Tutorial beschrieben. Zu Testzwecken kann man einfach ein System für x86 vorbereiten, das dann mit den QEMU-Emulator.
Kurz gesagt besteht der Prozess der Vorbereitung und Erstellung eines benutzerdefinierten Systems aus den folgenden Schritten:
- Herunterladen der Quelldaten des Yocto-Projekts.
- Prüfen der Systemvoraussetzungen und Installieren der notwendigen GCC-Make-Tools usw.. Außerdem braucht man genügend Speicherplatz, um alles zu erledigen, denn die Quelldaten sind groß und zahlreich, und beim Kompilieren und Erstellen des Systemabbilds werden weitere Dateien erstellt.
- Konfigurieren Sie, was Sie in welcher Version und für welche Plattform kompilieren wollen.
- Kompilierungs- und Build-Tools zum Kompilieren und Bauen von Programmen und dem Zielsystem. Cross-Compilation (= Kompilieren auf einer anderen Architektur als dem Zielsystem) wird ebenfalls unterstützt. Sie müssen also keine Tool-Chain (=Werkzeug zum Kompilieren und Bauen des Systems für das Gerät) herunterladen, es wird für Sie angepasst.
- Kompilieren des Kernels, der Tools und Programme, Bauen des Pakets und des Systems und Bauen des System-Images, das auf das Gerät geladen werden kann.
Zusammenarbeit
Das Yocto-Projekt ermöglicht eine effektive Zusammenarbeit in Teams und Unternehmen. Ein Einzelner muss nicht ein bereits fertiges Projekt erstellen. Das Yocto-Projekt ermöglicht es Hardware-Herstellern, Geräte mit Linux-Unterstützung und fertige Demos zu liefern System. Das vereinfacht und beschleunigt den Start der Entwicklung. Der Build-Prozess des Systems kann automatisiert werden. Nicht zuletzt ist ein Projekt, das nach den Prinzipien von Yocto Project entwickelt wurde, selbstdokumentierend.
Links
Artikel zu einem ähnlichen Thema
VMware vs. Proxmox: Leistungsvergleich
GitLab CI/CD: Testautomatisierung und Anwendungsbereitstellung
VPS von VMware zu Proxmox migrieren
VMware-Lizenzierungsänderung
Ausführen von Microsoft SQL Server unter Linux
Sicherung: der Proxmox Backup Server
Linux als Router und Firewall
Hochladen eines Docker-Images in die Docker-Registry
Linux: Verwaltung logischer Datenträger
Linux-Software-RAID
Ausführen einer Webanwendung hinter einem Proxy
Migration von Postfächern
Mehrstufige Docker-Erstellung
Sichern Ihrer Daten durch Einschalten des Computers
Podman
Importieren von Windows in die Proxmox-Virtualisierung
Docker und PHP-Mail
Proxmox-Virtualisierung
Docker und Cron
Lenovo ThinkPad X1 Carbon: Inbetriebnahme des LTE-Modems EM7544
Vorbereiten eines Linux-Servers für die Ausführung einer Webanwendung in Python
Wie man eine schlechte Dateifreigabeleistung in Docker behebt
Wie man Docker richtig einsetzt
Installation von Linux auf einem dedizierten HPE ProLiant DL320e Server
Wie man eine Webanwendung einem Belastungstest unterzieht
Warum das JFS-Dateisystem verwenden
Booten von einer 4TB-Festplatte mit GTP unter UEFI
Btrfs-Dateisystem
Raspberry PI
WINE - Ausführen von Windous Programmen unter Linux
GNU/Linux-Betriebssystem
Newsletter
Wenn Sie daran interessiert sind, gelegentlich Neuigkeiten per E-Mail zu erhalten.
Sie können sich registrieren, indem Sie Ihre E-Mail-Adresse eingeben
News-Abonnement.
+