Eigene Binarys kompilieren, Freetz auf der Box nötig?

TomTomNavigator

Mitglied
Mitglied seit
24 Aug 2007
Beiträge
643
Punkte für Reaktionen
4
Punkte
18
Hallo!

Nach und nach kommt bei mir der Wunsch auf, auch mal ein eigenes Binary für die Fritz!Box zu kompilieren, sei es auch nur die aktuelle Busybox.
Nur wie genau gehe ich dazu vor? Habe schon reichlich im Netz gelesen, doch so eine richtige "Anleitung" hab ich bisher nicht gefunden.
Was ich bis jetzt habe, ist ein Stinky Linux im VMWare Player mit dem ich auch schon erfolgreich die aktuelle Version von Freetz für meine 7170 "hergestellt" habe.
Dazu bin ich nach dieser Anleitung vorgegangen: Klick!(Bereich FriBoLi/StinkyLinux)

Nuja, jetzt habe ich über die Freetz-Toolchain gelesen, aber so richtig weiter bin ich nicht gekommen. Ich bin dabei auf diese Seite gestoßen: Klick! , doch dort wird die Erstellung einer solchen Cross-Compiling Umgebung nur so lapidar abgetan.

Vielleicht findet sich ja jemand, der mir kurz erläutern könnte, wie ich denn zu meiner Cross-Compiling Umgebung komme und ob das Vorgehen, um z.B. die Busybox zu kompilieren, soweit noch stimmt, wie auf der Seite beschrieben.

Danke schonmal.

Gruß
TomTom
 
Die Freetz-Toolchain enthält alles, was du braucht. Die BB übrigens wird bei Freetz auf eine der aktuellsten ausgetauscht, sollte also deinerseits nicht nötig sein. Cross-Compilen funktioniert auch hervorragend, logischerweise, denn wie käme sonst das Freetz auf die Box?
 
Da Du ja freetz bereits erstellt hast, behaupte ich mal, dass du die nötigen Tools / Toolchain bereits erfolgreich benutzt hast.

In der Wiki ist einiges beschrieben, die Make files geben auch gern Auskunft. In der Wiki steht auch drin wie man seine eigenen Module entwickeln und einhängen kann.

Was die busybox angeht, wird die, glaube ich, auch von freetz übersetzt. Vielleicht kannst Du ja Deine Wunsch-Konfig damit bauen.... (Ich nehme mal an, du hast noch keine eigene "busibox" entwickelt ;) )
 
Okay, dann wäre ja eigentlich schon alles eingerichtet.
Nuja, ich dachte eben, ich fange mal mit ner Busybox an, man sollte sich ja erstmal "reinüben".
Dabei tritt aber folgendes Problem auf:
Code:
slightly@StinkyLinux:~$ wget http://busybox.net/downloads/busybox-1.9.1.tar.bz2
--13:35:09--  http://busybox.net/downloads/busybox-1.9.1.tar.bz2
           => `busybox-1.9.1.tar.bz2'
Auflösen des Hostnamen »busybox.net«.... 140.211.167.224
Verbindungsaufbau zu busybox.net|140.211.167.224|:80... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 1.795.971 (1.7M) [application/x-tar]

100%[====================================>] 1.795.971    109.25K/s    ETA 00:00

13:35:27 (108.94 KB/s) - »busybox-1.9.1.tar.bz2« gespeichert [1795971/1795971]

slightly@StinkyLinux:~$ tar xjf busybox-1.9.1.tar.bz2 -C /tmp
slightly@StinkyLinux:~$ cd /tmp/busybox-1.9.1
slightly@StinkyLinux:/tmp/busybox-1.9.1$ . /tmp/export_s
CC=/usr/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-gcc
LDFLAGS=-L/usr/mipsel-linux-uclibc/lib
CPPFLAGS=-I/usr/mipsel-linux-uclibc/include
CPP=/usr/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-cpp
PATH=/usr/mipsel-linux-uclibc/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
CROSS_COMPILE=mipsel-linux-uclibc-
ARCH=mipsel-linux
slightly@StinkyLinux:/tmp/busybox-1.9.1$ make menuconfig
scripts/kconfig/mconf Config.in
#
# using defaults found in .config
#


*** End of busybox configuration.
*** Execute 'make' to build busybox or try 'make help'.

/tmp/busybox-1.9.1/scripts/gcc-version.sh: line 11: mipsel-linux-uclibc-gcc: command not found
slightly@StinkyLinux:/tmp/busybox-1.9.1$ make
/tmp/busybox-1.9.1/scripts/gcc-version.sh: line 11: mipsel-linux-uclibc-gcc: command not found
  SPLIT   include/autoconf.h -> include/config/*
  GEN     include/bbconfigopts.h
/tmp/busybox-1.9.1/scripts/gcc-version.sh: line 11: mipsel-linux-uclibc-gcc: command not found
  HOSTCC  applets/usage
  GEN     include/usage_compressed.h
  HOSTCC  applets/applet_tables
  GEN     include/applet_tables.h
  CC      applets/applets.o
/bin/sh: mipsel-linux-uclibc-gcc: command not found
make[1]: *** [applets/applets.o] Fehler 127
make: *** [applets] Fehler 2
slightly@StinkyLinux:/tmp/busybox-1.9.1$
mipsel-linux-uclibc-gcc: command not found, tja, keine Ahnung, muss man noch irgendwelche Eingaben machen, bevor man make eingibt?
 
Stimmen deine Pfade? Wohl eher kaum, sonst würde er das finden.
Code:
ls -al /usr/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-gcc

Was kommt? Nichts ausser "not found", oder?
 
Wenn Du schon eine eigene Busybox erstellen willst, warum 1.9.1 und nicht die aktuelle?

Die einfachste Möglichkeit, an eine aktuelle Busybox für Deine Box zu kommen ist:
- Freetz herunterladen.
- Deine Box in der Konfiguration auswählen.
- make
Die Busybox befindet sind in build/modified/filesystem/bin/busybox.

Ansonsten erstellt Freetz das Programm mipsel-linux-uclibc-gcc oder lädt ein fertiges aus dem Internet.
Je nach Version Deiner C-Library befindet es sich im Verzeichnis toolchain/build/gcc-4.2.1-uClibc-0.9.28/mipsel-linux-uclibc/bin oder toolchain/build/gcc-4.2.1-uClibc-0.9.29/mipsel-linux-uclibc/bin.
Wenn Du also dieses Verzeichnis in den Pfad mit aufnimmst (oder irgendwo im Pfad Symlinks auf die Dateien erstellst), sollte es auch funktionieren, andere Programme von Hand zu übersetzen.
 
Alles klar, ich werd mich einfach noch ein bisschen spielen, und melde mich bei Bedarf wieder.
Danke soweit!
 
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.