Nachdem ich mich in zwei früheren Artikeln mit dem Flashen des Freerunner sowie Zugang per OpenSSH (OM und FDOM) befasst habe, wende ich mich in diesem Artikel der Plattform Android auf dem Openmoko Freerunner zu.
Android auf Openmoko Freerunner
INSTALLATION:
Um Android auf Freerunner zu installieren, muss die SD Karte mit 2 Partitionen formatiert werden (eine FAT und eine EXT3). Außerdem habe ich den Qi Bootloader installiert. Die genauen Anleitungen zur Vorbereitung der Karte und der Installation durch Flashen des Freerunner sind im Wiki Android on Freerunner beschrieben. In meinem Fall kamen Michael Trimarchi`s Images zum Einsatz (http://panicking.kicks-ass.org/download/): freerunner-v14.6.jffs2 (als root fs) und uImage-v17.bin (als kernel image). Das Partitionieren erwies sich als die einfachere Übung. Mit der Ausnahme, dass die im Wiki beschriebene Formatierung der SD Card mit mkfs für die FAT-Partition fehlschlug. Stattdessen machte fdisk die FAT16 Partition ohne zu Murren. Das Flashen der Images per USB-Anschluss erfordert das Tool dfu-util. Auf Ubuntu 9.04 kann dies über die Paketquellen bezogen werden. Das Flashen erfolgte dann nahezu problemlos (bei Problemen der Erkennung von devices siehe auch: Flashen des Freerunner). Android bootete zwar, das Touchpad funktionierte jedoch erst nach der dritten Installation. Keine Ahnung warum.
[EDIT: Mehr Infos zur Installation auf die SDCard gibt es in einem später erschienenen Artikel: Freerunner (Android): SDCard für Installation vorbereiten]
ERSTE POSITIVE EINDRÜCKE:
Mein erster Eindruck von Android war durchaus positiv. Nach 2 Tagen Android kann ich sagen: Vom look and feel ist Android (im Vergleich zu den von mir bis dahin getesteten Distros) eine Klasse für sich. Optisch sehr ansprechend, fingerfreundlich und intuitiv zu bedienen. Es bootet relativ zügig (im Vergleich zu OM und FDOM) und läuft bis jetzt sehr stabil. Die vorinstallierte Menüauswahl und die Optionen zur Konfiguration sind groß. Sehr praktisch ist, dass man AUX und POWER zur Navigation verwenden kann. AUX schließt die zuletzt gestartete Anwendung, POWER öffnet ein Menü.
ERSTE NEGATIVE EINDRÜCKE:
Als erstes habe ich versucht, WLAN (über settings >> Wifi settings) aufzusetzen. Mein heimisches Netz wurde zwar erkannt und ich kam mühelos zum Dialog, um das Passwort einzugeben. Aber wie? Zwar kann man mit einem kurzen Druck auf POWER über ein Menü ein keyboard herzaubern, doch diese liegt später unter dem Wifi-dialog und kann nicht benutzt werden. Hier habe ich mich das erste Mal nach FDOM zurückgesehnt…
Dasselbe Problem gilt für die Eingabe der PIN der SIM-Card. Keine PIN-Eingabe ohne Tastatur. Damit ich erst mal erreichbar bleibe, habe ich die SIM-Card in mein altes Telefon gesteckt und die PIN einfach deaktiviert…
Ein allgemeines Problem bei Freerunner scheint die Lautstärke beim Empfang von Telefonaten zu sein. Auch bei Android hätte ich es gerne ein, zwei Stufen lauter.
USB-NETWORKING PER ADB (SHELL)
Für das Keyboardproblem scheint es zwar einen workaround zu geben, bei dem ein tool installiert wird, um Textinhalte per copy und paste einzufügen. Diesem habe ich mich aber noch nicht zugewendet (und habe auch den link des Forenthreads verloren). Ich versuche die Dinge lieber mit einer shell per USB-Networking zu lösen. Mag Android optisch noch so ansprechend gestaltet sein – ein Zugriff per shell auf das Dateisystem ist einfach unersetzlich zur Konfiguration. Sonst kann man sich gleich ein x-beliebiges Sony Ericsson kaufen (Oh! Nein!). Und so geht`s:
Für den Shellzugriff über einen PC nutzt man adb. Zunächst sollte man das binary von adb herunterladen und innerhalb von PATH ablegen. Shellzugriff erfordert einen reboot des Freerunner. Beim Neustart muss der Freerunner bereits per USB-Kabel mit dem Rechner verbunden sein. Im folgenden Beispiel wurde Ubuntu 9.04 genutzt. Sollte es Probleme geben, kann es helfen, WLAN abzuschalten. An Stelle der Schnittselle eth1 kann es durchaus sein, dass diese usb0 oder sonst irgendwie heißt. Freerunner hat als Standard IP-Konfiguration 192.168.0.202. Zunächst muss also die Schnittstelle so konfiguriert werden, das sie im selben Netzwerk liegt:
sudo ifconfig eth1 192.168.0.200 netmask 255.255.255.0
Dann müssen folgende Befehle ausgeführt werden:
adb kill-server
ADBHOST=192.168.0.202 adb devices
Es ist ein gutes Zeichen, wenn man darauf eine Ausgabe wie die folgende erhält:
* daemon not running. starting it now *
* daemon started successfully *
List of devices attached
emulator-5554 device
Nun kann die shell auf dem Freerunner gestartet werden
adb shell
Voila! Fernzugriff per Ubuntu-Desktop auf Freerunner (mit Android).
FAZIT:
Ob Android mein bevorzugtes System auf Freerunner wird, ist fraglich. Unter FDOM liefen WLAN und GPS, eine Tastatur war immer zur Verfügung. Schauen wir mal, wie es mit Android weitergeht. Schließlich stehe ich ja erst am Anfang meiner Android-Expedition. Dies ist nur mein persönlicher Erfahrungsbericht. Über Hinweise, Ergänzungen usw. würde ich mich freuen.