Embedded Linux Portierung auf mobiles Datenerfassungsterminal Ole Reinhardt <ole.reinhardt@kernelconcepts.de>
Embedded = Eingebettet, Verborgen? Embedded Linux Embedded = Eingebettet, Verborgen?
Embedded = Eingebettet, Verborgen? Nein! Embedded Linux Embedded = Eingebettet, Verborgen? Nein!
Embedded Linux Embedded Linux eignet sich auch für Endbenutzergeräte... z.B. Skeye.Integral von Höft&Wessel
Embedded Linux Vorteile von Linux als Betriebssystem: Unabhängige Lösung Einfache Integration Schnelle / Kundenspezifische Anpassung Applikationsentwicklung: Gleiche APIs wie auf dem PC Großer Fundus an bewährter Software und Programmbibliotheken Plattformunabhängigkeit
Embedded Linux auf Skeye.Integral Das Ziel: Vollständiger Ersatz für Windows CE.NET 4.20 und den Bootloader Die Lösung: ARM Linux Kernel 2.4.25 Familiar Linux Distribution GPE Desktop Enviroment
Embedded Linux auf Skeye.Integral Die Plattform: StrongARM SA1110 206Mhz, SA1111 Companion 64MB RAM, 32 NAND Flash, 1 MB NOR Flash 2x CF Steckplatz, Laserscanner, Tastatur 240x320 16Bit TFT Display USB Host und Client IR und RS232 Schnittstelle, LiIon Akku
Die Baustelle Arbeitsschritte bei der Portierung: Entwicklung des Bootloaders Anpassen des ARM Linux Kernels Entwicklung eigener Treiber für spezielle Hardware Erstellen einer eigenen Linux Distribution Entwicklung / Anpassung des GUI Integration des Gesamtsystems
Die Baustelle: Bootloader Wir verwenden den handhelds.org Bootloader Nötige Anpassungen: Hardwareinitialisierung (SA1110, SA1111, FPGA, RAM, Flash, Display) Gerätespezifische Funktionen in der Bootloader Konsole Kundenspezifische Anpassung der Bedien- oberfläche des Bootloaders
Die Baustelle: Kernel Grundlage: ARM Linux Kernel 2.4.25 Nötige Anpassungen: Eigenen Gerätetyp definieren Hardwareinitialisierung Treiber und proc Interface für den FPGA NAND Flash Treiber ...
Die Baustelle: Kernel Fortsetzung... Displayinitialisierung SA1111 Treiber anpassen (USB Host, PCMCIA) Barcodescannertreiber Tastaturtreiber Treiber für IR Interface (eigenes Protokoll)
Die Baustelle: Kernel Schwierigkeiten: Zeitkritische Hardware Powermanagement FPGA: PCMCIA, USB, NAND-Flash... IR-Protokoll
Die Baustelle: Distribution Familiar Linux Distribution Linux Distribution für embedded Geräte Geringer Memory Footprint: Busybox, Tiny X (X Window System), ... Ausgewählte Bibliotheken Ausgewählte Tools Dennoch: Umfangreiche Funktionalität und 100% Kompatibilität Netzwerk- und Systemtools, grafische Benutzerumgebung
Die Baustelle: GUI GPE: G Palmtop Enviroment GPE V2.6 Grafische Benutzeroberfläche basierend auf offenen Standards. 100% freie Software, GTK+ basiert Closed source Software möglich Einfache Applikationsentwicklung Existierende GTK Software läuft ohne / mit geringen Änderungen Einfaches aber sehr funktionales User Interface PIM Applikationen, Programm manager, SQL Datenbank, Barcode Scanner Applikation, Control Panel uvm... Netzwerktransparenz, Display Migration GPE V2.6
Verwendete Tools Wofür brauchen wir die Tools? Bootloader Entwicklung Kernel Portierung / Anwendungsportierung Distributionserstellung
Verwendete Tools: Bootloader Compiler: arm-linux-gcc, Booloader Source-Code Windows Bootloader: Programm zum Laden des Linux Kernels aus Windows CE heraus. Z.B.: Linexec, Haret (für Xscale) JTAG Tools: JTAG Tool des OpenWinCE Projektes
Verwendete Tools: Kernel Dokumentation: Schaltpläne, Registerdokumentation, Datenblätter Literatur: Linux Device Drivers, 2nd Edition by Alessandro Rubini, Jonathan Corbet Toolchain: Sammlung von Programmen, Tools und Libraries die zur Entwicklung benötigt werden. z.B. handhelds.org Toolchain/Skiff Toolchain, OE Toolchain
Verwendete Tools: Distribution Open Embedded Build enviroment Metadata repository und Build enviroment für embedded Linux Distributionen Enthält Compiler und Laufzeitbibliotheken Arbeitet mit Paketbeschreibungen (Metadaten) Verwaltet Abhängigkeiten Verwaltet beliebige unabhängige Zielplattformen und Build Tools. Nicht auf eine Plattform spezialisiert
Verwendete Tools: Distribution Open Embedded Build Enviroment OE Core Unabhängig von Zielplattform Shared classes Paket Metadaten Abhängig von Zielplattform Strategie Konfiguration
Vielen Dank für die Aufmerksamkeit. Haben Sie Fragen?