[Problem] Python kompilieren für die AVM FritzBox 7390

Dr.Router

Neuer User
Mitglied seit
30 Apr 2011
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hallo IP-Phone-Forum-Gemeinde,

ich bin seit ca. drei Monaten ein stolzer Besitzer meiner ersten FritzBox, Model 7390 :)
Nun versuche ich schon zwei Wochen lang Python für die original Firmware zu kompilieren. Nach zig unterschiedlichen Versuchen, wende ich mich nun an euch, mit der Hoffnung, dass mir da draussen jemand Helfen kann (;) zu sf3978).
Da ich noch ganz am Anfang meiner Erfahrungen mit der FritzBox und Freetz stehe, hab ich natürlich erstmal das Forum gründlich durchgestöbert und viele interessante Sachen gefunden und erfahren.

Jetzt wollte ich für die FritzBox (original Firmware) einen Python-Interpreter kompilieren. Leider ging bis jetzt jeder Versuch in die Hose.
Auf meiner Suche habe ich zwei unterschiedliche Wege gefunden, die mich hätten zum Ziel bringen sollen.
Der erste Weg war der Versuch wie im Wiki beschrieben (http://www.wehavemorefun.de/fritzbox/index.php/FritzBoxPython). Danach hab ich die ?einfachere? Variante durch den von sf3978 bereitgestellten Patch Versucht.
Leider beide ohne Erfolg. Dazu aber später mehr, hier erstmal mein Build-System:


Das System:
Zu erst habe ich das System soweit für die anstehende Kompilierung bereit gemacht (wie in dieser Anleitung beschrieben http://freetz.org/wiki/help/howtos/common/install).
Im einzelnen heißt das für mein Ubuntu 10.04 System (32 Bit):
Code:
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y install subversion gcc g++ bzip2 binutils automake patch autoconf libtool pkg-config make libncurses5-dev zlib1g-dev flex bison patch texinfo tofrodos gettext jam pkg-config ecj fastjar realpath perl libstring-crc32-perl ruby ruby1.8 gawk python libusb-dev unzip intltool libglib2.0-dev git


Freetz
Danach wurde der aktuelle Trunk (Rev. 7076) auf dem Desktop (~/Desktop$) ausgecheckt
Code:
svn co http://svn.freetz.org/trunk


Python 2.5
Über die Url: http://www.python.org/download/releases/2.5/ kam ich an die Version, welche für den Patch benötigt wird.
Installiert wurde Python folgendermaßen:
Code:
~$ tar -xzf Python-2.5.tgz  
~$ cd Python-2.5
~/Python-2.5$ ./configure
~/Python-2.5$ make
~/Python-2.5$ sudo make install


PATCH
Über den Forumsbeitrag http://www.ip-phone-forum.de/showthread.php?t=207724&p=1569482#post1569482 gabs den Patch (proper_python_110710.patch.txt) zum Download.
Laut http://freetz.org/wiki/help/howtos/development/integrate_patches wurde dann der Patch wie folgt eingespielt:
Code:
~/Desktop/trunk$ patch -p0 < ../proper_python_110710.patch
patching file make/python/Config.in
patching file make/python/external.files
patching file make/python/external.in
patching file make/python/Makefile.in
patching file make/python/patches/100_configure.patch
patching file make/python/python.mk
~/Desktop/trunk$


Python in Freetz bekannt machen
Damit Freetz das Paket kennt, wurde noch die Config.in um einen Eintrag erweitert:
Code:
~/Desktop/trunk/make$ gedit Config.in
und die Zeile "source make/python/Config.in" unter "menu Standard packages" eingetragen.


Danach wurde die Menukonfiguration aufgerufen und folgende Einstellungen vorgenommen:
Code:
~/Desktop/trunk$ make menuconfig
Package selection -> Standard packages -> python 2.5 (binaries and modules only)
Hardware type (Fon WLAN 7390)

Und zuguter letzt das "make" ausgeführt.
Code:
~/Desktop/trunk$ make

Allerdings bringt das "make" mit folgender Fehlermeldung ab:
Code:
make: *** Keine Regel vorhanden, um das Target »source/target-mipsel_uClibc-0.9.29/Python-2.5/build/lib.linux-i686-2.5/zlib.so«, 
  benötigt von »source/target-mipsel_uClibc-0.9.29/Python-2.5/build/lib.linux-i686-2.5/stripped/zlib.so«, zu erstellen.  Schluss.

Leider hab ich überhaupt keine Ahnung, was diese Fehlermeldung bedeutet. Zlib wurde wie oben beschrieben (zlib1g-dev) auf dem System installiert.

Wer kann mir helfen Python für die AVM FritzBox 7390 zu kompilieren. Vielleicht habe ich schon vorher etwas falsch gemacht oder irgendetwas vergessen.
Mit dem Freetz-VM-Image (v1.1.1) habe ich das ganze auch einmal probiert. Leider ohne Erfolg :(

Ich sag schonmal vielen Dank für die, welche den Thread überhaupt lesen ;)

Gruß
Router
 
Mach mal in deinem Build-System:
Code:
make python-dirclean
make zlib-precompiled
make python-precompiled
Wenn es funktioniert, dann werden wir den Patch anpassen.;)
 

Anhänge

  • proper_python_050611.patch.txt
    102.7 KB · Aufrufe: 30
Zuletzt bearbeitet:
Hallo sf3978,

wow, was für eine schnelle Antwort. Damit hatte ich nicht gerechnet und noch vom "Meister" persönlich :)
Das Kompilieren hat jetzt funktioniert. Hab direkt deinen neuen Patch ausprobiert.
Als Ergebnis gibt es unter dem "Source"-Verzeichnis eine kompilierte Version:
Code:
~/Desktop/trunk/source/target-mips_uClibc-0.9.29/Python-2.5/python

Eine Ausführung auf der FritzBox schlägt allerdings mit einer Fehlermeldung fehl:
Code:
# ./python
Segmentation fault

Über die Datei gibt es folgende Information:
Code:
~/Desktop/trunk/source/target-mips_uClibc-0.9.29/Python-2.5$ file python 
python: ELF 32-bit MSB executable, MIPS, MIPS32 version 1, dynamically linked (uses shared libs), with unknown capability 0x41000000 = 0xf676e75, not stripped


Hab ich doch noch irgendwie, irgendwo etwas vergessen? Hab jetzt nochmal ein wenig gestöbert, aber noch keine Lösung für dieses Problem gefunden. Ich hoffe, du kannst mir noch einmal helfe :)

Gruß
Router
 
Nach dem kompilieren solltst Du das gestrippte binary aus dem Verzeichnis ".../freetz-trunk/packages/target-mipsel_uClibc-0.9.29/python-2.5/root/usr/bin" benutzen (wenn Du das binary manuell auf deine Box übertragen willst). Die Übertragung des binary vom PC (Build-System) auf die Box, sollte im binär-Modus stattfinden. Wenn das binary auf der Box ist und Du ldd auf der Box hast, dann poste die Ausgabe von "ldd ./python". Danach ein "chmod 755 python" machen und danach die Ausgabe von "./python -h" posten.
So sieht es bei mir mit python auf der Box aus:
Code:
root@fritz:/var/media/ftp/uStor01/archiv#[COLOR="red"] ldd ./python[/COLOR]
        libdl.so.0 => /lib/libdl.so.0 (0x00000000)
        libutil.so.0 => /lib/libutil.so.0 (0x00000000)
        libm.so.0 => /lib/libm.so.0 (0x00000000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00000000)
        libc.so.0 => /lib/libc.so.0 (0x00000000)
        /lib/ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x00000000)
Code:
root@fritz:/var/media/ftp/uStor01/archiv#[COLOR="red"] chmod 755 python[/COLOR]
Code:
root@fritz:/var/media/ftp/uStor01/archiv# [COLOR="red"]./python -h[/COLOR]
usage: ./python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d     : debug output from parser (also PYTHONDEBUG=x)
-E     : ignore environment variables (such as PYTHONPATH)
-h     : print this help message and exit (also --help)
-i     : inspect interactively after running script, (also PYTHONINSPECT=x)
         and force prompts, even if stdin does not appear to be a terminal
-m mod : run library module as a script (terminates option list)
-O     : optimize generated bytecode (a tad; also PYTHONOPTIMIZE=x)
-OO    : remove doc-strings in addition to the -O optimizations
-Q arg : division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew
-S     : don't imply 'import site' on initialization
-t     : issue warnings about inconsistent tab usage (-tt: issue errors)
-u     : unbuffered binary stdout and stderr (also PYTHONUNBUFFERED=x)
         see man page for details on internal buffering relating to '-u'
-v     : verbose (trace import statements) (also PYTHONVERBOSE=x)
-V     : print the Python version number and exit (also --version)
-W arg : warning control (arg is action:message:category:module:lineno)
-x     : skip first line of source, allowing use of non-Unix forms of #!cmd
file   : program read from script file
-      : program read from stdin (default; interactive mode if a tty)
arg ...: arguments passed to program in sys.argv[1:]
Other environment variables:
PYTHONSTARTUP: file executed on interactive startup (no default)
PYTHONPATH   : ':'-separated list of directories prefixed to the
               default module search path.  The result is sys.path.
PYTHONHOME   : alternate <prefix> directory (or <prefix>:<exec_prefix>).
               The default module search path uses <prefix>/pythonX.X.
PYTHONCASEOK : ignore case in 'import' statements (Windows).

EDIT:
Code:
root@fritz:/var/media/ftp/uStor01/archiv# [COLOR="red"]./python[/COLOR]
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
'import site' failed; use -v for traceback
Python 2.5 (r25:51908, Jun  5 2011, 09:33:51) 
[GCC 4.4.6] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
 
Zuletzt bearbeitet:
Hallo sf3978,

vielen Dank, dass du soviel Geduld mit mir hast.
Ich habe die Datei (~/Desktop/trunk/packages/target-mips_uClibc-0.9.29/python-2.5/root/usr/bin/python) auf meine FritzBox über FTP im Binär-Modus übertragen.
Sie liegt dann unter "/var/media/ftp".
Nachdem setzen der Rechte und dem starten des Programms, bekam ich folgende Fehlermeldung:
Code:
# ./python -h
./python: can't load library 'libutil.so.0'

Nach ein bisschen suchen in diesem Forum, stiess ich auf diesen Beitrag: http://www.ip-phone-forum.de/showthread.php?t=211414&page=1
In diesem wird beschrieben, dass man die Datei "libutil.so.0" auf die Box übertragen und ein "export LD_LIBRARY_PATH=/var/media/ftp" machen soll.
Gesagt, getan. Ein erneutes starten bringt jetzt allerdings die Fehlermeldung:
Code:
# ./python -h
./python: symbol 'stdout': can't handle reloc type 0x7e

Um dennoch mal die Abhängigkeiten von den Shared Libraries anzeigen zu lassen, kompilierte ich noch "ldd" dazu und hab es auf die Box übertragen.
Beim Ausführen erhalte ich allerdings die selbe Fehlermeldung:
Code:
# ./ldd ./python
./ldd: symbol 'stderr': can't handle reloc type 0x7e

Ein "file" auf die Python-Datei bringt folgendes zu Tage:
Code:
~/Desktop/trunk/packages/target-mips_uClibc-0.9.29/python-2.5/root/usr/bin$ file python 
python: ELF 32-bit MSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0x41000000 = 0xf676e75, stripped

Das ist bestimmt nur eine Kleinigkeit, die ich übersehen habe. Leider hab ich im Moment noch nichts brauchbares (weder im Forum noch über Google) gefunden, womit sich diese
Fehlermeldung beseitigen lässt.

Gruß
Router
 
Um dennoch mal die Abhängigkeiten von den Shared Libraries anzeigen zu lassen, kompilierte ich noch "ldd" dazu und hab es auf die Box übertragen.
Beim Ausführen erhalte ich allerdings die selbe Fehlermeldung:
Code:
# ./ldd ./python
./ldd: symbol 'stderr': can't handle reloc type 0x7e
Wie ist die Ausgabe von:
Code:
./ldd --help
?

EDIT:

Code:
... dass man die Datei "libutil.so.0" auf die Box übertragen ...
Von wo hast Du die "libutil.so.0" bzw. wie hast Du diese auf die Box übertragen?
 
Zuletzt bearbeitet:
Hallo sf3978,

eine Ausgabe von ./ldd --help bringt die selbe Fehlermeldung:
Code:
# ./ldd --help  
./ldd: symbol 'stderr': can't handle reloc type 0x7e

Ich hab die "libutil.so.0" Datei in drei Verzeichnissen gefunden.
Code:
./build/modified/filesystem/lib/libutil.so.0
./toolchain/build/mips_gcc-4.4.6_uClibc-0.9.29/mips-linux-uclibc/lib/libutil.so.0
./packages/target-mips_uClibc-0.9.29/root/lib/libutil.so.0

Alle drei hatte ich über Filezilla im Binär-Modus auf die FritzBox ins Verzeichnis "/var/media/ftp" übertragen. Leider immer mit dem selben Ergebnis.

Gruß
Router
 
...
Alle drei hatte ich über Filezilla im Binär-Modus auf die FritzBox ins Verzeichnis "/var/media/ftp" übertragen. Leider immer mit dem selben Ergebnis.
Ich denke nicht, dass diese lib in dem Verzeichnis "/var/media/ftp" gefunden wird. Du musst diese lib mit dem Freetz-Image auf die Box übertragen.

EDIT:

Code:
libutil.so.0 => [COLOR="red"][B]/lib/[/B][/COLOR]libutil.so.0 (0x2aad1000)

EDIT 2:

Code:
config [COLOR="red"]FREETZ_LIB_libutil[/COLOR]
	bool "libutil-0.9.2x.so"
	default n
	help
		[B]uClibc[/B] is a small C standard library intended for embedded Linux
		systems.
EDIT 3:
Schau mal mit "make menuconfig" bei "Advanced options - Shared libraries - uClibc - libutil-0.9.2x.so" nach.

EDIT 4:
Du kannst auch in die Datei ".../freetz-trunk/make/python/Config.in", select FREETZ_LIB_libutil eintragen.
"make python-dirclean" nicht vergessen.

EDIT 5:
Wegen der Abhängigkeiten zu diversen libraries, solltest Du ldd, auch mit dem Freetz-Image auf deiner Box installieren:
Code:
# ldd /usr/bin/ldd
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2aabe000)
        libc.so.0 => /lib/libc.so.0 (0x2aadc000)
        [COLOR="red"]ld-uClibc.so.0[/COLOR] => /lib/ld-uClibc.so.0 (0x2aaa8000)
 
Zuletzt bearbeitet:
Hallo sf3978,

entschuldige, dass ich mich jetzt erst melde. Leider kam noch ein Gewitter dazwischen.
Ich muss also das ganze Image auf die Box bügeln. Oh je, dass trau ich mir noch nicht zu. Dachte das ein einfaches übertragen des Programms reichen würde.

Zu deinem letzten Posting (Edit 3) wurden alle "Shared libraries - uClibc - libutil*" aktiviert. Auch das (Edit 4) hatte ich ausprobiert.

Da ich schon etwas vom "statischen" Linken gelesen hatte, hab ich nochmal gesucht und versucht, die Bibliotheken "statisch" zu linken. Dazu hab ich in der "make/python/python.mk" die Zeile " LDFLAGS="-static" " bei "$($(PKG)_BINARY): $($(PKG)_DIR)/.configured" hinzugefügt.
Beim erneuten kompilieren bekomm ich jetzt allerdings die Fehlermeldung:
Code:
make: *** Keine Regel vorhanden, um das Target »source/target-mips_uClibc-0.9.29/Python-2.5/build/lib.linux-i686-2.5/_bisect.so«, 
  benötigt von »source/target-mips_uClibc-0.9.29/Python-2.5/build/lib.linux-i686-2.5/stripped/_bisect.so«, zu erstellen.  Schluss.

Weiß im Moment auch gar nicht, ob mein Vorhaben überhaupt Sinn macht.

Gruß
Router
 
Auch wenn Fehlermeldung, schau mal nach im Verzeichnis "packages/target-mips_uClibc-0.9.29/python-2.5/root/usr/bin". Dort müsste das statisch kompilierte binary "python" für deine Box (mips) sein.
Code:
:~/myfreetz/freetz7075/freetz-trunk> file packages/target-mips_uClibc-0.9.29/python-2.5/root/usr/bin/python
packages/target-mips_uClibc-0.9.29/python-2.5/root/usr/bin/python: ELF 32-bit MSB executable, MIPS, MIPS32 version 1 (SYSV), [COLOR="red"][B]statically linked[/B][/COLOR], with unknown capability 0x41000000 = 0xf676e75, with unknown capability 0x10000 = 0x70403, stripped
 
./python: symbol 'stdout': can't handle reloc type 0x7e
kleine Anmerkung von mir: auch wenn Du die libutil auf die Box überträgst, wird es nicht funktionieren. Der Fehler oben deutet daraufhin, dass die uclibc auf Deiner Box den sogenannten MIPS non-PIC relocation type nicht unterstützt oder anders ausgedrückt, Du verwendest eine ungefreetzte Box. Dieser Modus ist in freetz standardmäßig eingeschaltet (die so kompilierten Binaries sind spürbar kleiner). Mögliche Lösungen:
  • python statisch linken
  • toolchain selbst bauen, diese Zeile vorher auskommentieren
  • Deine Box freetzen :)
 
Hallo sf3978 und er13,

@sf3978:
in dem Verzeichnnis "packages/target-mips_uClibc-0.9.29/python-2.5/root/usr/bin" liegt nur eine dynamisch gelinkte Datei.

@er13:
zu 1) Hatte ich schon probiert, siehe Posting #9
zu 2) Hab nochmal den "Trunk" neu ausgecheckt (Rev. 7083), den Patch drüberlaufen lassen und vorher die Zeile 55
in "~/Desktop/trunk/toolchain/make/target/gcc$ gedit gcc.mk" auskommentiert:
Danach "make menuconfig" und die gleichen Einstellungen wie im Posting #1 genommen. Danach "make" ausgeführt.

Ergebnis:
Code:
~/Desktop/trunk/packages/target-mips_uClibc-0.9.29/python-2.5/root/usr/bin$ file python 
python: ELF 32-bit MSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0x41000000 = 0xf676e75, strippe
Leider auch keine statisch gelinkte Datei.

zu 3) Kommt noch nicht in Frage :)

Gruß
Router
 
Hallo sf3978 und er13,

@sf3978:
in dem Verzeichnnis "packages/target-mips_uClibc-0.9.29/python-2.5/root/usr/bin" liegt nur eine dynamisch gelinkte Datei.
...
Hmm, dann werde ich dir einen Patch anhängen, mit dem Du hoffentlich statisch kompilieren kannst.;-)

EDIT:
Code:
> file packages/target-mipsel_uClibc-0.9.29/python-2.5/root/usr/bin/python
packages/target-mipsel_uClibc-0.9.29/python-2.5/root/usr/bin/python: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), [COLOR="red"]statically linked[/COLOR], with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x3040000, stripped
 

Anhänge

  • python_static.patch.txt
    107.3 KB · Aufrufe: 26
Zuletzt bearbeitet:
Hallo sf3978,

ICH GLAUB ES NICHT! Es funktioniert :D Vielen Dank! Endlich Python auf der FritzBox. Juhuuu... :D

Ich musste allerdings noch die Zeile "depends on FREETZ_PACKAGE_PYTHON" wegen Rekursion in der "make/python/Config.in"-Datei auskommentieren. Sonst ist kein Python unter
"make menuconfig" auswählbar. Danach erneut kompiliert und siehe da:
Code:
~/Desktop/trunk/packages/target-mips_uClibc-0.9.29/python-2.5/root/usr/bin$ file python 
python: ELF 32-bit MSB executable, MIPS, MIPS32 version 1 (SYSV), statically linked, with unknown capability 0x41000000 = 0xf676e75, stripped

Auf der Box dann dieses hier:
Code:
# ./python 
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
'import site' failed; use -v for traceback
Python 2.5 (r25:51908, Jun  6 2011, 02:54:00) 
[GCC 4.4.6] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Hab mir mal dein Patch im Vergleich zum alten angeschaut. Also das hätt ich so nicht hinbekommen. Da fehlt es mir noch ein wenig an Verständnis.

Was mich nur wundert: Dass trotzdem diese statisch gelinkte Datei auch "nur" ca. 2 MB groß ist. Hätte jetzt eigentlich so um die 10-20MB gerechnet. Aber nun gut. Es funktioniert ja :D

Nochmals vielen Dank!

Gruß
Router
 
Ich musste allerdings noch die Zeile "depends on FREETZ_PACKAGE_PYTHON" wegen Rekursion in der "make/python/Config.in"-Datei auskommentieren. Sonst ist kein Python unter
"make menuconfig" auswählbar.
Wenn Du das Freetz-Image nicht flashen willst, dann brauchst Du auch keine Auswahl von Python mit "make menuconfig" (d. h. kein Eintrag in der "make/python/Config.in"-Datei). Ein "make python-precompiled" hätte gereicht.
 
zu 2) Hab nochmal den "Trunk" neu ausgecheckt (Rev. 7083), den Patch drüberlaufen lassen und vorher die Zeile 55 in toolchain/make/target/gcc$ gedit gcc.mk auskommentiert:
Danach "make menuconfig" und die gleichen Einstellungen...

Leider auch keine statisch gelinkte Datei.
Da hast Du mich missverstanden, es sollte auch kein statisch gelinktes Binary rauskommen, sondern ein dynamisch gelinktes, aber so eins, das sich laden lässt, d.h. es kommt kein "can't handle reloc type 0x7e". Du hast auch nicht erwähnt, ob Du die Toolchain selbstgebaut hast oder nicht. "die gleichen Einstellungen" interpretiere ich als nicht. Die Zeile 55 auszukommentieren reicht alleine nicht aus, Du musst die Toolchain schon selbst bauen.

Solltest Du mit dem statisch gelinkten python zufrieden sein, so kannst Du mein Posting ignorieren.
 
Hallo zusammen,

habe auch versucht mal Python auf die 7390 zu bekommen.
Beim Kompilieren bekomme ich jedoch einen Fehler
Code:
/bin/sh: /home/user/Python-2.5/python: not found
make[1]: *** [sharedmods] Fehler 127
make[1]: Verlasse Verzeichnis '/home/user/freetz/trunk/source/target-mips_uClibc-0.9.31.1/Python-2.5'
liegt wahrschlich daran, dass ich Mint Linux 12 in einer VM benutze bzw. dass Mint Linux standardmäßig schon Python 2.7.2 installiert hat.
Ich denke, dass es am Patch liegt aus Post #13, da er für Python 2.5 erstellt wurde.
Leider komme ich damit nicht ganz klar. Könnte mir jemand sagen, wie ich den Patch auf 2.7.2 umstellen muss?

Habe folgendes gemacht:
1. Mint Linux in VM installiert
2. alles für Freetz installiert
3. Freetz trunk installiert
4. mittels menuconfig die 7390 ausgewählt und gespeichert.
5. patch eingespielt
6. make python-dirclean - make zlib-precompiled - make python-precompiled

EDIT:

Habe gestern noch ein debian net install in meiner VM installiert. Leider gleiches Problem.
 
Zuletzt bearbeitet:
Ich konnte auf dem Host-System kein Python 2.5 installieren, denn make install hat irgendwann "Segmentation fault" gesagt. Ich habe dann 2.5.6 genommen und als 2.5 umbenannt, da das Verzeichnis ~/Python-2.5 anscheinend fest im Patch vorausgesetzt wird.

Code:
cd ~
wget http://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz
tar xvzf Python-2.5.6.tgz
mv Python-2.5.6 Python-2.5
cd Python-2.5/
./configure
make
sudo make install
sudo ldconfig

Dann Freetz gebaut mit dem Patch proper_python_050611.patch.txt. Hat alles geklappt, python 2.5 läuft auf der Fritzbox 7390.

Ich will nun ein Modul PyUSB 0.4 auf Freetz bringen, um ein USB-Gerät anzusprechen. Es ist nur praktisch eine C-Datei drin, aber mit einem Python-Installer. Ich habe leider keinen Plan, wie man ein Python-Modul in Freetz reinbekommt, da ich mit Python-Installation keinerlei Erfahrung habe. Hat jemand eine Idee, in welche Richtung es geht (oder gar nicht geht)?
 
Danke für die Info, werde es mal probieren.
 
Hallo,

Ich verzweifle mit diesem Python - Fritz!BOX Paket :)

Der "make"-Befehl spuckt jedes Mal folgenden Code aus:

Code:
root@localhost:~/Python-2.5$ make
gcc -pthread -c -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Modules/config.o Modules/config.c
gcc -pthread -c -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -DPYTHONPATH='":plat-linux3:lib-tk"' \
		-DPREFIX='"/usr/local"' \
		-DEXEC_PREFIX='"/usr/local"' \
		-DVERSION='"2.5"' \
		-DVPATH='""' \
		-o Modules/getpath.o ./Modules/getpath.c
./Modules/getpath.c: In function ‘copy_absolute’:
./Modules/getpath.c:235:15: warning: ignoring return value of ‘getcwd’, declared with attribute warn_unused_result [-Wunused-result]
gcc -pthread -c -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -DSVNVERSION=\"`LC_ALL=C svnversion .`\" -o Modules/getbuildinfo.o ./Modules/getbuildinfo.c
gcc: error: directory": No such file or directory
make: *** [Modules/getbuildinfo.o] Error 1

Weiss jemand Rat?

Vielen Dank :)
 
Zuletzt bearbeitet:
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.