Mokopedia einrichten

Heute wollte ich die Mokopedia auf meinem Freerunner einrichten. Die Mokopedia ist eine zum Offline Anschauen optimierte Fassung der Wikipedia. Zu finden ist sie unter http://mokopedia.mister-muffin.de/.

Bevor wir anfangen binden wir noch ein zusätzliches Repository ein. Dazu wird die Datei http://rabenfrost.net/celtune/celtune-rabenfrost.conf in den Ordner /etc/opkg/ gepackt und anschließend opkg update ausgeführt. Danach werden mit opkg install python-opendir python-netserver kernel-module-loop die benötigten Module installiert.

Dann benötigen wir noch einige Kernelmodule. Dabei ist zu beachten das die hier angebotenen Kernelmodule nur mit der Version 2.6.24 des Kernels zusammenarbeiten. Überprüfen kann man dies in dem man auf der Konsole uname -a eingibt.

Wenn die Kernelversion stimmt kann man sich die benötigten Module auf sein Freerunner laden. Dazu gibt man in der Konsole folgendes ein:

wget https://seeseekey.net/wp-content/uploads/2008/11/unlzma.ko
wget https://seeseekey.net/wp-content/uploads/2008/11/sqlzma.ko
wget https://seeseekey.net/wp-content/uploads/2008/11/squashfs.ko

Die Dateien müssen dann an folgende Orte:

unlzma.ko -> /lib/modules/2.6.24/kernel/extra/lzma/unlzma.ko
sqlzma.ko -> /lib/modules/2.6.24/kernel/extra/lzma/sqlzma.ko
squashfs.ko -> /lib/modules/2.6.24/kernel/fs/squashfs/squashfs.ko

Um die Modulabhängigkeiten zu aktualisieren geben wir dann noch depmod -a ein. In die Datei /etc/fstab/ tragen wir dann noch folgendes ein:

# mokopedia
/media/card/mokopedia/de/mokopedia.lzma /media/mokopedia/de squashfs default,loop 0 0

Nun liegt nach einem Neustart in dem Verzeichnis /media/mokopedia/de die Mokopedia. So ist das ganze natürlich noch nicht sonderlicht schön. Wir benötigen noch einen Server der uns das Ganze für den Webbrowser ein wenig hübscher macht.

Dazu benötigen wir einen kleinen Webserver den gibt es hier. Das ganze entpacken und auf den Freerunner. Nun starten wir die server.py indem wir python server.py eingeben.

Danach können wir den Browser starten und http://localhost:8080/ eingeben und schon sind wir in der Wikipedia. Zur Zeit ist das ganze leider noch etwas unübersichtlich wenn man die Wikipedia auf dem Palm gewöhnt ist, aber das wird schon :)

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.

Status des GSoC Projektes „Speech Recognition in Openmoko“

In dem Google Summer of Code Projekt „Speech Recognition in Openmoko“ geht es um die Entwicklung einer Anwendung zur Spracherkennung. Geplant ist das diese Anwendung erst vom User trainiert werden muss und anschließen das macht was der User ihm sagt :)

Es geht dabei nicht um eine ausgewachsene Spracherkennung sondern um eine simple Erkennung welche, ein gesprochenes Wort erkennen soll und mit einem Wörterbuch, in welchen 5 bis 10 Wörter stehen, vergleicht und feststellt welches Wort gemeint ist. Dazu soll das Hidden Markov Modell implementiert werden.

Zur Zeit testet der Autor die Hidden Markov Implementation. Seine nächsten Schritte bestehen nun darin den Quelltext auf die Openmoko Plattform zu portieren und das ganze auf einem echten Freerunner zu testen.

Weitere Informationen gibt es unter:
https://svn.projects.openmoko.org/svnroot/speech/
http://code.google.com/soc/2008/openmoko/appinfo.html?csaid=B631058E670ECFAC
http://saurabh1403.wordpress.com/