Stromsparende ARM-basierende Embedded-Linux-Systeme für mobile Anwendungen Linux hat sich als Standardbetriebssystem für Embedded-Geräte etabliert. Embedded Linux ist aber kein festes Produkt oder Projekt, sondern bedeutet eine Vielfalt von Lösungen, die mehr oder weniger stark von dem abweichen, was auf Linux-Servern und -Desktops läuft. Um eine optimierte und auf die Kunden bedürfnisse hin getrimmte Embedded- Lösung zu erhalten, ist eine genaue Kenntnis sowohl der Hardware, als auch der Anwendung notwendig. Unsere Embedded-Linux-Spezialisten sind aufgrund jahrelanger Erfahrung in der Lage, ein Komplettsystem, das auf die Kundenbedürfnisse zugeschnitten wird, inklusive passender CE-konformer Gehäusebauformen zu entwickeln. 1 Einleitung Durch die inzwischen sehr häufig eingesetzten Embedded-Linux-Plattformen, wie in Routern, Set-Top-Boxen, etc. und der sehr breiten Unterstützung von Prozessoren diese reichen von x86 über ARM bis hin zu MIPS wurden die Hardware-Varianten nahezu unüberschaubar groß. Mit dem Open-Embedded-Projekt werden viele dieser Varianten mit dem dafür passenden Linux-System versorgt. Für die gewählte Zielplattform wird ein Repository geklont, welches im ersten Build die benötigten Cross Compiler und Pakete erstellt. Mit Bitbake wird die komplexe Hierarchie aller sogenannten Rezepte für die Erstellung von Compiler, Kernel und Userspace-Paketen erstellt und verwaltet. Die Stabilisierung des aktuellen Entwicklungsstandes muss aufgrund der sehr aktiven Update-Prozesse der Community für das eigene Gerät letztlich selbst durchgeführt werden. Um die Stabilität der resultierenden System Images zu gewährleisten, werden auf Open Embedded basierende Distributionen wie Angström verwendet, da die Packages, die in einer solchen Distribution verwendet werden, aufeinander abgestimmt werden. Der gesamte Prozess vom Hardwaredesign über die Erstellung des Embedded Linux und die Integration notwendiger Libraries bis hin zur Bereitstellung von SDK-Komponenten kann von uns genau auf die Kundenbedürfnisse zugeschnitten und umgesetzt werden. Wir können auf jeder Ebene des Systems Anpassungen und Eigenentwicklungen vornehmen; also eigene Kernel-Module Seite 1
erstellen, eigene Libraries oder SDK-Komponenten entwickeln, die zb. verschiedene Client-/Server-Übertragungsprotokolle zur Verfügung stellen. Auch eine weitere Abstrahierung mit Embedded Java oder Python kann für die Anwendungsprogrammierung durchgeführt werden und unseren Kunden die Arbeit erleichtern. 2 Grundlagen zu Embedded Linux Systemen 2.1 Linux als Embedded System OS Der Kernel eines Betriebssystems ist das zentrale Nervensystem eines Rechners. Es wird durch Bootloader wie U-Boot in den Speicher geladen und initialisiert das Kernsystem. Im Vergleich zu einem BIOS ist der Bootloader exakt an die Bedürfnisse des Systems anpassbar, wodurch sehr schnelle Boot-Zeiten ermöglicht werden. Falls die Boot-Zeit eine besonders kritische Rolle spielt, können wir auch die sequenzielle Abarbeitung des Userspace-Codes optimieren, wodurch die Boot-Zeit in Einzelfällen auf weniger als zehn Sekunden reduziert werden konnte. Auch der Kernel selbst wird bei Embedded- Systemen genau den Bedürfnissen der Applikation angepasst. Nur die benötigten Software-Komponenten sind inkludiert und es werden nur jene Hardware-Komponenten initialisiert, die für die Grundfunktionen benötigt werden. Netzwerk- Connection Management IP Autoconfig Steuerungs- Routinen CAN libpv Internet- Webkit Visualisierungs- Qt JSON-D-Bus Bridge Medien- Verwaltung gstreamer Camera Codecs Middleware- Audio Einstellungen gconf Bibliotheken glib, libudev,... Bus-Nachrichten D-Bus System- Glibc - POSIX Driver Driver Driver Linux-Kernel Driver Driver Driver OS- Abb. 1: Darstellung des Embedded Linux Software Stacks Seite 2
2.2 Systeme bauen nach Kundenbedürfnissen Für unterschiedlichen Bedürfnisse unserer Kunden, hinsichtlich Leistungsfähigkeit, Schnittstellen und anwendungsoptimiertes Embedded Linux wurde von uns ein Konzept entwickelt, das ein Prozessormodul und ein Motherboard mit Daughterboards einsetzt. Dadurch sind wir in der Lage, sehr schnell Lösungen zu entwickeln, die entweder mit einem leistungsfähigeren Prozessormodul ausgestattet werden oder spezielle Erweiterungen auf dem Motherboard (meist über Steckverbinder) erhalten. 3 Projektmanagement für Customized-Embedded-Linux-Syteme 3.1 Pflichtenheft Das Pflichtenheft umfasst je nach Projekt von der genauen Definition der Hardware-Anforderungen über Software-Anforderungen und genauem Projektplan bis hin zu einer Abnahme- Checkliste eine umfassende Dokumentation der Kundenwünsche. Dies ist die Basis für die Projektofferte und eine genaue Ressourcenplanung mit Fertigstellungstermin. Wie in Abb.2 dargestellt, legen wir schon zu Beginn eines Projektes auf normgerechte Dokumentation und Projektmanagement wert, um unseren Kunden eine verlässliche Aussage über geplante Meilensteine geben zu können. 3.2 Dokumentation Die Dokumentation umfasst alle Teile entsprechend der beauftragten Entwicklung und beginnt bei der Hardware-Dokumentation, der Embedded- Linux-OS-Dokumentation bis hin zur Abb. 2: Ausschnitt Projektplan Anwendungssoftware-Dokumentation. Dies gewährleistet für unsere Kunden, wahlweise selbständig an der Entwicklung auf allen Ebenen weiterarbeiten zu können. Seite 3
Abb. 3: Beispiel Anwendersoftware Doku Wie in Abb.3 angedeutet, wird in unseren Dokumentationen normgerecht und übersichtlich (UML-Diagramme, Sequenzdiagramme, Strukturen, Spezifikationen, etc.) die Weiterverwendung der Code-Basis bei unseren Kunden sichergestellt. Dafür stellen wir abhängig vom Projekt umfangreiche Dokumentationen und Sourcecode-Repositories zur Verfügung. 4 Das Unternehmen c.c.com c.c.com ist ein Unternehmen, das sich auf den Bereich der technischen Softwareentwicklung spezialisiert hat. Hauptgeschäftsfeld ist die Entwicklung und Qualitätssicherung anspruchsvoller und hochwertiger Software-Komponenten. Wir haben seit unserer Gründung 1998 europaweit viele erfolgreiche Projekte realisiert. Dabei waren die Aufgabengebiete sehr breit gestreut: Echtzeitsysteme, verteilte Anwendungen, Embedded Systems, komplexe Visualisierungs- und Seite 4
Steuersoftware, 3D-Simulationen und auch klassische Großprojekte in verschiedenen IT-Umgebungen. Jedes Projekt ist einzigartig sowohl in seinem Ablauf als auch in seinem Ergebnis. Erfahrungsgemäß führt ein allzu starres Festhalten an einem Schema selten zum Erfolg. Dementsprechend flexibel werden Planung und Durchführung gehalten. So individuell die Anforderungen sind, so individuell gestaltet sich auch die Lösung. Strategische Partnerschaften mit anderen Hi-Tech-Unternehmen, Fachhochschulen und Universitäten sichern c.c.com und Kunden kontinuierlichen Know-How- Zuwachs und somit ein breites Spektrum an Lösungen. Firmenname Anschrift c.c.com Andersen & Moser GmbH Technologiecenter Grambach Teslastraße 4 A - 8074 Grambach Telefon +43 316 40 95 90-0 Fax +43 316 40 95 90-20 E-Mail Web Gesellschafter Geschäftsfelder Mitarbeiter 25 office@cccom.at http://www.cccom.at Ing. Burkhard Moser Softwareentwicklung Hardwareentwicklung Verkehrstelematik Forschung 5 Literatur 5.1 Online-Quellen [1] http://www.taskit.de/produkte/stamp9g20/index.htm [2] http://www.openembedded.org/index.php/main_page [3] http://www.angstrom-distribution.org/ 6 Autoren DI Johannes Weinzerl c.c.com GmbH Tel. +43 316 40 95 90-13 E Mail: jweinzerl@cccom.at Mircea-Cristian Racasan c.c.com GmbH Tel. +43 316 40 95 90-15 E Mail: mracasan@cccom.at Seite 5