FritzBoxPython - Problem beim Build

incubus

Neuer User
Mitglied seit
29 Jul 2007
Beiträge
100
Punkte für Reaktionen
0
Punkte
16
Hallo,

ich möchte gemäß dem wiki (http://www.wehavemorefun.de/fritzbox/index.php/FritzBoxPython) Python für FB builden.

zum cross-compilen brauch ich wohl eine "toolchain" ? Da ich davon wenig verstehe, habe ich einfach eine funktionierende freetz-umgebung rangezogen.
(mit der ich schon erfolgreich images ge-buildet habe!)

Ich hänge nun an folgender Stelle im wiki:
"Umgebungsvariablen für Cross Compiling setzen nicht vergessen"
"CC=/usr/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-gcc -std=gnu99 -fno-strict-aliasing"
...

wo genau soll ich die Variablen setzen ? und auf welchen Wert ?
"/usr/mipsel-linux-uclibc/" habe ich nicht, aber ich habe /home/freetz/freetz-1.1.3/toolchain/target/ vom freetz! - das ist doch dann wohl das richtige ?

Ich habe daher die Umgebungsvariablen folgendermaßen gesetzt:
export CC="/home/freetz/freetz-1.1.3/toolchain/target/bin/mipsel-linux-uclibc-gcc -std=gnu99 -fno-strict-aliasing"
...

Ist das richtig so ? Ich vermute nicht, denn beim letzten Schritt "Kompilieren" hänge ich dann:
(ich habe den "./configure --host mipsel-linux-uclibc ..." entspr. im Pfad angepasst).
der make ("make HOSTPYTHON=./hostpython EXTRA_CFLAGS="$CFLAGS" HOSTPGEN=./Parser/hostpgen BLDSHARED="${CC} -shared" CROSS_COMPILE=yes") bricht ab mit:

../root/lib/libm-0.9.29.so: could not read symbols: File in wrong format

ich vermute ich habe eben den Punkt "Umgebungsvariablen für Cross Compiling setzen nicht vergessen" nicht richtig gemacht, oder ?
Aber wie wäre es korrekt ?

Merci vielmals!
 
...habe ich einfach eine funktionierende freetz-umgebung rangezogen.
(mit der ich schon erfolgreich images ge-buildet habe!)
...
Mit dem Freetz-trunk und dem Patch aus dem Anhang dieses Beitrags (>>> klick <<<), kannst Du Python-2.5 für die FritzBox compilieren.
 
Hallo sf3978,

also wenn ich Dich richtig verstehe:
1. soll ich statt dem patch-file aus dem Wiki das Patch-file aus deinem Post nehmen.
2. statt freetz 1.1.3 die trunk version (oder it das egal) ?

3. benötige ich sonst noch was aus deinem post ( was ist mit den ganzen mkdirs etc ?
soll ich die auch machen ?)
4. und das setzen der variablen wie im wiki beschrieben (CC=...) entfällt ?

Vielen Dank schonmal.
 
Wie Du es machst bleibt dir überlassen.;) Wenn Du es mit meinem Patch machen willst, dann mit dem trunk. Die "mkdir's" musst Du nicht machen. Die habe ich nur als Info gepostet. Du brauchst aber auf deinem Build-System auch python-2.5. Evtl. musst Du einige Pfade anpassen. Mit meinem Patch musst Du keine Variablen setzen.
 
Hallo,

das klingt ja verlockend einfach! OK, dann werde ich es also so nochmal probieren:
1. ich arbeite mit dem vmware images aus http://www.ip-phone-forum.de/showthread.php?t=199449
2. ziehe trunk - lass' den make komplett durchlaufen bis einmal ein image erzeugt wurde
3. baue python gemäß http://www.wehavemorefun.de/fritzbox/index.php/FritzBoxPython mit folgenden Abweichungen:
3.1 dein patch statt dem angegebenen
3.2 Punkt Variablen Setzen (CC=...) entfällt

Ich probier's und lass' es Dich wissen.

Merci!
 
Hallo nochmal,

also ich bin exakt vorgegangen, wie im letzten Post beschrieben.
Ich hab' mich auch an die Pfad Vorgaben gehalten (Python in ~/Phyton-2.5).

Nur in der Zeile (aus wiki)
./configure --host mipsel-linux-uclibc --prefix=/filebase/fbox/area51/OUT/ --disable-ipv6 --with-libm=/usr/mipsel-linux-uclibc/lib/libm-0.9.28.so
musste ich den Pfad ersetzen durch
--with-libm=/home/freetz/freetz-trunk/toolchain/target/mipsel-linux-uclibc/lib/libm-0.9.28.so
DAS IST DOCH DIE RICHTIGE, ODER ?

Trotzdem bricht der make wieder ab mit
/home/freetz/freetz-trunk/toolchain/target/mipsel-linux-uclibc/lib/libm-0.9.28.so: could not read symbols: File in wrong format

kann bitte jemand helfen ?
 
Wie weiter oben geschreiben, solltest Du Python auf deinem Build-System schon installiert haben.
Ob das mit dem vmware images geht, weiss ich nicht.
Die Anleitung aus dem wiki brauchst Du nicht, wenn Du mein Patch benutzt.
 
Hallo,

ich steh' auf dem Schlauch ...

ich habe eben mal getestet: das vm-image hat python 2.6.4 vorinstalliert.
(das sehe ich, wenn ich von irgend einem Verzeichnis python starte).

Ausserdem hat ja aber der Build-Prozess aus dem wiki Python 2.5 gebuildet. Ich habe getestet:
cd ~\Python-2.5
./hostpython
-> Version 2.5 meldet sich!

und genau so erwartet es doch dein Patch, oder ? P2.5 in ~/Python ?
und python umbenannt in hostpython - oder ist das das Problem ?

Ich verstehe ja nicht so viel davon, aber liegt das Problem wirklich am Python ?

GCC meldet doch "could not read symbols: File in wrong format". Ich gehe mal davon aus, dass ich die richtige libm.so habe - aber habe ich auch den richtigen gcc zum crosscompilen ? Hab' ich vielleicht irgend ein pfad-Problem o.ä. ?

Du sagst, die Anleitung aus dem Wiki brauch ich nicht - was brauch ich denn dann konkret ?
 
Noch eine Bitte:

kann mir vielleicht jemand ein compiliertes python für die FB zuschicken ? Das wäre ja in dem Fall ok, es enthält ja keine Firmware Teile.

Ich mach jetzt schon 2 Tage rum, und hab' eigentlich viel mehr vor:
ich will darauf lastfmproxy laufen lassen - und dahinter mediatomb (den hab ich schon am laufen).
Ziel wäre es, nur mit der 7270 und der 8040 lastfm zu hören.
 
...das vm-image hat python 2.6.4 vorinstalliert.
...
Das wird mit meinem Patch nicht funktionieren. Denn die Pfade im Patch (make/python/patches/100_configure.patch) sind wie folgt:
Code:
+HOSTPYTHON=    [COLOR="Red"]~/Python-2.5[/COLOR]/python 

+HOSTPGEN=      [COLOR="red"]~/Python-2.5[/COLOR]/Parser/pgen
 
Hallo,

ich habe also hostpython und pgen wieder zurückrenamt nach python etc.
wenn ich nun ~/Python-2.5/python aufrufe, meldet sich Version 2.5

Trotzdem kommt es zu exakt dem selben Fehler.

Ich komm' kein Schritt weiter. Du sagst, ich brauch die Anleitung aus dem Wiki nicht ?
Kannst Du mir bitte sagen, was ich dann stattdessen brauch ?
- naktes Linux - ohne Python
- dann Python 2.5 installieren (bekomm ich 2.5 als binary ? muss ich schauen)
- aber ich brauch doch auch freetz, oder - wegen der toolchain, oder wo soll ich sonst die "libm-0.9.28.so" etc. hernehmen ?

... oder kann mir vielleicht jemand ein fertiges FB python schicken ?
 
Hallo,

ich habe jetzt doch noch ein python build hinbekommen. Diesmal nochmal streng nach wiki vorgegangen.
Was wohl früher mein Problem war, war wie vermutet das Setzen der Umgebungsvariablen CC etc.

Ich habe endlos viele Warnings - aber phyton Kurztest mit print funktioniert auf der Box!

nun will ich lastfmproxy starten:

# python main.py
python: can't resolve symbol '__gtdf2'
#

Sagt das jemand was ? ich finde nichts schlaues im Netz ? Was ist gtdf2 ??? hat das überhaupt was mit python zu tun ?
 
...# python main.py
python: can't resolve symbol '__gtdf2'
...
Poste mal die Ausgabe von:
Code:
ldd /usr/bin/python
auf der Box (wenn Du ldd installiert hast).
Hast Du auch die python-Module installiert?
 
hallo,

ldd hab' ich wohl nicht drauf - findet er nicht. Aber ich hab' z.Zt. auch wieder die Original Firmware auf der Box.

Was genau meinst Du mit "Hast Du auch die python-Module installiert?"
> Ich habe alles auf der Box, was der build ergeben hat -also auch /lib
Meinst Du das ?
 
Ich glaube Du hast das Prinzip von sf3978`s Patch nicht verstanden: Wenn Du ihn in Freetz einspielst, hast Du ein fertiges Freetz Paket und dann solltest Du (außer eintragen in Config.in + Auswahl im "make menuconfig") nur ein "make" eintippen müssen, sonst gar nichts ;)
 
hallo,

ach so - das ist zum einbau in den make von freetz gedacht ?
... und ich brech mir ein ab, um das ding separat umzuwandeln ...

merci für den hinweis.

OK, aber glaubst Du es lohnt, damit nochmal von vorne anzufangen ?
Ich hab' ja inzw. ein python - aber darauf läuft leider lastfmproxy nicht - siehe Post #12.
 
Ja, ich würde es probieren, und mit dem Patch sollte es kein allzu großer Aufwand mehr sein :)
 
...
Ich habe endlos viele Warnings - ...
Im Anhang das Logfile von "make python-precompiled".

Beispiel für Modul gestripped:
Code:
file source/target-mipsel_uClibc-0.9.29/Python-2.5/build/lib.linux-i686-2.5/stripped/operator.so
source/target-mipsel_uClibc-0.9.29/Python-2.5/build/lib.linux-i686-2.5/stripped/[COLOR="Red"]operator.so[/COLOR]: ELF 32-bit LSB shared object, MIPS, MIPS32 version 1 (SYSV), dynamically linked, [COLOR="Red"]stripped[/COLOR]
 

Anhänge

  • python.log.txt
    137.4 KB · Aufrufe: 3
Funktioniert!

Hallo,

wollte mal rückmelden: ich habe mittlerweile ein binary build von python bekommen. - Damit habe ich nun folgende Konfiguration am laufen:
7270: - lastpfmproxy (mit python)
- mediatomb (darin lastfmproxy hinterlegt)
8040: - spielt den content vom mediatomb - also auch lastfm !
(habe aber das scrobbling abgeschalten)

Merci an alle, die geholfen haben!
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.