Tun/Tap Kernel-Modul


enoritz

Still Fresh
Joined
Sep 5, 2006
Messages
41
ICQ
131370115
Hallo...

Ich hab gerade arge Probleme das Kernel-Modul Tun/Tap von http://vtun.sourceforge.net/tun/ zu kompilieren.

Ich benutze den arm-linux-gcc Compiler aus dem devkitGP2X. Nach dem entpacken der Tun/Tap Sourcen auf C:\tun-1.1 wechsle ich in der Eingabeaufforderung in das Verzeichnis und versuche das Konfigurationsscript aufzurufen:
Code:
sh configure --host=arm-linux
Den gcc-Compiler hab ich im configure-Script auf arm-linux-gcc abgeändert, sodass er damit keine Probleme mehr hat. Allerdings fing das Script dann an zu meckern, dass es die Kernel-Sourcen für Linux nicht finden konnte (in /usr/src/linux).
Code:
loading cache ./config.cache
checking host system type... arm-unknown-linux-gnu
checking host system type... arm-unknown-linux-gnu
checking target system type... arm-unknown-linux-gnu
checking build system type... arm-unknown-linux-gnu
checking for gcc... (cached) arm-linux-gcc
checking whether the C compiler (arm-linux-gcc  ) works... yes
checking whether the C compiler (arm-linux-gcc  ) is a cross-compiler... yes
checking whether we are using GNU C... (cached) yes
checking whether arm-linux-gcc accepts -g... (cached) yes
checking for gawk... (cached) gawk
checking for a BSD compatible install... (cached) /usr/bin/install -c
creating ./config.status
creating Makefile
configuring in linux
running /bin/sh ./configure  --host=arm-linux --cache-file=.././config.cache --srcdir=.
loading cache .././config.cache
checking for gcc... (cached) arm-linux-gcc
checking whether the C compiler (arm-linux-gcc  ) works... yes
checking whether the C compiler (arm-linux-gcc  ) is a cross-compiler... yes
checking whether we are using GNU C... (cached) yes
checking whether arm-linux-gcc accepts -g... (cached) yes
checking for kgcc... arm-linux-gcc
checking for gawk... (cached) gawk
checking for a BSD compatible install... (cached) /usr/bin/install -c
configure: error: Linux kernel source not found in /usr/srv/linux
configure: error: ./configure failed for linux

Also hab ich mir von http://svn.gp2x.com/gp2x/tag/kernel/2.0.0/ die Dateien auf die Festplatte gespiegelt(C:\Linux).

Allerdings hab ich jetzt ein neues Problem:
Code:
sh configure --host=arm-linux --with-kernel=/C/linux
Führt zur Ausgabe: wie oben. Allerdings mit anderen Fehlern am Ende:
Code:
<i>
</i>configure: error: Linux kernel /C/linux is not configured
configure: error: ./configure failed for Linux

Kann mir da vlt. jemand helfen? Ich hab schon probiert per make im C:\linux Verzeichnis probiert. Allerdings gibts da auch Probleme.

Ich hab auch schon ein vorkompiliertes Modul gesehn (tun.o), allerdings für eine andere Kernelversion (Das Modul war für irgendein Smartphone EZX oder so). Das einbinden hat funktioniert. Habe aber noch nicht weiter damit rumprobiert, weils ne Meldung Kernel-Module version mismatch gab.

Wäre schön wenn jemand Hinweise zum kompilieren des Moduls hätte.
(Im Wiki hab ich auch schon nachgeschaut. Allerdings müsste ich doch das Modul kompilieren können ohne am Kernel was zu verändern, um dann per insmod das Modul einzubinden...)
 
Die Ausgabe

configure: error: Linux kernel /C/linux is not configured

bedeutet, dass bei den Kernelquellen keine Konfiguration vorhanden ist. Diese liegt üblicherweise im Kernel-Verzeichnis und die Datei heisst .config (ist also versteckt). Entweder man erstellt selbst eine Konfiguration mit "make config" oder "make menuconfig" oder kopiert die Original-Konfig vom GP2X-Kernel an die entsprechende Stelle. Ich weiss allerdings nicht, ob die überhaupt irgendwo verfügbar ist.
 
Ok... Ich hab die .config datei gefunden. Jetzt hab ich ein weiteres Problem: der LN-Befehl wird nicht gefunden. Gibts da ne Lösung für oder kann ich die Verknüpfungen von Hand erstellen?


Edit:
Moment. Der Fehler liegt woanders:
Code:
<i>
</i>Making asm-arm/arch -> arm-arm/arch-mmsp2 symlink
ln: creating symbolic link 'include/asm-arm/arch' to 'arch-mmsp2': No such file or directory
make: *** [include/asm-arm/.arch] Error 1

Wie könnte man das Lösen?
 
enoritz said:
Ok... Ich hab die .config datei gefunden. Jetzt hab ich ein weiteres Problem: der LN-Befehl wird nicht gefunden. Gibts da ne Lösung für oder kann ich die Verknüpfungen von Hand erstellen?
Ich weiß jetzt nicht genau unter welchem System du kompilierst, aber kannst du "LN" nicht nachinstallieren?
 
Sorry. Ich hab gerade etwas länger zum editieren gebraucht...


Ich hab noch herausgefunden, das die Header und Source-Datei für das Tun-Modul auch im Quelltext vom Linux-Kernel enthalten ist. Hilft mir das in gewisser weise?
 
Im Wiki wird eine LiveCD erwähnt mit einer kompletten Entwicklungsumgebung. Gibts die irgendwo zum Runterladen?

Vieleicht gehts damit Problemloser... Ich schätze Windows ist nicht wirklich die richtige Plattform zur Entwicklung von gp2x-Programmen... :confused:
 
enoritz said:
Im Wiki wird eine LiveCD erwähnt mit einer kompletten Entwicklungsumgebung. Gibts die irgendwo zum Runterladen?

Vieleicht gehts damit Problemloser... Ich schätze Windows ist nicht wirklich die richtige Plattform zur Entwicklung von gp2x-Programmen... :confused:
Doch doch... Es hat zwar seine Grenzen, vorallem beim testen von Linuxspezifischen Dingen, aber mit IFDEF kann man ne Menge machen. Und mmu-patch z.b. is unter Linux ja auch nicht testbar. Ich programmiere üfr den GP2X sowohl unter Linux als auch Windows. Unter Windows war es wesentlich einfacher die IDE zu installieren...
 
So.. Ich hab jetzt nochmal ein bisschen in den Makefiles der Kernel-sourcen rumgespielt und ein par Probleme mit den Symlinks und dem rm-Befehl behoben. (Die traten komischer weise nur unter Windows, nicht aber unter Linux auf... :confused: )

Nun gibt es aber folgendes problem:
Code:
rm -r -f include/asm
( cd include ; ln -sf asm-arm asm)
make -C scripts/lxdialog all
make[1]: Entering directory `/C/linux/scripts/lxdialog'

>> Unable to find the Ncurses libraries.
>>
>> You must have Ncurses installed in order
>> to use 'make menuconfig'

make[1]: Leaving directory `/C/linux/scripts/lxdialog'
d:\entwicklung\devkitgp2x\bin\..\lib\gcc\arm-linux\4.0.2\..\..\..\..\arm-linux\bin\ld.exe: cannot find -lncurses
make[1]: *** [ncurses] Error 1
make: *** [menuconfig] Error 2

Ich hab ja hier das devkitGP2X für Windows. Über diese minsys-Programme kann ich hier ne Konsole mit sh starten um die Scripte ausführen zu können.

Nur wie bekomm ich diese Ncurses-Library installiert?
Jemand tolle Vorschläge parat?
 
Ok. Unter Linux hats fast problemlos funktioniert. Hat bloß viel Zeit in Anspruch genommen das toolchain zu kompilieren :confused:
(?!3h!?)

Aber jetzt hab ich endlich das Kernel-Modul...

Danke für eure Hilfe!
 
Back
Top