Openmoko auf Qemu aufsetzen

From
Jump to navigation Jump to search


Openmoko auf Qemu aufsetzen

Als aller erstes sollte man Henryks Tarball (2,5GB) ziehen und nach $OPENMOKODIR entpacken (dann ca. 9GB).

Version aus dem Tarball

Um das schon erstellte Image in Qemu per 'make run-qemu' zu nutzen, müssen zunächst die Links in '$OPENMOKODIR/build/qemu/openmoko' angepasst werden. Dazu einfach in diesem Verzeichnis

ln -sf ../../../openmoko/trunk/src/host/qemu-neo1973/openmoko
ln -sf ../../tmp/deploy/images/openmoko-devel-image-fic-gta01-20070521103704.rootfs.jffs2
ln -sf ../../tmp/deploy/images/u-boot-gta01bv4-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2041.bin
ln -sf ../../tmp/deploy/images/uImage-2.6-moko10-r0_0_2006_0-fic-gta01.bin

ausführen. Jetzt sollten alle nötigen Symlinks stimmen und man kann in $OPENMOKDIR per 'make run-qemu' den Emulator starten.

aktuelle Version

Die aktuelle Version der Quelltexte bekommt man mit make update. Danach sollte man mit make die aktuellen Images bauen können. Leider funktioniert das solange nicht, bis man entweder alles neu baut oder $OPENMOKODIR=/home/ploetz/openmoko ist, da sämtliche gecachten Dateien diesen Pfad enthalten.

Sobald man die Quellen unter /home/ploetz/openmoko z.B. per mount bereit gestellt hat, funktioniert ein Aufruf von make einwandfrei und erstellt ein aktuelles Image.


Für den Fall, dass man alles neu kompilieren möchte, muss man erst einmal die Setup-Umgebung anpassen. Dazu muss man zunächst die setup-env in $OPENMOKODIR löschen. Danach reicht ein Aufruf von make setup-env. Wenn man jetzt auch noch die richtigen Pfade in bitbake-Fehlermeldungen sehen will, sollte man auch $OPENMOKODIR/bitbake/lib/bb/*.pyc löschen. Damit alles von Grund neu übersetzt wird, muss man noch make clobber aufrufen. Danach wird mit make update; make setup; make neu gebaut. Wenn man nicht so viel Platz hat, hilft es in $OPENMOKODIR/build/conf/local.conf die Zeile INHERIT += "rm_work" hinzuzufügen. Damit werden die temporären Dateien nach dem Bauen des entsprechenden Paketes auch wieder gelöscht werden.

Netzwerkverbindung zu Openmoko in Qemu aufbauen

Das Ganze funktioniert nach der Anleitung unter [1]. In unserem Fall kann man allerdings das Kompilieren weglassen. Wichtig ist bloß, dass die Module cdc_ether und gadgetfs (Parameter default_uid=$MEINE_UID) geladen sind. Und unter /dev/gadget das GadgetFS eingehängt wurde (andere Mountpoints funktionieren nicht). Danach startet man die Emulator mit den zusätzlichen Parametern -usb -usbgadget (falls nicht schon vorhanden). Jetzt wartet man ab bis das System vollständig gestart ist, wechselt dann mit Ctrl-Alt-2 zum Qemu-Monitor und führt dort "usb_add gadget:1" aus. Danach im Hostsytem noch ifconfig usb0 inet 192.168.0.200 netmask 255.255.255.0 und damit sollte man das emulierte Gerät unter 192.168.0.202 erreichen können. Normales Login per SSH funktioniert, beim Versuch per SSHFS das Dateisystem zu mounten, wird die Verbindung aber abgebrochen.