- Mitglied seit
- 9 Apr 2006
- Beiträge
- 688
- Punkte für Reaktionen
- 4
- Punkte
- 18
hallo zusammen,
auch ich möchte mich einmal an das Kompilieren von Programmen für die Fritz!Box wagen. Einige Threads, die sich mit diesem Thema beschäftigen habe ich schon gelesen, komme aber immer noch nicht ganz zurecht (bzw. erhalte bei meinen Veruchen Fehler) und bitte daher um Eure Hilfe.
(Wer nicht alles lesen will: das aktuelle Problem staht ganz unten!)
Zunächst mal möchte ich die Grundlagen klären (ich hoffe, das kommt auch anderen Interessierten zugute) und bitte darum, dass die Erfehrenen unter Euch, das entweder besteätigen oder ggf. berichtigen.
Wenn ich alles richtig verstanden habe, benötigt man eine toolchain und binutils und richtet sich eine buildroot ein.
Die buildroot ist die Arbeitsumgebung innerhalb der man arbeitet.
Der Unterscheid zwischen toolchain und binutils ist mir nicht ganz klar. Wie ich es verstanden habe sind die binutils Bestandteil der toolchain.
Die toolchain bildet einen Satz von Programmen/Skripten/Makefiles etc. mit denen man die Umgebung konfiguriert und die Kompilierungen durchführt.
Ist das soweit richtig? Muss man außer 'buildroot' noch was anderes installlieren, oder bringt das die vollständige toolchain mit?
Der nächste Schritt wäre die praktische Umsetzung.
Hier habe ich die Besonderheit, dass ich das Ganze nach Möglichkeit unter Mac OS X (BSD Unix) durchführen möchte. Alternativ, wenn es mir unter Mac OS X nicht gelingt, unter Suse Linux, wobei sich die Frage stellt, ob Version 8.2 genügen würde oder ob ich eine Version 9 benutzen muss/sollte.
Unter Mac OS X habe ich mir hier (http://buildroot.uclibc.org/) buildroot runtergeladen. 'make menuconfig' kann ich ausführen, erhalte aber einige Warnungen (warning: pointer targets in passing argument 1 of 'xyz' differ in signedness)
Ich weiss aber nicht genau, was ich dann einstellen muss (mips oder mipsel?). Ich habe mal mips probiert und bei 'filesystem for target device' ext2 entfernt und 'squashfs root filesystem' angehakt und sonst alles belassen, wie es war.
[edit:]Ich glaube ich brauche 'mipsel', richtig?
Da passiert aber das selbe.[/edit]
Beim zweiten 'make' erhalte ich dann folgende Fehler:
Der zcat Fehler lässt sich beheben, wenn an der entsprechenden Stelle 'zcat' durch 'gunzip -c' ersetze. Laut manpage ergänzt 'zcat' die Ednung .Z, wenn diese nicht vorhanden ist, 'gunzip -c' ist identisch zu zcat, ergänzt aber den Dateinamen nicht.
Den Schalter -a gibt es auf meinem System nicht (der entspricht auch nicht der [/URL=http://www.unix.org/single_unix_specification/]SUSv3[/URL]) und warum der hier verwendet werden soll, ist mir auch rätselhaft. Also habe ich ihn einfach entfernt.
Das Ganze startet dann erst einmal, es werden 'linux-libc-headers-2.4.31.tar.bz2' und 'uClibc-snapshot.tar.bz2' heruntergeladen und einige Kommados ausgeführt.
Ein langes sed Kommando bricht dann mit folgender Fehlermeldung ab:
'lstat' selbst kommt in dem ganzen sed Kommando nicht vor; ich hab auch kein 'lstat' auf meinem System, nur 'stat'
So, an der Stelle bin ich steckengeblieben und bitte um Eure Hilfe.
Danke im voraus.
auch ich möchte mich einmal an das Kompilieren von Programmen für die Fritz!Box wagen. Einige Threads, die sich mit diesem Thema beschäftigen habe ich schon gelesen, komme aber immer noch nicht ganz zurecht (bzw. erhalte bei meinen Veruchen Fehler) und bitte daher um Eure Hilfe.
(Wer nicht alles lesen will: das aktuelle Problem staht ganz unten!)
Zunächst mal möchte ich die Grundlagen klären (ich hoffe, das kommt auch anderen Interessierten zugute) und bitte darum, dass die Erfehrenen unter Euch, das entweder besteätigen oder ggf. berichtigen.
Wenn ich alles richtig verstanden habe, benötigt man eine toolchain und binutils und richtet sich eine buildroot ein.
Die buildroot ist die Arbeitsumgebung innerhalb der man arbeitet.
Der Unterscheid zwischen toolchain und binutils ist mir nicht ganz klar. Wie ich es verstanden habe sind die binutils Bestandteil der toolchain.
Die toolchain bildet einen Satz von Programmen/Skripten/Makefiles etc. mit denen man die Umgebung konfiguriert und die Kompilierungen durchführt.
Ist das soweit richtig? Muss man außer 'buildroot' noch was anderes installlieren, oder bringt das die vollständige toolchain mit?
Der nächste Schritt wäre die praktische Umsetzung.
Hier habe ich die Besonderheit, dass ich das Ganze nach Möglichkeit unter Mac OS X (BSD Unix) durchführen möchte. Alternativ, wenn es mir unter Mac OS X nicht gelingt, unter Suse Linux, wobei sich die Frage stellt, ob Version 8.2 genügen würde oder ob ich eine Version 9 benutzen muss/sollte.
Unter Mac OS X habe ich mir hier (http://buildroot.uclibc.org/) buildroot runtergeladen. 'make menuconfig' kann ich ausführen, erhalte aber einige Warnungen (warning: pointer targets in passing argument 1 of 'xyz' differ in signedness)
Ich weiss aber nicht genau, was ich dann einstellen muss (mips oder mipsel?). Ich habe mal mips probiert und bei 'filesystem for target device' ext2 entfernt und 'squashfs root filesystem' angehakt und sonst alles belassen, wie es war.
[edit:]Ich glaube ich brauche 'mipsel', richtig?
Da passiert aber das selbe.[/edit]
Beim zweiten 'make' erhalte ich dann folgende Fehler:
Code:
% make 720
if [ -f "target/generic/skel.tar.gz" ] ; then \
zcat target/generic/skel.tar.gz | tar -C /Users/martin/code/01_cross/mips/buildroot/build_mips -xf -; \
fi;
[b]zcat: target/generic/skel.tar.gz[color=red].Z[/color]: No such file or directory[/b]
if [ -d "target/generic/target_skeleton" ] ; then \
cp -fa target/generic/target_skeleton/* /Users/martin/code/01_cross/mips/buildroot/build_mips/root/; \
fi;
[b]cp: illegal option -- a[/b]
usage: cp [-R [-H | -L | -P]] [-f | -i | -n] [-pv] src target
cp [-R [-H | -L | -P]] [-f | -i | -n] [-pv] src1 ... srcN directory
make: *** [/Users/martin/code/01_cross/mips/buildroot/build_mips/root] Error 64
Den Schalter -a gibt es auf meinem System nicht (der entspricht auch nicht der [/URL=http://www.unix.org/single_unix_specification/]SUSv3[/URL]) und warum der hier verwendet werden soll, ist mir auch rätselhaft. Also habe ich ihn einfach entfernt.
Das Ganze startet dann erst einmal, es werden 'linux-libc-headers-2.4.31.tar.bz2' und 'uClibc-snapshot.tar.bz2' heruntergeladen und einige Kommados ausgeführt.
Ein langes sed Kommando bricht dann mit folgender Fehlermeldung ab:
Code:
sed: lstat: No such file or directory
make: *** [/Users/martin/code/01_cross/mips/buildroot/toolchain_build_mips/uClibc/.configured] Error 1
So, an der Stelle bin ich steckengeblieben und bitte um Eure Hilfe.
Danke im voraus.
Zuletzt bearbeitet: