= Embedded Linux Distributionen - Das Ende der schwarzen Magie? == Motivation Frameworks für die Erstellung von embedded Linux Systemen existieren bereits seit mehr als 10 Jahren. Mit der Verbreitung von Linux im embedded Bereich gewinnen sie weiter an Bedeutung. Gleichzeitig wächst sowohl die Zahl der kommerziell verfügbaren als auch die Zahl der freien Distributionen bzw. Metadistributionen stetig. Speziell für private Anwender sowie kleine und mittelständische Unternehmen (KMU) sind frei Verfügbare Frameworks von besonderem Interesse. Die grundsätzlichen Aufgaben der Frameworks sind a) die Erstellung einer funktionsfähigen Cross-Toolchain, b) die Erstellung eines Kernels und eines Root-Filesystems und c) die Bereitstellung einer Methodik zur Anpassung des Kernels und des Root-Filesystems an das Zielsystem. Viele Softwareprojekte bereiten noch immer Probleme beim Cross-Compiling. Daher ist eine weiteres Kriterium für die Bewertung der Frameworks die Verfügbarkeit von Patches zur Korrektur der auftretenden Probleme. Ein weiterer wichtiger Punkt ist die mit dem Projekt verbundene Community. Je mehr Entwickler zu einem Projekt beitragen, desto schneller werden Fehler behoben und neue Funktionen hinzugefügt. Eine große, aktive Nutzergemeinde hilft bei der Fehlersuche sowie bei der Identifikation potentieller Features. Die untersuchten Distributionen bieten alle oben genannten Funktionen und unterstützen bereits eine Vielzahl von Architekturen und Systemen. Dabei richtet sich die Unterstützung meist danach, welche spezielle Zielstellung ein Projekt verfolgt und welche Hardware den Maintainern zur Verfügung steht. Ein weiterer Faktor ist die Philosophie hinter einem Projekt, die z. B. entscheidet, wie stark die Modifikation durch Patches ist und wie weit bestimmte Standards eingehalten werden. Beim Einsatz in Unternehmen kommen weitere Punkte hinzu. Für die Wartung bestehender Produkte sind die Abwärtskompatibilität und Versionsverwaltung eines Framework interessant. Die Arbeit im Team kann, wie auch die Arbeit mit verschiedenen Produktversionen und -merkmalen, ebenfalls durch das Framework erleichtert werden. Auch der Aufwand für die Integration neuer Soft- und Hardware Wird eigene Hardware entwickelt, ist der Aufwand in die Distribution der Wahl ebenfalls von entscheidender Bedeutung. == Praktische Umsetzung Im Rahmen eines mehrjährigen Projekts wurden projektbegleitend verschiedene freie Distributionen unter Berücksichtigung der bisher aufgezählten Punkte untersucht. Neben intensiven Betrachtungen zu Buildroot, OpenWRT, Gentoo Linux und PTXdist wurden auch OpenEmbedded und das Embedded Linux Development Kit untersucht. Als Basis für die Betrachtungen sollten für drei Hardwaresysteme je zwei Firmware-Images entstehen. Für den Einstieg sollte ein minimales Image alle Funktionen der Hardware bereitstellen sowie Netzwerkzugriff bieten. Das zweite Image stellte mit X-Server, TCL, TK und Python mit Tkinter-Modul hohe Anforderungen an die Paketauswahl. Als Hardware kamen ein PowerPC-basiertes System-on-Module, ein auf einem AVR32-Prozessor basierendes, verbreitetes Development-Kit und ein ebenfalls sehr verbreitetes FPGA-Development-Kit zum Einsatz. Je nach Notwendigkeit wurden weitere Hardwaresysteme und Architekturen genutzt. Die Hardwareauswahl lässt einen Rückschluss darauf zu, wie weit die Architekturunterstützung der einzelnen Frameworks reicht. In jedem fall waren zusätzliche Patches für bestimmte Funktionen notwendig. Ebenso wurde in allen Fällen ein eigenes Hardwaresystem hinzugefügt. Mit TCL, TK und Python mit Tkinter-Modul waren drei Softwareprojekte in der Auswahl, die beim Cross-Compilieren hohe Anforderungen an das Framework stellen. Die Integration eigener Softwarepakete zeigte, wie gut das Framework sich an eigene Bedürfnisse anpassen lässt. Für die gewählte Infrastruktur musste das Firmware-Image sowohl als Dateibaum in einem Ordner als auch als Flash-Image im JFFS2-Format vorliegen. Verteiltes Arbeiten und vorhandene Speicherplatzbeschränkungen waren weitere Eckpunkte für die Betrachtungen. == Zusammenfassung Die Erstellung der Firmware-Images konnte mit jedem Framework erfolgreich durchgeführt werden. Jedes der Systeme hat Stärken und Schwächen, die eine generelle Empfehlung unmöglich machen. Unter Berücksichtigung der eigenen Anforderungen lassen sich jedoch Vor- und Nachteile einzelner Lösungen gegeneinander abwägen.