Daten|teiler
Kopieren als Kulturtechnik

Freerunner Revolution

2. März 2011 von Christian Imhorst

Nach meiner Woche mit Android auf dem Freerunner bin ich jetzt dank des Tipps von Lukas zu SHR gewechselt. Android Cupcake funktioniert auf dem Openmoko Freerunner reibungslos, soweit ich das in einer Woche beurteilen kann. Nervig ist bloß, dass man es innerhalb von 24 Stunden mindestens einmal aufladen muss, auch wenn man nicht wirklich viel damit gemacht hat. Der Stromverbrauch ist einfach recht hoch. Da scheint SHR etwas länger durchzuhalten, wenn man Dienste wie WLAN, Bluetooth oder GPS wirklich nur dann aktiviert, wenn man sie braucht, den Freerunner immer fleißig in den Suspend schickt und die Helligkeit des Displays standardmäßig etwas herunter dreht. Das Stable Hybrid Release (SHR) ist eine freie GNU/Linux-Distribution, die es nicht nur für das OpenMoko, sondern auch für andere Smartphones wie dem N900 von Nokia, dem HTC Dream, oder dem Palm Pre gibt. Außerdem ist es wirklich eine Distribution für Frans von Gnu/Linux und Freier Software, weil man von Anfang an viel selber machen darf. Die Installation ist zwar ein bisschen komplizierter als bei Android, klappt aber trotzdem sehr gut.

Die Installation von SHR auf dem OpenMoko GTA02 mit Ubuntu

Bevor man SHR auf den Freerunner flashen kann, muss man das Paket dfu-util installieren.

sudo apt-get install dfu-util

Anschließend benötigt man die Dateien zum Flashen. Da ich SHR als User einsetzen möchte, habe ich mich für SHR-testing entschieden und neben Qi als Bootloader das entsprechende Rootfs und Kernelimage heruntergeladen:

wget http://build.shr-project.org/shr-testing2011.1/images/om-gta02/qi-s3c2442.udfu
wget http://build.shr-project.org/shr-testing2011.1/images/om-gta02/full-om-gta02.jffs2
wget http://build.shr-project.org/shr-testing2011.1/images/om-gta02/uImage-om-gta02-latest.bin

Damit beim Flashen gleich alles glatt läuft, bereitet man den Ubuntu-Rechner schon mal vor und startet ein Terminal und bekommt mit dem Befehl sudo -s Root-Rechte.

Das Telefon schaltet man am besten aus, falls es noch an ist, und bootet ins NOR-Menü, in dem man erst die Taste AUX und dann die Taste POWER für ein paar Sekunden gleichzeitig gedrückt hält. Jetzt muss man sich beeilen, weil der Freerunner nach 30 Sekunden Inaktivität wieder abschaltet. Mit dem USB-Kabel verbindet man das Smartphone mit dem Ubuntu-Rechner und führt im Terminal, in dem man Root geworden ist, folgenden Befehl aus, um den Bootloader Qi zu überspielen:

dfu-util -a u-boot -R -D qi-s3c2442-master-hist_3b8513d8b3d9615e.udfu

Danach folgt das RootFS:

dfu-util -d 0x1d50:0x5119 -a rootfs -R -D full-om-gta02.jffs2

Wenn der Befehl erfolgreich ans Freerunner abgesetzt worden ist, sieht man einen Fortschrittsbalken in Form von Raute-Zeichen im Terminal.

Das Aufspielen des RootFS dauert eine Weile, aber man sollte das Ende nicht verpassen, denn sonst schaltet sich das Telefon nach 30 Sekunden Inaktivität wieder aus, obwohl man noch den Kernel aufspielen muss:

dfu-util -d 0x1d50:0x5119 -a kernel -R -D uImage-2.6.34-r7-oe17-om-gta02.bin

Mit NeoTool gibt es auch eine grafische Oberfläche für das Flashen. Da es kein Paket für Ubuntu oder Debian gibt, lädt man sich das Shell-Skript am besten direkt herunter. Die notwendigen Pakete, die man benötigt, um das Skript laufen zu lassen, wie bash, which und awk, sollte es in einer Ubuntu-Installation schon geben, zenity muss eventuell noch installiert werden.

Genauso wie dfu-util muss man auch NeoTool als Root starten, was zum Beispiel mit sudo bash neotool funktioniert.

Welchen Weg man auch geht, nach dem Flashen der drei Dateien steckt man das USB-Kabel wieder ab, schaltet das Telefon aus und bootet es neu, indem man auf den POWER-Knopf drückt.

Freerunner mit Ubuntu verbinden

Wenn man nach dem Neustart des Freerunners Telefon und Computer wieder mit dem USB-Kabel verbindet, wird es als Netzwerkadapter erkannt. Welcher Netzwerkadapter das ist, verrät der Befehl ifconfig im Terminal:

ifconfig -a
eth0      Link encap:Ethernet  Hardware Adresse 00:1d:72:12:a0:d1  
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:16 
 
eth2      Link encap:Ethernet  Hardware Adresse 00:1f:11:01:5b:25  
          inet6-Adresse: fe80::21f:11ff:fe01:5b25/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX bytes:152 (152.0 B)  TX bytes:2178 (2.1 KB)
[...]

Im Normalfall heißt das Interface usb0, aber man sollte sich auch nicht irritieren lassen, wenn es anders heißt. In diesem Fall ist es eth2, das man mit folgender IP-Adresse verbindet:

sudo ifconfig eth2 192.168.0.200 netmask 255.255.255.0

Danach kann man mit Secure Shell (SSH) ein Terminal auf dem Freerunner starten. Per default ist der Schnittstelle des Freerunners die IP-Adresse 192.168.0.202 zugeteilt:

ssh root@192.168.0.202

Wenn root@om-gta02 ~ # als Prompt erscheint, hat man es geschafft und ist auf der Shell des Freerunners gelandet.

SHR mit WLAN verbinden

Um den Freerunner mit WLAN zu verbinden, kann man entweder das Programm Iliwi auf dem Desktop des Telefons starten und das Netzwerk auswählen, oder man macht das ganze auf der Konsole. Dann muss man aber unter Settings WLAN manuell starten.

Dann gibt man im Terminal die folgenden beiden Zeilen ein:

wpa_passphrase MeinWLAN "MeinPasswort123" > /etc/wpa_supplicant/wpa_supplicant.conf
fsoraw -r WiFi -- wpa_supplicant -ieth0 -Dwext -c /etc/wpa_supplicant/wpa_supplicant.conf &

Am Ende der zweiten Zeile ist ein „&“. Lässt man das weg, blockiert der Aufruf des Befehls das Terminal und man muss eine zweite SSH-Verbindung zum Freerunner öffnen, um mit folgenden Befehlen weitermachen zu können:

ifconfig eth0 up
udhcpc

Am Ende sollte es im Terminal folgendermaßen aussehen, wenn man verbunden ist:

SHR updaten

Nun kann man erstmal das Betriebssystem updaten:

opkg update && opkg upgrade

Danach ist es gut, eine deutsche Tastatur zu bekommen, weil sich eine SMS ohne Umlaute doch blöd schreibt:

opkg install illume-keyboard-german

Damit man die deutsche Tastatur auch auch ohne Neustart des Telefons auswählen kann, reicht es aus, den X-Server neu zu starten.

/etc/init.d/xserver-nodm restart

Die Tastatur aktiviert man übrigens mit dem kleinen Button oben links, der sich gleich rechts neben dem kleinen Häuschen befindet, das einen übrigens immer zum Desktop bringt.

Wie geht es weiter?

Jetzt ist man gut gerüstet, SHR weiter zu erforschen. Dazu sollte man sich auch unbedingt in der Mailingliste eintragen, um über wichtige Änderungen informiert zu werden, oder man schaut im IRC vorbei. Die Homepage des SHR-Projekts ist natürlich auch ein wichtiger erster Anlaufpunkt, genauso wie das User Manual von SHR im Wiki von OpenMoko. Welche Pakete man unbedingt auf dem Freerunner braucht, findet man ebenfalls in dem Wiki. Und wie geht es hier weiter? Angeregt durch einen Artikel auf penguinpower.de will ich meine eigenen kleinen Apps basteln, um SHR besser an meine Bedürfnisse anzupassen.

Geschrieben in Gnu/Linux, SHR