Suchen

3U-CPCIe-Rechner mit µLinux Footprint-optimiert und lizenzfrei

Autor / Redakteur: Volker Koch, Balázs Tóth* / Holger Heller

Für sein 3U CompactPCI-Express CPU-Board ICPe-PM2e setzt Inova Computers das Linux-Betriebssystem µLinux ein. Es belegt nur 2,5 MByte des 4 MByte Flash-Speichers. Rund 1 MByte belegt der Kernel, 1,5 MByte benötigt die Intitial RAM Disk. Die restlichen bis zu 1,5 MByte verbleiben dem Anwender.

Firmen zum Thema

Linux-Technologie für Embedded-Systeme ermöglicht die preisgünstige Verbindung von CompactPCI Express mit dem weit verbreiteten Open-Source-Betriebssystem.
Linux-Technologie für Embedded-Systeme ermöglicht die preisgünstige Verbindung von CompactPCI Express mit dem weit verbreiteten Open-Source-Betriebssystem.
( Archiv: Vogel Business Media )

Für sein 3U CompactPCI-Express CPU-Board ICPe-PM2e setzt Inova Computers das footprint-optimierte und lizenzfreie Linux-Betriebssystem µLinux ein, das nur 2,5 MByte des 4 MByte großen Flash-Speichers belegt – rund 1 MByte belegt der auf Größe optimierte und angepasste Kernel; 1,5 MByte benötigt die Intitial RAM Disk. Die verbleibenden bis zu 1,5 MByte können vom Anwender für spezielle Aufgaben genutzt werden. Bei der Optimierung und Anpassung von µLinux wurden ausschließlich vorhandene Komponenten verwendet. Dabei war es nicht notwendig, neue Komponenten zu entwickeln oder gar neue Software programmieren zu müssen – und dies alles für den Anwender kostenfrei. Das ICPe-PM2e, auf welchem die µLinux-Technologie erstmals implementiert wurde, eignet sich für vielfältige Applikationen, die ein wartungsfreies System erfordern, wie z.B. in robusten Embedded-Systemen, Industriesteuerungen, Transportwesen, Messtechnik und der Luftfahrt. Als CPUs können Intel-Pentium-Prozessoren mit bis zu 2 GHz Taktrate gewählt werden. Der 2 MByte große L2 Cache wird von einem 2 GByte großen, eingelöteten DDR2-RAM ergänzt, das mit 400/533 MHz getaktet wird und damit einen hohen Datendurchsatz gewährleistet. Die Platine ist service- und benutzerfreundlich aufgebaut, was sich an den fehlenden Kabeln zeigt – alle Komponenten sind fest verdrahtet.

Ein spezieller Harddisk-Carrier enthält zusätzlich ein Gigabit-Ethernet, einen integrierten COM-Port, dreifach USB 2.0 und PS/2-Maus- und Tastaturschnittstellen, die direkt mit dem CPU-Board verbunden sind. Rear-I/O erhöht die Vielseitigkeit der Platine weiter, wobei sich die Leiterplattengröße abhängig von der Version um bis zu 80 mm verlängert. Als Massenspeicher werden serielle oder parallele (EIDE) Notebook-Harddisks (Automotive-Grade oder 24 × 7) eingesetzt, die klein und robust sind, eine hohe Kapazität aufweisen und hohe Betriebstemperaturen vertragen. Das Board wird betriebsfertig geliefert, also mit installiertem Betriebssystem µLinux, einer von Inova Computers speziell an die Bedürfnisse des Embedded-Computing optimierten Flash-basierten Linux-Variante.

Bildergalerie

Basis ist ein Standard-Linux-Kernel

Inovas Linux-Variante basiert auf einem aktuellen Standard-Linux-Kernel (Version 2.6) und besteht aus den drei Teilen: Kernel, der rund 1 MByte Flash belegt; der Initial RAM Disk mit rund 1,5 MByte Speicherbelegung und dem vom Anwender nutzbaren Flashbereich (User Area), der je nach Ausbaustufe zwischen 0,5 und 1,5 MByte groß sein kann (Bild 1). Bei der Anpassung und Optimierung des µLinux-Kernels war die bereits vorhandene Modularität von Linux von besonderem Vorteil: es war nicht notwendig, neue Komponenten zu entwickeln oder neue Software zu programmieren. Die notwendigen Kernel-Komponenten konnten vollständig aus vorhandenen Elementen integriert werden. Der µLinux-Kernel enthält bzw. unterstützt die folgenden Komponenten:

  • Prozessor (Dual-Core Ready),
  • Chipsatz,
  • Netzwerk-Controller,
  • TCP/IP-Stack,
  • USB-Controller,
  • USB-Stack,
  • SATA/ATA,
  • SMBus (System Management Bus) und
  • Flash-Zugriff.

Der zweite Teilbereich des µLinux-Betriebssystems, die Initial RAM Disk, ist ein komprimiertes binäres Image, das vom Kernel dekomprimiert und als eine RAM Disk im Speicher abgelegt wird. Dies ist das Linux-Dateisystem, das im Dateisystemformat ext2 gespeichert wird. Die Initial RAM Disk basiert auf der BusyBox-Implementierung mit der µCLibc-Bibliothek. BusyBox wurde speziell für optimierten Platzbedarf und limitierte Systemressourcen entwickelt und kombiniert winzige Versionen von vielen UnixUtilities in einer einzigen ausführbaren Datei, die einen Ersatz für die meisten der, in den GNU-fileutils, -shellutils etc. vorhandenen Utilities darstellen.

Umfangreiche Umgebung für kleine oder eingebettete Linux-Systeme

Die Utilities in BusyBox besitzen jedoch meist weniger Optionen als ihre GNU-Verwandten mit voller Funktionsausstattung. Dennoch haben die BusyBox-Optionen die erwartete Funktion und verhalten sich fast so wie ihre GNU-Gegenstücke. Damit stellt BusyBox eine umfangreiche und nahezu vollständige Umgebung für jedes kleine oder eingebettete Linux-System zur Verfügung. Sie ist sehr modular und erlaubt das einfache Hinzufügen oder Weglassen von Befehlen (oder Eigenschaften) während der Kompilierung. Dies ermöglicht eine äußerst einfache kundenspezifische Anpassung an das jeweilige Embedded-System. Um damit ein funktionsfähiges System aufzubauen, muss man nur einige Device-Nodes und Konfigurationsdateien sowie einen Linux-Kernel hinzufügen.

µClibc ist eine C-Bibliothek zur Entwicklung von Embedded-Linux-Systemen. Sie ist wesentlich kompakter als die GNU-C-Bibliothek, wobei aber nahezu sämtliche Applikationen, die von der GNU-Bibliothek unterstützt werden, ebenso perfekt mit µClibc zusammenarbeiten. Um Applikationen von der GNU-Bibliothek auf µClibc zu portieren, muss man üblicherweise nur den Quellcode neu kompilieren, wobei die Bibliothek dann auch gemeinsam genutzte Bibliotheken (Shared Library) und Threading unterstützt.

Spezifische Erweiterungen der Initial RAM Disk

Darüber hinaus unterstützt die Initial RAM Disk noch folgende Komponenten:

  • Diverse Dateisysteme: wie reiserfs für Linux, samba, eine Open-Source/Software-Suite, die Fil-e und Print-Services von Betriebssystemen wie Linux für SMB/CIFS-Clients (Windows) verfügbar macht; ntfs, fat32 für die Einbindung von Windows-XP-Komponenten, iso9660 für den Betrieb von CD-ROM/DVD-ROM-Laufwerken und nfs (network file system),
  • Ash-shell,
  • AE-Editor (einfacher Editor),
  • diverse Entwicklungwerkzeuge wie devmen für den physikalischen Speicherzugriff, ioport für den physikalischen Zugriff auf I/O-Ports und Ispci/setpci für die Konfiguration von PCI-Zugriffen.

Mehrere Inova-spezifische Erweiterungen wurden zudem in die Initial RAM Disk integriert. Dazu zählt die Kommunikation mit dem Mikrocontroller auf dem CPU-Board. Damit lassen sich u.a. Systemüberwachung, -Diagnose und System-Log ausführen. Des Weiteren ist ein Kommunikations-Tool für das Phoenix-BIOS vorhanden, mit dem man schnell Meldungen vom BIOS an µLinux senden kann. Mit dem Update-Tool für BIOS kann dieser Bereich schnell aktualisiert werden. Das Flash-Update-Tool dient zum Aktualisieren des µLinux Images oder des Initial RAM Disk Images (Bilder 2 und 3).

Die User Area (der vom Anwender nutzbare Bereich) ist ein freier Flash-Bereich, um benutzerspezifische Applikationen zu speichern. Dieser Bereich wird von µLinux dekomprimiert und als zweite RAM Disk (/dev/ram1) ins System eingefügt (mountpoint: /rduser). Wenn nötig, kann dieser Bereich unkompliziert geändert oder aktualisiert werden. Die Änderungen in dieser RAM Disk können mit dem User Area Update Tool einfach gespeichert werden. Dieses Tool komprimiert den Inhalt dieser RAM Disk, entfernt diese aus dem System (unmount) und speichert den komprimierten (geänderten) Inhalt wieder im Anwenderbereich des Flash-Speichers. Dieser Bereich kann u.a. auch für die folgenden Aufgaben verwendet werden: vollständige Unterstützung von Inova-Peripheriekarten sowie für Hardware-Diagnose-Tools, Memtest, HD-Test, CPU Burn-In-Test, serial Loopback etc. Dies ermöglicht es selbst dem unbedarften Anwender, sein System im Fehlerfall selbst zu untersuchen.

Benutzerspezifische Initialisierung spezieller Applikationen

Der Bootvorgang von µLinux läuft folgendermaßen ab: zunächst initiiert das BIOS das System. Danach lädt der Bootlader den Kernel in den Flash-Speicher, dann die Initial RAM Disk und führt schließlich den Kernel aus, d.h. er übergibt die Kontrolle des Systems an den µLinux-Kernel. Als nächstes initialisiert der Kernel die nötigen Systemkomponenten und generiert eine RAM Disk (/dev/ram0), die das Root-Dateisystem des Linux-Systems (ext2 Filesystemformat) enthält. Dann dekomprimiert der Kernel den Inhalt der Initial RAM Disk und kopiert den Inhalt in die zuvor generierte RAM Disk. Anschließend führt der Kernel ein Script (rcS – basiert auf dem Standard-Single-User-Initialisierungsscript) zur Initialisierung des Systems aus. Anschließend legt dieses Script eine zweite RAM Disk für die User-Area an und fügt sie in diese zweite RAM Disk ein (mountpoint/rduser, Filesystem ext2). Ist ein benutzerspezifisches Initialisierungsscript in der User Area vorhanden (intuserrd), wird dieses Script auch ausgeführt, um spezielle Applikationen zu starten (Bild 4).

Da bei der Vorgehensweise von µLinux das eigentliche Betriebssystem im ROM hinterlegt ist, ist eine System-Recovery problemlos möglich, da das Betriebssystem stets verfügbar ist. Auch kann das Betriebssystem einfach wieder hergestellt werden, da die eingebauten Dateisysteme den direkten Zugriff auf die Festplatte ermöglichen. Der Netzwerkzugriff ist sowohl auf Linux- als auch auf Windows-Rechner möglich. Dennoch ist die Gefahr der Verseuchung mit Viren gebannt, weil das Image prinzipiell schreibgeschützt ist. Durch die Modularität und einfache Aktualisierbarkeit kann das System auch an Echtzeit-Aufgaben angepasst werden.

µLinux ist kostenlos lizenzierbar

Die Systemintegration von Embedded-Applikationen ist ebenfalls problemlos durchführbar, da Betriebssystem und Treiber bereits fertig vorhanden sind und der Nutzer nur noch seine Anwendung in den User-Bereich installieren muss. Im Vergleich zu anderen Embedded-Betriebssystemen ist bei µLinux ein einfaches Lizenzmodell vorhanden: es ist im Grunde genommen kostenlos. Ein weiterer wesentlicher Vorteil ergibt sich aus der Netzwerk-Einbindung via telnet, die einen Remote-Zugriff bzw. eine Überwachung des Systems aus der Ferne erlaubt. Dazu ist das System mit diversen Sensoren für Temperatur, Spannung, Strom und Lüfter ausgestattet, die über die IPMI (Intelligent Platform Management Interface) aus der Ferne überwacht werden können. Bei Bedarf kann sogar die Kontrolle über das System aus der Ferne übernommen werden, um z.B. eine Beschädigung oder Zerstörung zu vermeiden.

Die neuesten Entwicklungen im Bereich der Linux-Technologie für Embedded-Systeme ermöglichen die optimale Verbindung des modernen CompactPCI Express mit einem kostenfreiem und weit verbreiteten Open-Source-Betriebsystem. Die so entstehenden wirtschaftlichen und technischen Vorteile, wie z.B. kostenloses Lizenzmodell sowie eine offene und modulare Programmier- und Hardware-Architektur eröffnen zahllose Einsatzmöglichkeiten in anspruchsvollen und zukunftsweisenden Embedded-Computing-Applikationen. Die Vorteile der offenen Plattform CompactPCI Express werden durch die CPU Boards ICPe-PM2e von Inova Computers und das Angebot der Open-Source-Gemeinde optimal miteinander kombiniert.

Inova Computers, Tel. +49(0)8341 916265

*Volker Koch ist Softwareentwickler, Balázs Tóth ist CPU Product Manager bei Inova Computers in Kaufbeuren.

(ID:195515)