Windows 7 und USB Festplatten

Windows 7 ist nun schon ein paar Tage auf dem Markt und hat doch teilweise noch haarsträubene Fehler. Um folgendes Problem nachzuvollziehen benötigt man nur folgende Komponenten:

  • Windows 7 (Professional / 64 Bit)
  • mind. 4 GiB RAM
  • eine Seagate (andere wurden nicht getestet) USB Festplatte

Nun möchte man eine 200 GiB große Datei vom Rechner auf die USB Festplatte verschieben. Dort bekommt man dann Datentransferraten von 1,5 MiB/s bis 3 MiB/s. Man kann sich also den Rest des Tages freinehmen und der Datei beim kopieren zuschauen.

Da die wenigsten Leute ewig Zeit haben folgte dann die Probe aufs Exempel. Aus der Schreibtischschublade wird eine Kubuntu Live CD (10.04) geholt und von dieser gebootet. Dann beginnt der Datentransfer, diesmal mit Datenraten von 25 MiB/s bis 30 MiB/s. Mit solchen Raten lässt sich leben. Warum es Microsoft nicht schafft einen solchen Fehler zu beheben ist mir allerdings schleierhaft…

USB Networking + Windows

Man hält es nicht für möglich aber USB Networking ist auch unter Windows möglich :) Dazu muss man die Datei moko.inf herunter und startet sein Moko. Sobald es oben ist steckt man es an den Rechner ran. Wichtig ist es wirklich erst dann ranzustecken wenn das System geladen ist.

Windows erkennt das ganze dann als RNDIS/Ethernet Gadget und verlangt nach einem Treiber dafür. Hier wird dann die moko.inf serviert. Nach der Installation warnt uns Windows dann das eingeschränkte bzw. keine Konnektivität herrscht. Um dieses Fehler zu beheben wechselt man in die Netzwerkkonfiguration und weißt dem Interface die feste IP 192.168.0.200 zu. Danach ist das Moko per SSH unter der IP 192.168.0.202 zu erreichen.

TestDisk

Vor einigen Tagen gab es eine defekte Festplatte zu reparieren. Rein hardwaretechnisch summte die Platte wie ein Kätzchen. Also habe ich die Festplatte mal per USB an das System angeschlossen und siehe da nichts geht :) Da das ganze auf einem Windowssystem passierte habe ich erst einmal die Datenträgerverwaltung aufgesucht. Aber die wollte auch nichts mit dem Datenträger zu tun haben…

Nun hieß es härtere Bandagen aufzuziehen. Genau in diesem Moment lief mir das nützliche Tool TestDisk über den Weg. Mit Hilfe von TestDisk kann man verschiedene Dinge tun unter anderem Partionstabellen reparieren, das Wiederherstellen von Bootsektoren und andere wunderschöne Dinge :) Und das beste an TestDisk ist das es unter fast jedem System läuft von DOS über Windows und Linux bis zu SunOS. Zu finden ist TestDisk unter http://www.cgsecurity.org/wiki/TestDisk.

Über SSH auf die graphische Oberfläche des Freerunners zugreifen

Möchte man auf dem Desktop z.B. mal den Browser ausprobieren, da man auf dem Neo z.B. keinen Slash eingeben kann, so wäre es wünschenswert das man die graphische Ausgabe gleich per SSH mitnimmt. Erfreulicherweise ist das ganze auch relativ unkompliziert.

Als erstes stellt man eine Verbindung per USB Networking her. Natürlich geht das ganze auch übers WLAN, dabei müssen dann allerdings die IP Adressen angepasst werden. Sobald man sich dann per SSH mit seinem Neo verbunden hat gibt man export DISPLAY=192.168.0.200:0.0 ein und bestätigt das ganze mit der Entertaste.

Auf unseren PC öffnen wir nun noch ein Terminal und geben folgendes ein:

xhost +
ssh -X root@192.168.0.202

Um nun zu testen ob das ganze funktioniert hat, geben wir nun einfach openmoko-browser2 ein und schon müsste sich der Browser auf dem Desktop öffnen und wir können die Anwendung wie auf dem Neo benutzen.

Flashen des Freerunners

Die Entwicklung der Openmoko-Umgebung hört nicht einfach mit dem Erscheinen des Gerätes auf, wie es bei anderen Geräten leider der Fall ist. Das System wird ständig weiterentwickelt. Openmoko bringt täglich neue Versionen des Root Dateisystems, des Kernels und des U-Boot Bootloaders heraus. Damit man diese neuen in sein Freerunner bekommt, muss man das ganze flashen. Im Gegensatz zu anderen Geräten ist das Umwandeln des Freerunners in einen modischen Türstopper fast ein Ding der Unmöglichkeit. Also keine Angst beim flashen :)

Zum Flashen benötigt man erst einmal sein Freerunner sowie das mitgelieferte USB-Kabel, mit deren Hilfe man das Freerunner mit dem PC verbindet. Zum Verbinden muss man den U-Boot aktivieren. Dies erreicht man indem man beim Einschalten des Freerunners die AUX Taste (befindet sich links oben) gedrückt hält. Danach kann man den Freerunner mit dem USB Kabel verbinden.

Als nächstes benötigt man dann ein Image zum flashen. Dieses Image findet man unter http://downloads.openmoko.org/releases/Freerunner/. Eine Übersicht der verfügbaren Images ist unter http://www.neo1973-germany.de/wiki/FirmwareImages zu finden.

Die Anwendung um das Freerunner zu flashen kann unter http://downloads.openmoko.org/releases/Freerunner/dfu-util bezogen werden. Oder einfach für die Kommandozeile:

wget http://downloads.openmoko.org/releases/Freerunner/dfu-util

Für andere Systeme als x86 muss man die Anwendungen selber kompilieren. Weitere Informationen dazu unter: http://wiki.openmoko.org/wiki/Dfu-util.

Um das Freerunner dann mit dem heruntergeladenen Image zu flashen gibt man folgendes auf der Kommandozeile ein:

./dfu-util -a (Partionsname) -R -D (Name des Images)

Auf den Imageseiten gibt es zwei Dateien zum downloaden. Eine Datei mit der Endung .bin und eine Datei mit der Endung .jffs2. Bei der Datei mit der Endung .bin handelt es sich um den Kernel, bei der Datei mit der Endung .jffs2 handelt es sich um das Rootdateisystem. Um nun den Kernel und das Rootdateisystem zu flashen muss in der Console (auf dem PC^^) folgendes eingegeben werden:

./dfu-util -a kernel -R -D uImage-2.6.24+svnr4082-r4055-r3-neo1973.bin
./dfu-util -a rootfs -R -D Openmoko-Freerunner-20080424-om-gta02.rootfs.jffs2

Mit ersten Anweisung wird der Kernel geflasht und mit der zweiten das Rootdateisystem. Nicht wundern das ganze kann einen Moment dauern bis es fertig ist. Wenn das ganze Erfolgreich ausgeführt wurde steht in Anschluss auf der Konsole:

status(0) = No error condition is present
Done!

Sollte dfu-util das Neo nicht finden so sollte man noch den Parameter -d 0x1457:0x5119 ranhängen so das das ganze dann so aussieht:

./dfu-util -a kernel -R -D -d 0x1457:0x5119 uImage-2.6.24+svnr4082-r4055-r3-neo1973.bin
./dfu-util -a rootfs -R -D -d 0x1457:0x5119 Openmoko-Freerunner-20080424-om-gta02.rootfs.jffs2

Weitere Informationen gibt es unter:
http://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_FreeRunner
http://wiki.openmoko.org/wiki/Flashing_Openmoko.