Handys und Smartphones mit Linux sind leider die Ausnahme, auch wenn das freie Betriebssystem im Embedded-Bereich allgemein längst keine Seltenheit mehr ist. Motorola setzt bei der EZX-Smartphone-Familie jedoch auf den Pinguin. Das in [1] vorgestellte und bedauerlicherweise kaum noch erhältliche Modell A780 war zwar das einzige in Deutschland verkaufte Gerät dieser Familie, in Amerika und Asien gibt es jedoch eine Hand voll Typen und mindestens ein weiteres Smartphone befindet sich in der Entwicklung.
Hersteller Motorola stellt den Linux-Entwicklern jedoch keine Compiler oder Werkzeuge zur Verfügung - diese Aufgabe hat inzwischen die Community rund um das Open-EZX-Projekt [2] übernommen und Compiler, Bibliotheken und andere Entwicklungswerkzeuge zusammengestellt.
Über Kreuz gelegt
Die Smartphones aus der EZX-Reihe verwenden einen Arm-Prozessor, dessen Befehlssatz sich von den sonst in PCs üblichen x86-kompatiblen CPUs unterscheidet. Daher müssen alle Programme für die EZX-Smartphones mit einem Crosscompiler für Arm-Prozessoren übersetzt sein. Eine solche Cross Compile Toolchain namens Ezx-crosstools bietet Sam Revitch auf [3] an.
Das Paket umfasst jedoch keine Quellen von Compiler, Bibliotheken, Tools und Kernel, sondern lediglich die für die EZX-Plattform nötigen Patches sowie das »build.sh«-Skript. Das Skript lädt Quellpakete aus dem Internet, patcht und übersetzt sie. Die Umgebungsvariable »RESULT_TOP« im Build-Skript entscheidet darüber, wo es im Dateisystem die fertige Toolchain ablegt. Dieses Verzeichnis sollte später im Suchpfad der Shell liegen.
Zum Schluss versucht das Build-Skript noch das Testprogramm »hello.c« zu übersetzen. Das funktioniert in der Version 0.5 jedoch nicht, die Toolchain ist aber trotzdem einsatzbereit. Da dieses Problem auch beim Übersetzen von einigen anderen Programmen wie etwa »gpsd« auftritt, hat Antonio Ospite unter [4] ein Patch veröffentlicht, um das Problem zu beseitigen.
Entwicklungsumgebung
Neben den Crosscompiler-Tools bietet Sam Revitch auf seiner Homepage [5] auch das EZX-Development-Kit Ezx-devkit an. Es handelt sich größtenteils um mittels Reverse Engineering ausgetüftelte Headerdateien der Qtopia- und EZX-Bibliotheken. Diese Arbeit war nötig, da Motorola kein Linux-SDK für die Qtopia-basierte und um einige Spezialfunktionen erweiterte Oberfläche zur Verfügung stellt. Dazu ist Motorola jedoch auch nicht verpflichtet, da der Hersteller Qtopia lizenziert hat.
Das EZX-Development-Kit sorgt dafür, dass sich herkömmliche Linux-Programme nahtlos in die grafische Oberfläche der Smartphones einfügen. Beispiele dafür sind das im Development-Kit enthaltene Programm »USBMode« sowie das Beispielprogramm von [6], das den Aufbau und die Verwendung einzelner GUI-Elemente veranschaulicht. Die mit den GUI-Elementen verknüpften »ioctl()«-Aufrufe zeigen zudem die Kommunikation mit dem Betriebssystem, etwa zum Steuern der Tastaturbeleuchtung. Weitere Programme und Quellen zum Selbststudium gibt es im Motorola-Fanforum [7].