Bei OpenEmbedded handelt es sich um eine Ansammlung von Metainformationen und Konfigurationsdateien die von BitBake verwendet werden, um ein Linux-Image für ein bestimmtes Gerät zu erzeugen oder Softwarepakete für das selbige.
Inhaltsverzeichnis |
Um für den Sharp Zaurus, einem PDA, auf dem standardmäßig Linux installiert ist, ein neues Betriebssystem zu schaffen, fing Chris Larson an, ein eigenes Image mit Kernel herzustellen, das näher an den Bedürfnissen der Entwickler war. Um die immer komplexer werdende Erstellung verwalten zu können, wurde OZ buildroot geschaffen. Zur gleichen Zeit existierten andere Projekte, um für andere PDAs Linuxdistributionen zu schaffen, wie zum Beispiel für SimPads von Siemens oder iPAQs von Compaq. In vielen dieser Projekte fanden gleiche oder ähnlich Entwicklungen statt. Um diese zusammenzufügen, wurde OpenEmbedded geschaffen, in dem heute die meisten derartiger Projekte integriert sind. Inzwischen findet man in OpenEmbedded nicht nur PDA Projekte sondern auch Projekte für Router, Receiver (z.B. Dreambox), Mobiltelefone (z.B. Openmoko) und ähnliche Hardware.
Die Konfiguration lässt sich in folgende Abschnitte gliedern:
In den allgemeinen Konfigurationen wird festgelegt welche Umgebungsvariablen innerhalb von BitBake bereitgestellt werden sollen und welche Werte diese enthalten. Darüber hinaus wird festgelegt für welches Zielsystem welche Distribution erzeugt werden soll, wo die temporären Dateien während eines Build abgelegt werden sollen, sowie einige Einstellungen zur Optimierung.
In einer Maschinenbeschreibung wird festgelegt, welche Architektur das Zielsystem hat (z.B. x86, ARM-Architektur), welcher Kernel verwendet werden soll und welche zusätzlichen Pakete notwendig sind, um ein minimales lauffähiges Betriebssystem-Image zu erzeugen.
In einer Distributionbeschreibung wird festgelegt welcher Typ von welchen Bibliotheken in welcher Version verwendet werden soll. Zum Beispiel ob das System auf der uclibc oder der glibc basieren soll und welcher Compiler zum Erzeugen der Programmpakete verwendet werden soll.
In den Paketbeschreibungen wird beschrieben welche Schritte notwendig sind um die Quellen einer Software zu übersetzen und diese in ein Paket zu verpacken.