Ba denn dann werd ich mal ne kleine Anleitung machen:
1.) System (z.B. SUSE, Knoppix usw.)Booten
2.) Konsole (Terminal) öffnen
3.) Verzeichnis für den CrossKompiler erstellen z.B. mkdir ~/crosscompiler
4.) In das neu erstellte Verzeichnis wechseln cd ~/crosscompiler
5.) Sourcen herunterladen mit folgendem Befehl:
cvs -d
server:
[email protected]:/var/cvs checkout toolchain
(Falls er nach nem Passwort fragt einfach nur ENTER drücken es gibt
nämlich keins)
6.) In den durch den download neu erstellten Ordner toolchain wechseln
mit: cd toolchain
7.) In den Ordner des Compilers wechseln (habs nur mit gcc3.3 getestet)
mit: cd gcc-3.3.x
8.) Die Datei Makefile öffnen, die Zielumgebung Mipsel aktivieren,
Speichern und aus der Datei herausgehen mit:
vi Makefile
mit dem Cursor bis zu ARCH:=i386 und dort i (für Insert im vi) drücken
ein #-Zeichen vor dem ARCH:=i386 einfügen (so #ARCH:=i386)
mit dem Cursor bis zu #ARCH:=mipsel
das #-Zeichen entfernen (so ARCH:=mipsel)
einmal ESCAPE (Esc) drücken
dasnn Doppelpunkt gefolgt von wq eingeben (so :wq)
Damit müsste die Datei wieder geschlossen werden.
Natürlich kann man das auch mit jedem anderen Editor machen.
9.) CrosscKompiler compilieren mit:
make
Kaffeedrinken gehen, Freundinn mal wieder naschauen, usw.
Während des compilierens fragt er einige dinge wo er unterbricht und
auf eine Tastatureingabe wartet. Bei all diese Eingaben einfach nur
Enter drücken.
10.) Der CrossKompiler ist jetzt fertig und liegt unter:
~/crosscompiler/toolchain/gcc-3.3.x/toolchain_mipsel/bin/
sein Name ist mipsel-linux-gcc
Ein Testprogramm like "Hello World!" geht so:
1.) In einen Beliebigen Ordner wechseln z.B. in den vorher
erstellten Ordner crosscompiler mit:
cd ~/crosscompiler
2.) Testprogramm erstellen mit:
echo '#include <stdio.h>' >> helloworld.c
echo 'main() {' >> helloworld.c
echo 'printf("Hello World!");}' >> helloworld.c
3.) Testprogramm für die Fritz!Box compilieren:
~/crosscompiler/toolchain/gcc-3.3.x/toolchain_mipsel/bin/mipsel-linux-gcc -o ~/crosscompiler/helloworld.o /crosscompiler/helloworld.c
4.) das Kompilierte Programm (helloworld.o) auf die Fritz!Box schieben
(wie ihr das macht bleibt euch überlassen)
Ich habe es auf meinen Webserver unter Linux gelegt und dann
bin ich per telnet auf die Fritz!Box und hab mittels
wget
http://192.168.178.20/helloworld.o das file auf die Fritz!Box
in das Verzeichnis /var/ geladen.
5.) Datei helloworld.o ausführbar machen auf der Fritz!Box
per telnet auf die Fritz!Box und dort
chmod 755 helloworld.o
eingeben
6.) Ausführen der Datei helloworld.o mit
./helloworld.o
Nun muss als Ausgabe HelloWorld erscheinen.
Compilieren eines Paketes wie mini_httpd:
1.) Paket Herunterladen und entpacken.
Nun gibt es zwei Möglichkeiten:
2.1.) Makefile editieren und die Variable vom gcc bzw. cc auf den crosscompiler also ~/crosscompiler/toolchain/gcc-3.3.x/toolchain_mipsel/bin/mipsel-linux-gcc setzen
2.2) oder die Environment Variable für den gcc auf den Crosscompiler
setzen mit:
export CC=~/crosscompiler/toolchain/gcc-3.3.x/toolchain_mipsel/bin/mipsel-linux-gcc
wobei am Besten das ~/ durch den richtigen Pfad wie z.B.
/home/testuser/ ersetzt werden sollte
2.3) Und dann ein ./configure und ein make machen und hoffen das es
geht, bei mir hat das bis jetzt nur in den seltesten fällen funktioniert.
Bin gern für Rat offen.
2.4) Danach alles auf die Fritz!Box laden (z.B. als gepacktes tar-File)
und Ausführen.
Falls die Variante mit der Environmet Variable benutz wurde muss diese später wieder auf den normalen gcc geställt werden mit z.B.
export CC=gcc
Also falls noch Fragen sind einfach fragen.
MFG
Maruu