User Tools

Site Tools


projects:xnet:crosscompile

This is an old revision of the document!


Table of Contents

Hintergrund

Im Jahr 2005 haben Ralf, DL5RB, Tobi, DG3THX, Thomas, DL9SAU und ich (Jann, DG8NGN) den Code von Xnet (http://swiss-artg.ch/xnet/beta) fuer die Plattform Mipsel (Linksys WRT54) angepasst und crosscompiliert. Ein kleiner Teil von Xnet ist in Assembler geschrieben und muss jeweils haendisch angepasst werden.

Die Aenderungen sind in den Code zurueckgeflossen, so dass Jimy (Autor von Xnet) die Aenderungen in seiner Uebersetzungsumgebung einbauen konnte und wir nicht jede neue Version selbst wieder uebersetzen mussten.

In den letzten Jahren wurde ich immer wieder nach Xnet fuer den Raspberry PI (http://www.raspberrypi.org) oder Mikrotik Metarouter mit OpenWRT (http://wiki.mikrotik.com/wiki/Manual:Metarouter) gefragt. Ich hatte immer abgewunken, da ich lange Zeit nicht den aktuellen Code von Xnet hatte. Vor einiger Zeit hat mir dann Jimy den aktuellen Code wieder zukommen lassen, so dass es nun Zeit wird Xnet fuer die genannten Plattformen zu uebersetzen.

Aktueller Stand

Zum Jahreswechsel hatte ich am Chaos Communication Congress (http://events.ccc.de/congress/2014/wiki/Main_Page) zusammen mit Thomas, DL9SAU, mal wieder die Gelegenheit unser altes Werk durchzuforsten und aufzuarbeiten.

Mittlerweile habe ich an DB0FHN eine neue virtuelle Maschine installiert und alles Notwendige bereitgestellt. Nun ist dieser Text entstanden, damit ich Mitstreiter fuer die Crosscompilesession finde und sie auf diese Seite leiten kann :D Nun, hier seid ihr ;)

Xnet VM

Unter “jann@xnet:~/xnet$” liegt alles zu Xnet und unter “jann@xnet:~/openwrt$” habe ich die Cross-Compile Umgebung von OpenWRT uebersetzt.

Der alte Code liegt hier: * jann@xnet:~/xnet/oldcode$

Der alte Code mit der Modifikation fuer OpenWRT/Mipsel liegt hier: * jann@xnet:~/xnet/oldcode-mipsel$

Ein Diff zeigt die Unterschiede:

diff -Naur xnet/oldcode/c/ xnet/oldcode-mipsel/xnet138-mipsel/c/ |grep^+|grep -v Last|less

Da es nicht zu 100% die gleiche Version ist, gibt es ein paar Differenzen, die nicht weiter betrachtet werden muessen. Die wichtigen Aenderungen finden wir hier: * appl/lib/prolib.c * appl/pc/system.c * appl/unix/ummips.S (zusaetzliche Datei von Ralf, DL5RB) * mylib/strlib.c ← bin mir nicht sicher, ob die Aenderung hier relevant ist (vermutlich nicht)

Im Verzeichnis jann@xnet:~/xnet/compile$ habe ich Unterverzeichnisse fuer uns eingerichtet. Ich hab mir zum Beispiel den aktuellen Source aus jann@xnet:~/xnet/xnet-source/oldcode-mipsel.tar.gz entpacket und in jann@xnet:~/xnet/compile/jann/deliver$ mit “make -f ../makefile” erfolgreich uebersetzt.

Der alte Xnetsource compiliert nicht mehr sauber durch, da der GCC4 etwas penibler ist. Das ist fuer uns aber auch nicht notwendig, da wir nur am neuen Code interessiert sind.

Zum Test hab ich ihn trotzdem mal entpackt und im Makefile “makefile.linuxmips” den Compiler in der ersten Zeile angepasst:

CC =
/home/jann/openwrt/staging_dir/toolchain-mipsel_mips32_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mipsel-openwrt-linux-gcc

Er ist dann irgendwann ueber appl/mac/echodrv gestolpert…

Nunja, zwischen alt und neu liegen >8 Jahre und Jimy hat im neuen Code auch schon Support fuer den DLC7 eingebaut (ARM-Plattform). Wir hatten im damals den modifizierten Code ueberlassen und er hatte es dann in seine Compileumgebung einfliessen lassen. So hatten wir das Thema los, dass wir bei jedem Update selber compilieren muessen. Ich weiss nicht, in wie weit das jetzt im neuen Code zu sehen ist.

Unser Ziel ist es jetzt den Code fuer MIPS und ARM anzupassen. Der Code soll also auf dem Raspberry PI und in einem OpenWRT (Metarouter von Mikrotik) auf MIPS-Basis laufen. Ob wir dafuer alle Werkzeuge auf dem Rechner haben, wird sich zeigen. Es ist auf alle Faelle der richtige Anfang.

Ich werde mir zunaechst mit OpenWRT-Metarouter experimentieren. Einen Raspberry PI habe ich nicht (koennte einen Test aber irgendwo auf einem PI im HAMNET machen).

Falls Rootrechte notwendig sind, bitte Bescheidgeben.

Es freu mich, dass wir hier das Thema vielleicht auch noch voranbringen koennen!

Danke!

73,

Jann

projects/xnet/crosscompile.1421009462.txt.gz · Last modified: 2015/01/11 21:51 by jann