SoftEther VPN Server auf die Fritz Box installieren (sourcecode liegt vor)

ChAoS

Neuer User
Mitglied seit
19 Mai 2005
Beiträge
112
Punkte für Reaktionen
0
Punkte
16
Hallo liebes Forum,

ich habe in letzter Zeit sehr viel mit der Software von www.softether.org herumgebastelt (unter Ubuntu) und muss echt sagen es ist ein echt guter, kaskadierbarer, leistungsfähiger VPN server, der auch Protokolle wie L2TP/IPSEC, OpenVPN und ein eigenes SSL Protokoll anbietet.

Leider gibt es nur den direkten Download für little endian, so wie meine Info bisher lautete, läuft auf unseren Boxen aber big endian :)

Also kurz zur Sache:
Ich habe die gute FBF7490 momentan mit original AVM Firmware,
wenig bis mittlere Linuxkenntnisse (Ubuntu, apt-get, software downloaden, dann maken dann viel Fluchenm Fehlersuchen, make again und dann freuen ;) ;) ;)
Ich weiß, dass ich wahrscheinlich den Weg gehen muss, das Teil auf nen USB Stick (1GB Dinger fliegen hier noch genug rum) packen muss und per Skript von da aus starten muss

Da ich etwas gelesen hab von wegen, dass man C Programme mit Freetz kompillieren kann (zumindest hat man da wohl alles) hab ich mir ein nacktes Ubuntu schonmal in ne VM geladen und freetz ge-SVNt :)

SoftEther liegt glücklicherweise auch als Quellcode vor. Den hab ich auch per wget in de VM geladen und ent-tart

Nur wie gehts jetzt weiter (geht es überhaupt weiter, oder sagt ihr mir "lass es, wird eh nicht gehen") :cool:

vielen vielen superlieben Dank an alle schonmal

LG
Dirk
 
SoftEther liegt glücklicherweise auch als Quellcode vor. Den hab ich auch per wget in de VM geladen und ent-tart

Nur wie gehts jetzt weiter (geht es überhaupt weiter, oder sagt ihr mir "lass es, wird eh nicht gehen") :cool:

Das sollte schon möglich sein, auch mit Freetz. Ich habe diesen VPN-Server z. B. mit Ubuntu für die arm-Architektur, cross-compiliert. Habe lediglich die vorher erstellte Makefile-Datei für den compiler/linker, ar/ranlib und den Pfad der libraries angepasst (bzw. eine kleine Änderung im source code gemacht) und dann noch zusätzlich linken, weil die Datei "hamcore.se2" beim cross-compilieren nicht erstellt worden ist:
Code:
...
CC=arm-linux-gnueabihf-gcc
AR=arm-linux-gnueabihf-ar
RANLIB=arm-linux-gnueabihf-ranlib

OPTIONS_COMPILE_DEBUG=-U_OS_WIN32 -U_FORTIFY_SOURCE -D_DEBUG -DDEBUG -DUNIX -DUNIX_LINUX -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -g -fsigned-char --host=armv7l --libdir=/usr/lib/gcc/arm-linux-gnueabihf/4.6 -L/usr/lib/gcc/arm-linux-gnueabihf/4.6

OPTIONS_LINK_DEBUG=-g -fsigned-char -L/usr/lib/gcc/arm-linux-gnueabihf/4.6 --host=armv7l --libdir=/usr/lib/gcc/arm-linux-gnueabihf/4.6 -lm -ldl -lrt -lpthread -lssl -lcrypto -lz #-lreadline -lncurses

OPTIONS_COMPILE_RELEASE=-U_OS_WIN32 -U_FORTIFY_SOURCE -DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char --host=armv7l --libdir=/usr/lib/gcc/arm-linux-gnueabihf/4.6 -L/usr/lib/gcc/arm-linux-gnueabihf/4.6

OPTIONS_LINK_RELEASE=-O2 -fsigned-char --host=armv7l --libdir=/usr/lib/gcc/arm-linux-gnueabihf/4.6 -L/usr/lib/gcc/arm-linux-gnueabihf/4.6 -lm -ldl -lrt -lpthread -lssl -lcrypto -lz #-lreadline -lncurses
...
Code:
$ file ./vpnserver
./vpnserver: ELF 32-bit LSB executable, [color=red]ARM[/color], version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31, BuildID[sha1]=0xf265f93844607ce971474396d866f8c4c0c26c9b, stripped
Code:
 $ ./vpnserver -h
SoftEther VPN Server service program
Copyright (c) SoftEther VPN Project. All Rights Reserved.

vpnserver command usage:
 vpnserver start  - Start the SoftEther VPN Server service.
 vpnserver stop   - Stop the SoftEther VPN Server service if the service has been already started.
 
Hallo [SIZE=2pt]sf3978,

super lieben Dank schonmal für die sehr schnelle Antwort.

Wie gesagt ich bin nen echter Noob auf dem Gebiet, aber mit deiner / eurer Hilfe könnte es gelingen.

Also ich hab - damit es schneller geht - die VM von freetz heruntergeladen (da make menuconfig auf meiner Ubuntu Maschine gar nicht anlief - hier un da fehlte noch was). VM gestartet, svn repository von freetz 2.0 stable geladen, make menuconfig

[/SIZE]Cross-Compiler / Toolchain erstellen

Das Erstellen eines Cross-Compilers ist mit Freetz denkbar einfach:

  1. make menuconfig Hier unter Advanced options → Compiler options die Optionen für den Cross-Compiler wählen. Soll der Compiler Programme für eine mit Freetz erzeugte Firmware kompilieren, so ist in der Regel nichts zu ändern. Soll der Compiler hingegen für eine originale Firmware kompilieren können, so solltest du bei "uClibc config" die entsprechende Konfiguration auswählen.
    exclamation.png
    ACHTUNG: Im zweiten Fall sollte diese entpackte Instanz von Freetz nicht mehr zum Erstellen von Images verwendet werden, sondern nur noch der Cross-Compiler selbst.
  2. Benötigt wird ​gcc, ​binutils, ​make, ​bison, ​flex und ​texinfo: make toolchain
    Eine ganze Weile und ca 2 GB später wurden zwei Cross-Compiler erstellt:
    • ./toolchain/kernel/bin/*-unknown-linux-gnu-gcc : Cross-Compiler für die Kernel Sourcen
    • ./toolchain/target/bin/*-linux-uclibc-gcc : Cross-Compiler für Userspace Programme
  3. make libs Erstellt alle im menuconfig ausgewählten Libraries und installiert deren Header.
[SIZE=2pt]
[/SIZE]
durchgeführt. Lief auch so weit. Gerade den Sourcecode geladen ./configure gestartet. Linux gewählt - und makefile ist entstanden.

Mit nano im Makefile -> auf den ersten Blick erkenne ich schonmal so grob wieder, was du da meintest, doch kannst du mir sagen, wie die einstellungen für mips aussehen müssen???

# Variables

#CC=gcc

OPTIONS_COMPILE_DEBUG=-D_DEBUG -DDEBUG -DUNIX -DUNIX_LINUX -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -g -fsigned-char

OPTIONS_LINK_DEBUG=-g -fsigned-char -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz

OPTIONS_COMPILE_RELEASE=-DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char

OPTIONS_LINK_RELEASE=-O2 -fsigned-char -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz

INSTALL_BINDIR=/usr/bin/
INSTALL_VPNSERVER_DIR=/usr/vpnserver/
INSTALL_VPNBRIDGE_DIR=/usr/vpnbridge/
INSTALL_VPNCLIENT_DIR=/usr/vpnclient/
INSTALL_VPNCMD_DIR=/usr/vpncmd/

wenn dann alles "eingestellt" ist - dann einfach make machen??? (wie gesagt, ich hab noch nie cross kompilliert)... Wie siehts aus mit den libraries die eingebunden werden müssen, weil die FBF die selber (teilweise) nicht bereitstellt?

Danke schonmal und super LG

Dirk


EDIT:

also gerade mal analog das makefile (mit absoluten Pfaden) zu den AR, CC und RANLIB angepasst und einfach mal make gemacht (was hat man in einer VM schon zu verlieren ;) ;) ;) )

freetz@freetz-linux:~/v4.18-9570$ make
~/freetz-stable-2.0/toolchain/target/bin/mips-linux-gcc -DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -c src/Mayaqua/Cfg.c -o tmp/objs/Mayaqua/Cfg.o
In file included from src/Mayaqua/Cfg.c:125:0:
./src/Mayaqua/Mayaqua.h:285:31: fatal error: readline/readline.h: No such file or directory
compilation terminated.
make: *** [tmp/objs/Mayaqua/Cfg.o] Fehler 1
freetz@freetz-linux:~/v4.18-9570$




EDIT2:

readline per apt-get installiert aber nixda - gleicher fehler (jetzt bin ich an der Stelle "fluchen und suchen" ;) )
 
Zuletzt bearbeitet:
@ChAoS:
1. Das richtige Paket wäre vermutlich "libreadline-dev".

2. Nimm den Trunk und nicht die stable-Version.
 
Hi PeterPawn,

danke für die tipps. Hab ich genau so gemacht, VM neu aufgesetzt, svn diesmal aus dem devel geholt und und und...

root@freetz-linux:/home/freetz/v4.18-9570# make
/home/freetz/freetz-devel/toolchain/target/bin/mips-linux-uclibc-gcc -DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -c src/Mayaqua/Cfg.c -o tmp/objs/Mayaqua/Cfg.o
In file included from src/Mayaqua/Cfg.c:125:0:
./src/Mayaqua/Mayaqua.h:285:31: fatal error: readline/readline.h: No such file or directory
#include <readline/readline.h>
^
compilation terminated.
make: *** [tmp/objs/Mayaqua/Cfg.o] Fehler 1

habe auch genau libreadline-dev installiert, er sagt aktuell wäre es drauf

ist das korrekt, dass ich zum kompilierer den kompl. Pfad angeben muss???

$Makefile
...
CC=/home/freetz/freetz-devel/toolchain/target/bin/mips-linux-uclibc-gcc
...

muss ich unter make menuconfig etwas spezielles einstellen??? Ich habe einfach das BOX Modell auf die 7490 gesetzt und bin mit Speichern wieder raus und hab direkt im Anschluss make toolchain gestartet...

gerade noch herausgefunden -> gebe ich den absoluten pfad zu readline in der src an, geht der einen fehler weiter... auch eine datei bei readline... kann das sein, dass readline zwar heruntergeladen ist, aber nicht korrekt registriert ist???

#include </usr/include/readline/readline.h>
#include </usr/include/readline/history.h>

Danke nochmal :)



EEEDIT:

also der scheint readline und im späteren verlauf auch openssl unter [entpackte source]/src/ zu suchen. Also quick und dirty hab ich eben readline und openssl in /src erstellt und die files aus /usr/include/readline (und openssl) dareinkopiert und er legt los...

... legt los bis dahin:

rm -f tmp/as/vpnserver.a
ar r tmp/as/vpnserver.a tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIo_O tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o tmp/objs/vpnserver.o
ar: creating tmp/as/vpnserver.a
ranlib tmp/as/vpnserver.a
/home/freetz/freetz-devel/toolchain/target/bin/mips-linux-uclibc-gcc -DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIo_O tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o src/hamcorebuilder/hamcorebuilder.c -O2 -fsigned-char -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz -o tmp/hamcorebuilder
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/bin/ld: cannot find -lssl
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/bin/ld: cannot find -lcrypto
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/bin/ld: cannot find -lreadline
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/bin/ld: cannot find -lncurses
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/bin/ld: cannot find -lz
collect2: error: ld returned 1 exit status
make: *** [tmp/hamcorebuilder] Fehler 1
 
Zuletzt bearbeitet:
@ChAoS: eventuell wäre der Aufwand geringer, wenn Du das Binary mit Hilfe von buildroot erstellen würdest. Dort ist das Paket bereits enthalten. Achte drauf, ein möglichst passende Kernel-Version zu wählen (i.e. möglichst kleinere).
 
also der scheint readline und im späteren verlauf auch openssl unter [entpackte source]/src/ zu suchen.
Du kannst die Makefile-Datei (bei OPTIONS_...) schon so ergänzen, dass die libraries und evtl. erforderliche header-Dateien, auch im entsprechenden Verzeichnis gefunden werden. Siehe z. B. auch die Ausgaben von:
Code:
man gcc | fgrep -A 5 -e -Ldir
man gcc | fgrep -A 5 -e -Idir
 
Hi Leute,

danke erstmal für eure fleißige Beteiligung :)

also wie er13 meinte, habe ich mal buildroot heruntergeladen, make menuconfig, softether ausgewählt (vorher eine Abhängigkeit) und einfach mal make gemacht. Gefühlte 1 Stunde später und 1 mrd Zeilen auf dem Bildschirm ist er genau beim kompilieren von softether abgeschmiert...

webui\webui.css: offset: 1306756
Writing hamcore.se2...

Done.
make[4]: Verlasse Verzeichnis '/home/freetz/buildroot-2015.05/output/build/softether-18b120e5f747a84d26302ec706f6c1c91d642ace/src/bin/hamcore'
Making all in vpnserver
make[4]: Betrete Verzeichnis '/home/freetz/buildroot-2015.05/output/build/softether-18b120e5f747a84d26302ec706f6c1c91d642ace/src/vpnserver'
/home/freetz/buildroot-2015.05/output/host/usr/bin/arceb-buildroot-linux-uclibc-gcc -DHAVE_CONFIG_H -I. -I../.. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/home/freetz/buildroot-2015.05/output/host/usr/arceb-buildroot-linux-uclibc/sysroot/usr/include -I/home/freetz/buildroot-2015.05/output/host/usr/arceb-buildroot-linux-uclibc/sysroot/usr/include -g -D_DEBUG -DDEBUG -I../../src -I../../src/Mayaqua -I../../src/Cedar -DSTATE_DIR='"/var/lib/softether"' -DUNIX -DUNIX_LINUX -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -fsigned-char -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -matomic -Os -static -pthread -c -o vpnserver.o vpnserver.c
/bin/bash ../../libtool --tag=CC --mode=link /home/freetz/buildroot-2015.05/output/host/usr/bin/arceb-buildroot-linux-uclibc-gcc -g -D_DEBUG -DDEBUG -I../../src -I../../src/Mayaqua -I../../src/Cedar -DSTATE_DIR='"/var/lib/softether"' -DUNIX -DUNIX_LINUX -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -fsigned-char -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -matomic -Os -static -pthread -static -L/home/freetz/buildroot-2015.05/output/host/usr/arceb-buildroot-linux-uclibc/sysroot/usr/lib -L/home/freetz/buildroot-2015.05/output/host/usr/arceb-buildroot-linux-uclibc/sysroot/usr/lib -L/home/freetz/buildroot-2015.05/output/host/usr/arceb-buildroot-linux-uclibc/sysroot/usr/lib -o vpnserver vpnserver.o ../../src/libsoftether/libsoftether.la -lz -lrt -lz -lssl -lcrypto -lncurses -lreadline -lcurses
libtool: link: /home/freetz/buildroot-2015.05/output/host/usr/bin/arceb-buildroot-linux-uclibc-gcc -g -D_DEBUG -DDEBUG -I../../src -I../../src/Mayaqua -I../../src/Cedar -DSTATE_DIR=\"/var/lib/softether\" -DUNIX -DUNIX_LINUX -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -fsigned-char -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -matomic -Os -static -pthread -static -o vpnserver vpnserver.o -L/home/freetz/buildroot-2015.05/output/host/usr/arceb-buildroot-linux-uclibc/sysroot/usr/lib ../../src/libsoftether/.libs/libsoftether.a -lrt -lz -lssl -lcrypto -lncurses -lreadline -lcurses -pthread
/home/freetz/buildroot-2015.05/output/host/usr/arceb-buildroot-linux-uclibc/sysroot/usr/lib/libcrypto.a(b_sock.o): In function `BIO_get_host_ip':
b_sock.c:(.text+0x54): warning: gethostbyname is obsolescent, use getnameinfo() instead.
../../src/libsoftether/.libs/libsoftether.a(Internat.o): In function `IconvWideToStrInternal':
/home/freetz/buildroot-2015.05/output/build/softether-18b120e5f747a84d26302ec706f6c1c91d642ace/src/Mayaqua/Internat.c:1118: undefined reference to `libiconv_open'
../../src/libsoftether/.libs/libsoftether.a(Internat.o): In function `IconvStrToWideInternal':
/home/freetz/buildroot-2015.05/output/build/softether-18b120e5f747a84d26302ec706f6c1c91d642ace/src/Mayaqua/Internat.c:1124: undefined reference to `libiconv_open'
../../src/libsoftether/.libs/libsoftether.a(Internat.o): In function `IconvFreeInternal':
/home/freetz/buildroot-2015.05/output/build/softether-18b120e5f747a84d26302ec706f6c1c91d642ace/src/Mayaqua/Internat.c:1130: undefined reference to `libiconv_close'
/home/freetz/buildroot-2015.05/output/build/softether-18b120e5f747a84d26302ec706f6c1c91d642ace/src/Mayaqua/Internat.c:1130: undefined reference to `libiconv_close'
../../src/libsoftether/.libs/libsoftether.a(Internat.o): In function `UnixUniToStr':
/home/freetz/buildroot-2015.05/output/build/softether-18b120e5f747a84d26302ec706f6c1c91d642ace/src/Mayaqua/Internat.c:1097: undefined reference to `libiconv'
../../src/libsoftether/.libs/libsoftether.a(Internat.o): In function `UnixStrToUni':
/home/freetz/buildroot-2015.05/output/build/softether-18b120e5f747a84d26302ec706f6c1c91d642ace/src/Mayaqua/Internat.c:1024: undefined reference to `libiconv'
collect2: error: ld returned 1 exit status
make[4]: *** [vpnserver] Fehler 1
make[4]: Verlasse Verzeichnis '/home/freetz/buildroot-2015.05/output/build/softether-18b120e5f747a84d26302ec706f6c1c91d642ace/src/vpnserver'
make[3]: *** [all-recursive] Fehler 1
make[3]: Verlasse Verzeichnis '/home/freetz/buildroot-2015.05/output/build/softether-18b120e5f747a84d26302ec706f6c1c91d642ace/src'
make[2]: *** [all-recursive] Fehler 1
make[2]: Verlasse Verzeichnis '/home/freetz/buildroot-2015.05/output/build/softether-18b120e5f747a84d26302ec706f6c1c91d642ace'
make[1]: *** [all] Fehler 2
make[1]: Verlasse Verzeichnis '/home/freetz/buildroot-2015.05/output/build/softether-18b120e5f747a84d26302ec706f6c1c91d642ace'
make: *** [/home/freetz/buildroot-2015.05/output/build/softether-18b120e5f747a84d26302ec706f6c1c91d642ace/.stamp_built] Fehler 2

während der kompilierungsgeschichte kam mir dann die idee im make menuconfig von freetz-devel noch einmal nachzusehen und siehe da unter shared libraries habe ich genau die angemeckerten
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/bin/ld: cannot find -lssl
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/bin/ld: cannot find -lcrypto
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/bin/ld: cannot find -lreadline
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/bin/ld: cannot find -lncurses
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/bin/ld: cannot find -lz

gefunden, angehakt und mit make libs zur verfügung gestellt... wow siehe da es ging wieder einen schritt weiter... make kommt jetz immerhin mit dem fehler

freetz@freetz-linux:~/v4.18-9570$ make
/home/freetz/freetz-devel/toolchain/target/bin/mips-linux-uclibc-gcc -DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIo_O tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o src/hamcorebuilder/hamcorebuilder.c -O2 -fsigned-char -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz -o tmp/hamcorebuilder
tmp/hamcorebuilder src/bin/hamcore/ src/bin/BuiltHamcoreFiles/unix/hamcore.se2
tmp/hamcorebuilder: 1: tmp/hamcorebuilder: Syntax error: word unexpected (expecting ")")
make: *** [src/bin/BuiltHamcoreFiles/unix/hamcore.se2] Fehler 2
freetz@freetz-linux:~/v4.18-9570$

EDIT:

hat das was vielleicht damit zu tun?

... Habe lediglich die vorher erstellte Makefile-Datei für den compiler/linker, ar/ranlib und den Pfad der libraries angepasst (bzw. eine kleine Änderung im source code gemacht) und dann noch zusätzlich linken, weil die Datei "hamcore.se2" beim cross-compilieren nicht erstellt worden ist:
...
 
Zuletzt bearbeitet:
hat das was vielleicht damit zu tun?

Ja. Schau mal ob trotz dieses Fehlers, die ar-Archiv-Dateien (vpnserver.a & Co.) im Verzeichnis "tmp/as" erstellt worden sind.

EDIT:

Wenn ja, dann kannst Du auch manuell mit dem richtigen Linker, das binary erstellen. Z. B.:
Code:
gcc vpnserver.a -pthread -lrt -lm -lz -lssl -lcrypto -lpthread -ldl -lreadline -lcurses -o vpnserver
Die für run time erforderliche Datei "hamcore.se2", ist unabhängig von der Prozessor-Architektur.
 
Zuletzt bearbeitet:
jupp bzw nur genau die vpnserver.a - und das heißt???

freetz@freetz-linux:~/v4.18-9570/tmp/as$ ls -l
insgesamt 2908
-rw-r--r-- 1 freetz freetz 2974476 Aug 5 09:27 vpnserver.a
freetz@freetz-linux:~/v4.18-9570/tmp/as$

auch edit

das habe ich auch gelesen, dass die hamcore.se2 unabhängig ist. deshalb hab ich zwischenzeitlich make clean gemacht und aus Makefile die verlinkungen auf die cross kompilierer rausgenommen, also das ding erfolgreich für x86 kompiliert, hamcore.se2 rausgenommen wieder make clean, makefile wieder auf die cross kompilierer gelinkt hamcore wieder nach /src/bin/BuiltHamcoreFiles/unix kopiert, neues make gemacht, aber er will trotzdem nicht "durchmaken" ;)

uff, für nen neuling ganz viel stoff...
aber ich hab (wohl oder übel) viel zeit, da mir hier bei meinem job gerade die hände gebunden sind, da hab ich halt zeit für sowas ;)
 
Zuletzt bearbeitet:
... vpnserver.a - und das heißt???
Siehe oben mein EDIT im Beitrag von 09:25 Uhr.

EDIT:

Evtl. musst Du dem richtigen Linker, mit "-L<dir>" angeben, wo sich die erforderlichen libraries befinden.
 
Zuletzt bearbeitet:
Im Makefile entsprechende Sektion deaktiviert:

# hamcore.se2 Archive File
#src/bin/BuiltHamcoreFiles/unix/hamcore.se2: tmp/hamcorebuilder $(HAMCORE_FILES)
# @mkdir -p src/bin/BuiltHamcoreFiles/unix/
# tmp/hamcorebuilder src/bin/hamcore/ src/bin/BuiltHamcoreFiles/unix/hamcore.se2

make rennt nun durch und ich habe unter /bin/vpnserver

freetz@freetz-linux:~/v4.18-9570/bin/vpnserver$ ls -l
insgesamt 3172
-rw-r--r-- 1 freetz freetz 1293788 Aug 5 09:39 hamcore.se2
-rwxr-xr-x 1 freetz freetz 1951980 Aug 5 09:39 vpnserver
freetz@freetz-linux:~/v4.18-9570/bin/vpnserver$

gut - jetzt bin ich durchgeschwitzt und trau mich ehrlich gesagt nich das ding in der box zu starten ;) ;) ;)

hab hier auf der arbeit "nur" eine 7390 herumfliegen, werde gleich mal schauen, ob ich da was machen kann und berichten
zum prozedere: USB Stick, ext4 formatiert, hamcore und vpnserver drauf, in die fritz rein, telnet auf die fritz, auf den stick und vpnserver ausführen? sorry wenn ich dumm klinge, aber beim ersten mal ist man immer dumm ;)
 
Zuletzt bearbeitet:
... nach /src/bin/BuiltHamcoreFiles/unix kopiert, neues make gemacht, aber er will trotzdem nicht "durchmaken" ;)

Wenn die Verzeichnisse "bin/vpnserver ..." schon vorhanden sind, dann evtl. die Datei "hamcore.se2" dort rein kopieren und erneut ohne "make clean" versuchen. ... oder "manuell" linken (siehe oben).
 
Code:
-rwxr-xr-x 1 freetz freetz 1951980 Aug 5 09:39 vpnserver



zum prozedere: USB Stick, ext4 formatiert, hamcore und vpnserver drauf, in die fritz rein, telnet auf die fritz, auf den stick und vpnserver ausführen? sorry wenn ich dumm klinge, aber beim ersten mal ist man immer dumm ;)

edit:
die hamcore.se2 kommt mir etwas klein vor... sollte die nicht wesentl. größer sein???
Evtl. noch strippen, siehe die Ausgabe von file in deinem Build-System. Für die Konfiguration wird noch das binary vpncmd zusätzlich benötigt. Die hamcore.se2 hat bei mir 1,3 MB. Betr. die Konfiguration von vpnserver siehe die entsprechenden tutorials im Internet (z. b. auch für den RaspberryPi).
 
okay, sieht nach do it again aus... auf der box kommt folgendes:

# ./vpnserver
./vpnserver: can't load library 'libreadline.so.6'
#

jetzt ist nur die frage, wie kompiliere ich es "statisch"?

aber so langsam sehe ich etwas licht am horizont

LG
 
jetzt ist nur die frage, wie kompiliere ich es "statisch"?
Du könntest die vpnserver.a-Datei "manuell" linken und statt die "-lreadline" die "libreadline.a"-Datei mit ihrem Pfad verwenden.
 
Du könntest die vpnserver.a-Datei "manuell" linken und statt die "-lreadline" die "libreadline.a"-Datei mit ihrem Pfad verwenden.

Ich dachte ich hätts verstanden, nano /tmp/as/vpnserver.a aber das ist schon nicht mehr wirklich lesbar... dachte hier einfach libreadline.a eintragen und gut ist...

weiterhin probiert - den befehl -static für das kompillieren der vpnserver.a benutzt aber da lauf ich auf folgende pumpe:

Code:
freetz@freetz-linux:~/v4.18-9570$ /home/freetz/freetz-devel/toolchain/target/bin/mips-linux-uclibc-gcc tmp/as/vpnserver.a -fsigned-char -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz -static -o bin/vpnserver/vpnserver
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/lib/libcrypto.a(b_sock.o): In function `BIO_gethostbyname':
b_sock.c:(.text.BIO_gethostbyname+0xc): warning: gethostbyname is obsolescent, use getnameinfo() instead.
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup':
dso_dlfcn.c:(.text.dlfcn_globallookup+0x10): undefined reference to `dlopen'
dso_dlfcn.c:(.text.dlfcn_globallookup+0x2c): undefined reference to `dlopen'
dso_dlfcn.c:(.text.dlfcn_globallookup+0x40): undefined reference to `dlsym'
dso_dlfcn.c:(.text.dlfcn_globallookup+0x48): undefined reference to `dlsym'
dso_dlfcn.c:(.text.dlfcn_globallookup+0x58): undefined reference to `dlclose'
dso_dlfcn.c:(.text.dlfcn_globallookup+0x5c): undefined reference to `dlclose'
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_func':
dso_dlfcn.c:(.text.dlfcn_bind_func+0xbc): undefined reference to `dlsym'
dso_dlfcn.c:(.text.dlfcn_bind_func+0xc4): undefined reference to `dlsym'
dso_dlfcn.c:(.text.dlfcn_bind_func+0xf8): undefined reference to `dlerror'
dso_dlfcn.c:(.text.dlfcn_bind_func+0xfc): undefined reference to `dlerror'
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_var':
dso_dlfcn.c:(.text.dlfcn_bind_var+0xbc): undefined reference to `dlsym'
dso_dlfcn.c:(.text.dlfcn_bind_var+0xc4): undefined reference to `dlsym'
dso_dlfcn.c:(.text.dlfcn_bind_var+0xf8): undefined reference to `dlerror'
dso_dlfcn.c:(.text.dlfcn_bind_var+0xfc): undefined reference to `dlerror'
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_load':
dso_dlfcn.c:(.text.dlfcn_load+0x78): undefined reference to `dlopen'
dso_dlfcn.c:(.text.dlfcn_load+0x80): undefined reference to `dlopen'
dso_dlfcn.c:(.text.dlfcn_load+0xb4): undefined reference to `dlerror'
dso_dlfcn.c:(.text.dlfcn_load+0xb8): undefined reference to `dlerror'
dso_dlfcn.c:(.text.dlfcn_load+0x138): undefined reference to `dlclose'
dso_dlfcn.c:(.text.dlfcn_load+0x13c): undefined reference to `dlclose'
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_pathbyaddr':
dso_dlfcn.c:(.text.dlfcn_pathbyaddr+0x3c): undefined reference to `dladdr'
dso_dlfcn.c:(.text.dlfcn_pathbyaddr+0x40): undefined reference to `dladdr'
dso_dlfcn.c:(.text.dlfcn_pathbyaddr+0xa4): undefined reference to `dlerror'
dso_dlfcn.c:(.text.dlfcn_pathbyaddr+0xa8): undefined reference to `dlerror'
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_unload':
dso_dlfcn.c:(.text.dlfcn_unload+0xa8): undefined reference to `dlclose'
dso_dlfcn.c:(.text.dlfcn_unload+0xac): undefined reference to `dlclose'
collect2: error: ld returned 1 exit status
freetz@freetz-linux:~/v4.18-9570$
 
Ich dachte ich hätts verstanden, nano /tmp/as/vpnserver.a aber das ist schon nicht mehr wirklich lesbar... dachte hier einfach libreadline.a eintragen und gut ist...

nano ist doch kein Linker. ;-) Ich habe doch geschrieben, z. B.:
Code:
gcc /<Pfad>/vpnserver.a -L<dir> -pthread -lrt -lm -lz -lssl -lcrypto -lpthread -ldl /<Pfad>/libreadline.a -lcurses -o vpnserver
 
Das vollständig statische Linken von Programmen, die anschließend noch selbst dynamisches Laden verwenden wollen, ist auch nicht so ganz ohne ... ich habe da schon schöne SIGSEGVs produziert.

Ich würde also nicht komplett statisch linken und tatsächlich nur die libreadline.a - wie von sd3978 geschrieben - einbinden, da Du die Aufrufe von dlopen/dlsym zur Laufzeit aus der libcrypto.so nicht kontrollieren kannst.
 
okay ihr 2,
1st of all danke schonmal echt für alles

ich bin wieder nen schritt weiter (am Abgrund :cool:)

der unglaubliche befehl:


Code:
/home/freetz/freetz-devel/toolchain/target/bin/mips-linux-uclibc-gcc  tmp/as/vpnserver.a -fsigned-char  /home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/lib/libm.a   /home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/lib/libdl.a   /home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/lib/librt.a  -lpthread  /home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/lib/libssl.a  -lcrypto  /home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/lib/libreadline.a   /home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/lib/libncurses.a   /home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/lib/libz.a  -o bin/vpnserver/vpnserver

bringt mich auf der fritz jetzt schonmal so weit:

Code:
# ./vpnserver
-- Alert: SoftEther VPN Kernel --
String Library Init Failed.
Please check your locale settings and iconv() libraries.
#

lcrypto und lptrhead kann ich im moment noch nicht auf diese weise einbinden weil es passiert folgendes:

bei libcrypto.a :
Code:
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/bin/ld: /home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/lib/libcrypto.a(dso_dlfcn.o): undefined reference to symbol 'dlerror'
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../lib/gcc/mips-linux-uclibc/4.8.5/../../../../mips-linux-uclibc/bin/ld: note: 'dlerror' is defined in DSO /home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../usr//lib/libdl.so.0 so try adding it to the linker command line
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin/../usr//lib/libdl.so.0: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status

und libpthread.a bringt folgenden Fehler:

Code:
/home/freetz/freetz-devel/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl/mips-linux-uclibc/lib/libpthread.a(init.os): In function `__pthread_initialize_minimal':
init.c:(.text+0x25c): undefined reference to `__libc_setup_tls'
init.c:(.text+0x268): undefined reference to `__libc_setup_tls'
collect2: error: ld returned 1 exit status
 
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.