Python und Pygame kompilieren für WIZ


seyhbold

Still Fresh
Joined
May 1, 2006
Messages
4
Hallo,

nach einigem hin und herprobieren habe ich es geschafft Python 2.6.4 und Python 3.1.1 für den Wiz zu kompilieren. Das Python 3.1.1 konnte ich auch bereits testen... Es läuft.

Hat schon mal irgendwer hier im Forum versucht pygame für den Wiz zu bauen? Ich komme einfach nicht drauf wie ich das Paket mit dem enstprechenden Python und der openwiz-toolchain bauen kann.

Ich liste jetzt hier mal die Schritte auf die ich bisher gemacht habe. Das kann dann auch gleich als Anleitung dienen Python 3.1.1 zu installieren.

1. Ubuntu installieren
Ich habe in einer Virtualbox-Instanz Ubuntu 9.10 installiert.
Zusätzlich zu den Standard-Paketen sind noch automake und autoconf dazugekommen.

2. Toolchain installieren
Ich habe die Linux-Toolchain unter folgendem Link: Toolchain verwendet. Diese Toolchain enthält bereits ein paar Bibliotheken wie SDL, zlib, jpeg, png ...
Da ich kein grosser Freund von Installationen im Root-Verzeichnis bin habe ich das Archiv in /opt entpackt und alle Symlinks repariert.

3. Python Source herunterladen und entpacken
Dieses Python-Source-Archiv habe ich genommen: Python

Herunterladen:
Code:
<i>
</i>wizdev:~$ cd Downloads && wget http://python.org/ftp/python/3.1.1/Python-3.1.1.tar.bz2
wizdev:~/Downloads$ cd
wizdev:~$ tar xjvf Downloads/Python-3.1.1.tar.bz2
4. Hostpython bauen
Vorgegangen bin ich zunächst nach dieser hervorragenden Anleitung auf randomsplat. Link
Also:
Code:
<i>
</i>wizdev:~$ cd Python-3.1.1
wizdev:~/Python-3.1.1$ ./configure
...
wizdev:~/Python-3.1.1$ make python Parser/pgen
wizdev:~/Python-3.1.1$ mv python hostpython
wizdev:~/Python-3.1.1$ mv Parser/pgen Parser/hostpgen
wizdev:~/Python-3.1.1$ make distclean
5. Python für den WIZ bauen
So jetzt geht's los mit dem eigentlichen Crosscompiling.
Auf der Seite mit der Anleitung gibt es einen Patch für das Crosscompiling: Link
Code:
<i>
</i>wizdev:~/Python-3.1.1$ wget http://randomsplat.com/wp-content/uploads/2009/08/Python-3.1.1-xcompile.patch
wizdev:~/Python-3.1.1$ patch -p1 < Python-3.1.1-xcompile.patch
Ab hier läuft es jetzt ein bisschen anders, da der patch nicht alle tests vom configure-script bereinigt.
In der Datei: configure.in nach sem_getvalue suchen und den ganzen Test auskommentieren. Zeilen 3290-3316
Nach chflags suchen und den ganzen Test auskommentieren. Zeilen 2538-2553
Nach lchflags suchen und den ganzen Test auskommentieren. Zeilen 2555-2568

Danach geht's wie folgt weiter:
Code:
<i>
</i>wizdev:~/Python-3.1.1$ autoconf
wizdev:~/Python-3.1.1$ export PATH=$PATH:/opt/arm-openwiz-linux-gnu/bin
wizdev:~/Python-3.1.1$ LDFLAGS="-L/opt/arm-openwiz-linux-gnu/lib" CPPFLAGS="-I/opt/arm-openwiz-linux-gnu/include" CXX=arm-openwiz-linux-gnu-g++ CC=arm-openwiz-linux-gnu-gcc AR=arm-openwiz-linux-gnu-ar RANLIB=arm-openwiz-linux-gnu-ranlib ./configure --host=arm-openwiz-linux-gnu --build=i686-pc-linux-gnu --prefix=/python
...
wizdev:~/Python-3.1.1$ make HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen BLDSHARED="arm-openwiz-linux-gnu-gcc -shared" CROSS_COMPILE=arm-openwiz-linux-gnu- CROSS_COMPILE_TARGET=yes
...
wizdev:~/Python-3.1.1$ make install HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen BLDSHARED="arm-openwiz-linux-gnu-gcc -shared" CROSS_COMPILE=arm-openwiz-linux-gnu- CROSS_COMPILE_TARGET=yes prefix=~/Python-3.1.1/_install
6. Python auf dem WIZ testen
In dem _install Verzeichnis unter dem Python-3.1.1 Verzeichnis befindet sich jetzt ein komplettes Python für den WIZ. Das kann ich auf eine SD Karte kopieren und auf dem WIZ starten. Dann bekomme ich den Python-Prompt. :-D

Weiter bin ich noch nicht gekommen. Als nächstes werde ich die Python tests mal starten und sehen was passiert.
Das Verzeichnis ist noch recht umfangreich. Das möchte ich noch auf ein Minimum reduzieren.

7. PyGame
Jetzt nochmal zurück zu meiner eigentlichen Frage. Ich bekomme das setup.py Script von pygame nicht dazu das oben kompilierte Python zu verwenden. Geschweige denn den Compiler aus der Toolchain zu nehmen. Hat jemand Erfahrung mit dem Crosscompiling von distutils-basierten Paketen?


Vielleicht kann ja jemand meinen Weg nachvollziehen und mir einen Tip geben?

Vielen Dank
Ciao Ludwig
 
An dieser Lösung wäre ich auch mehr als nur interressiert. Python 2.6 / 3.1 mit PyGame incl. Sound, 2D/3D Unterstützung und PySerial wäre fantastisch. Eine Lösung für Python 2.5 wäre auch schon gut. Für mich ist das Gerät keine Spiele- sondern eine Entwicklungsplattform für dezentrale Mess- und Steueraufgaben.

Also, wenn es hierzu etwas Neues gibt - bitte sofort melden.

@seyhbold - wäre es Dir möglich mir Deine bisherhigen Arbeiten zu Python 2.6 / 3.1 als tar-File zur Verfügung zu stellen? Das Forum würde sich wahrscheinlich hier auch sehr darüber freuen. Vielleicht kann dann darauf aufgebaut werden.

Die besten Grüße an das Forum.

framue
 
framue said:
Für mich ist das Gerät keine Spiele- sondern eine Entwicklungsplattform für dezentrale Mess- und Steueraufgaben.
Und was misst und steuerst Du so?
framue said:
@seyhbold - wäre es Dir möglich mir Deine bisherhigen Arbeiten zu Python 2.6 / 3.1 als tar-File zur Verfügung zu stellen? Das Forum würde sich wahrscheinlich hier auch sehr darüber freuen. Vielleicht kann dann darauf aufgebaut werden.
Na ja, im Moment gibts noch nicht soviel. Alles was ich bisher habe kann mit den Schritten nachvollzogen werden. Sobald ich ein brauchbares Python mit pygame habe werde ich auch gerne ein "Runtime"-tar daraus bauen. Vielleicht hilft mir jemand bei pygame?

Ciao Seyhbold
 
Naja, ich interessiere mich sehr für Akkumulatoren. Die Aufzeichnungen von Spannung/Strom und verbrauchter bzw. geladener Energie sowie Temperatur sind sehr interessant. Die Erfassung dieser Werte möchte ich dezentral durchführen können - ohne Laptop oder gar PC. Der WIZ schien mir da sehr gut geeignet. Ich bin jedoch mittlerweile recht enttäuscht. Es gibt sehr viele Informationen - zu viele und teilweise auch falsche - aber keine Stelle, wo wirklch alles notwendige zentral beschrieben ist. Praktisch wäre auch eine SD-Karte speziell für Entwickler - damit das ewige Recherchieren nach geeigneter Software wegfällt (ich habe es bisher z.B. nicht hinbekommen USBNet zum Laufen zu bekommen. SSH würde ich mir wünschen). Irgendwie ist bei mir Vieles noch unklar. Ich finde es auch sehr sonderbar, dass man Kernel-Module mit einer anderen Toolchain erstellen soll, als bei eigenen Programmen (wegen des Compilers...). Zusammengefasst: Ich suche nach einer leistungsfähigen Möglichkeit den WIZ als USB-Host zu betreiben, externe Geräte anzusteuern (wie z.B. LABJACK) und in Python alle Möglichkeiten ausschöpfen zu können, die der WIZ bietet. Wenn das alles auf einer SD-Karte untergebracht werden kann, wäre ich superhappy - dann könnte das Gerät zu einem echten Renner bei Hobbybastlern werden. Das OLED ist genial, die Performance fantastisch, die Laufzeit super - aber es ist noch ein steiniger Weg, wenn man Python-Programm erstellen möchte.

bis bald,

framue

P.S.: Wenn ich bei Deinem Problem irgendwie helfen kann, versuche ich gerne mein Glück. Hier im Forum irgendwo versteckt, bin ich auf auf eine PyGame/Python-Umgebung mit Python 2.6 gestoßen. Python gibt sogar bei mir etwas aus :) PyGame habe ich noch nicht getestet.
 
Gibts mittlerweile ein voll lauffähiges und benutzbares Python / Pygame für den WIZ!? Wäre auch sehr daran interessiert.
 
Na ja, ich hab's irgendwann hinbekommen auch pygame zu kompilieren. Allerdings bin ich nicht über 6 fps gekommen und der Start dauerte auch ziemlich lang. Ich habe dann so ein wenig die Lust verloren und auch keine Zeit gefunden den Post upzudaten. Aber ich bin gerne bereit das Python wieder vorzukramen. Vielleicht hat ja auch jemand Lust mitzumachen?

hth
Ciao Seyhbold
 
Ich kann mich gerne auch mal dran versuchen. Aber sonderlich erfahren bin ich nicht im kompilieren für den WIZ ;)

-- Mi Jun 02, 2010 17:48 --

Bin gerade auf das hier gestoßen > http://www.gp32x.com/board/index.php?/topic/48572-python-and-pygame/page__st__15

So wie ich das verstehe ist es ein fertiges Python + pygame für die WIZ!? Allerdings mit miserabler Performance. Allerdings verstehe ich nicht wirklich was die dort treiben ^^

EDIT: Okay ich war wohl nicht ganz wach als ich das gelesen habe ;) die Perfomance scheint an seinem Programm zu liegen nicht an pygame/python selbst! Es gibt aber wohl ein Problem Bilder zu laden. Selbst bin ich allerdings auch noch nicht wirklich dazu gekommen etwas zu testen ;D
 
Back
Top