HOWTO: OpenVPN Binary - statisch gelinkt und nur 1,4 MB groß

Ich könnte das statisch gelinkte OpenVPN-Binary auch gut für meine FBF Wlan gebrauchen, da das regulär Kompilierte nicht genug Platz findet.
Da das alles andere als einfach ist, möchte ich mal fragen, ob das statische Verlinken in zukünftigen DS-Mods eingebaut werden kann?
 
Ich denke darüber nach und bespreche es mit Oliver. Ich hatte auch schon vor längerer Zeit mal die Idee, manche Binaries statisch zu linken und dabei sogar anstatt uClibc mal die dietlibc auszuprobieren, die noch kleinere Binaries erzeugen soll und speziell fürs statische Linken (sie linkt immer statisch) theoretisch interessant erscheint. Tests hierzu gibt es aber noch nicht, dazu brauche ich Olivers Hilfe, und wir haben das vor dem Release 15 mal verschoben auf einen Zeitpunkt, wo die To-Do-Liste kürzer und die wichtigsten zu erwartenden (und dann auch aufgetretenen) Fehler des Releases mal gefixt sein würden. Evtl. ist das demnächst mal der Fall.
 
Danke.

Aus Zeitnot werde ich jetzt erst einmal die ar7.cfg-Datei bearbeiten und mir dann, wenn ich wieder ein wenig mehr Zeit habe, alles noch mal genauer anschauen.

Gruß
big_blue
 
Erste Zahlen zu dietlibc: Dank Oliver (olistudent) - danke, keine Chance alleine für mich - konnte mit einem in einer Mailingliste gefundenen Patch dietlibc gebaut werden und mit ein paar Makefile-Anpassungen für OpenVPN, OpenSSL und LZO schließlich auch ein vergleichbares Binary für OpenVPN-LZO.

Damit man nicht Äpfel mit Birnen vergleicht, habe ich erst mal mit ds26-15.1 und uClibc gebaut, wie oben beschrieben. Die Version ist ja inzwischen 2.1_rc4, das Download-Binary im Thread ist rc2 und wurde ja, wenn ich richtig verstanden habe, noch mit 14.4 gebaut. Als Compiler verwende ich GCC 4.2.0. Das resultierende Binary ist etwas größer als ältere Version, und zwar 1.470.152 Bytes.

Die Dietlibc-Version ist 1.439.264 Bytes groß, also 30 KB kleiner. Das ist nicht spektakulär und in relativ gerade mal ein Vorteil von 2,1%, aber immerhin. Inwiefern die Werte typisch sind und ob sich mit anderen Programmen höhere Einsparungen erzielen lassen, weiß ich nicht. Auch habe ich nicht untersucht, wie sich die beiden Programme ggf. im RAM-Verbrauch bzw. der Performanz unterscheiden. Das liegt daran, daß ich OpenVPN überhaupt nicht nutze und das Paket nur aus dem gegebenen Anlaß dieser Diskussion hier als erstes Testobjekt verwende.

Hat jemand Lust, die Binaries (aktuelle Versionen wie beschrieben, einmal uClibc, einmal dietlibc) mal im Laufzeitverhalten zu untersuchen? Falls ja, dann poste ich sie als Update zu diesem Beitrag. Bisher kann ich nur sagen, daß sie ohne Segfault aufrufbar sind, mehr weiß ich wirklich nicht.
 
Wo findet man denn nun aktuelle Binaries von OpenVPN die am besten mit FritzBox Firmeware 29.04.37 laufen.

Gibt es eine Seite auf der Links dafür gesammelt werden?

Wenn nicht hab ich eh schon begonnen auf:

http://www.wehavemorefun.de/fritzbox/index.php/Openvpn

alles zu sammen was ich rausgefunden habe.
 
Gefallen Dir die aus Beitrag #1 nicht? Wo liegt das Problem?
 
kriegaex schrieb:
Gefallen Dir die aus Beitrag #1 nicht? Wo liegt das Problem?
Wo das Problem liegt. Naja versuche mal das ganze Thema als "unbeteiligter" zu betrachten.

Es gibt hier ca. 5-20 Threads über das Thema OpenVPN mit den neusten News und ich wette in andere Foren gibt es auch noch Beitrag zu diesem Thema.

Ich hab Gesten einige Stunden damit verbracht allein nur die ganz Infos aus dem Forum zu verstehen bzw. gar zu finden.

Wenn man bei Google nach FritzBox und OpenVPN sucht landet man auf diese Eintrag http://www.wehavemorefun.de/fritzbox/OpenVPN

Ich hab den gelesen und dachte es hört es sich einfach an das Aufzusetzen, bzw. ist es auch aber, nur das ich eben schnell in das Problem gelaufen bin die Binär Version passt nicht.

Wäre die Beschreibung an EINER Stelle zu finden/gepflegt würde jeder der nach dem Thema sucht gesammelt informiert werden.

Ich hab jetzt versucht die oben genannte Seite etwas zu aktualisieren bzw. immer meinem Wissenstand nachzuziehen (sicher nur rudimentär) aber mal ein sehr kleiner Beitrag von meiner Seite.

Um noch mit einem positiven Feedback abzuschließen (ich weiß das macht man normal am Anfang *g*)
Super Danke für die Binäry Version sie Läuft auf meiner FritzBox 7170 (FW 29.04.37) soweit recht gut (ca. 12h)

PS: ich weiß ich mecker gerne :) .. und ich weiß mein Kommentar war off topic. Darum ich will keine Diskussion darüber starten seht es als (Soziales) Feedback.
 
stevez schrieb:
Wäre die Beschreibung an EINER Stelle zu finden/gepflegt würde jeder der nach dem Thema sucht gesammelt informiert werden.
Du bist herzlich eingeladen, den entsprechenden Eintrag in unserem Wiki zu pflegen!


Gruß,
Wichard
 
wichard schrieb:
Du bist herzlich eingeladen, den entsprechenden Eintrag in unserem Wiki zu pflegen!

Das kenne ich schon, ist im FritzBox Wiki inzwischen verlinkt.
Da fängt das Problem an, es gibt schon (min) 2 Seiten die OpenVPN in eine Wiki beschreiben. Ich persönlich finde das FritzBox Thema gehört in das FritzBox/AVM Wiki und nicht in ein Forum/Wiki für "Internet Telefonie" damit hat VPN nicht dirket zu tun, aber wie gesagt ich persönlich.

Btw. auf auf dieser Seite gibt es keinen Link auf neue Binaries (glaub ich). Und nein ich werde lieber meinen Beitrag im anderen Wiki leisten, so wie jedem das frei ist das zu tun. Aber Danke für die Einladung, sonst wäre ich wohl nicht drauf auf die Idee gekommen ;).

Grüße Steve
 
Selbstverständlich gibt es mehrere Quellen, denn hier geht es bspw. um vorkompilierte statische Binaries, wir sind also im Unterforum "ds-mod" im Grunde OT. Dann gibt es ja noch den eigentlichen DS-Mod, der Dir OpenVPN auf Kommando from scratch baut, also in jedem Fall passend für Deine Box, sofern sie DS-Mod-fähig ist.

Jedem Tierchen sein Plaisierchen (hey Knox, den Spruch benutze ich schon zum zweiten Mal heute)!
 
kriegaex schrieb:
Jedem Tierchen sein Plaisierchen !

Jup .. mich hat man sogar aus dem Zoo raus gelassen ;)

PS: (Soziales) Feedback (also das denkt und fühlen eines Anderen) ist, aus meiner Sicht, nur zu empfangen und darüber nach denken da, eine Rechtfertigung ist denke ich eher Kontraproduktiv, aber ich gebe ja zu, ich halte mich auch nicht immer dran :)
 
OpenVPN auf 7050

Ich habe hier im Forum schon einige Beitrgäe zum Thema openVPN mit ds-mod gelesen. Und einige User haben es auch trotz des beschränkten Speichers auf der 7050 zum laufen gebracht. Leider habe ich kein detailiertes HowTo für OpenVPN auf 7050 mit WebConfig gefunden.
Da ich in meinem LAN kein Server mit NFS habe, bleibt mir nur die Möglichkeiten mit dem Downloader nachzuladen. Gleichzeitig möchte ich aber auch das WebGUI für OpenVPN aus dem ds-mod haben. Hier im Thread steht, die Binaries von openVPN aus dem Image löschen und nachladen. Das Nachladen mit dem Downloader klappt, aber wie lösche ich die Binaries? Und was muss ich alles löschen und Wo? Das mit dem statischen OpenVPN habe ich auch ausprobiert (es compiliert). Aber wie bekomme ich alles in mein Image rein, dass dann auf die Box passt?
Und die Konfiguration: Im HowTo steht, dass die Zertifikarte und Konfiguration unter /var/tmp abgelegt werden? Aber nach dem Reboot ist doch alles wieder weg? Also muss das auch nachgeladen (Downloader) oder angelegt (debug.cfg) werden....
 
Hi,
Ist zwar etwas OT, da es hier um die statische Verdion gehen soll, aber da du nach der GUI und dem Downloader gefragt hast:
Die "normale" ds-mod Version speichert auch die Einstellungen und Keys im flash ab.
Ich muss gestehen, ich habe noch nie mit dem downloader gearbeitet, aber meine Vermutung wäre, dass das "Auslagern" der crypto-library ("/usr/lib/libcrypto.so.0.9.8") mit über 1 MB vielleicht schon ausreichend Platz bringt, ansonsten sollte es mit zusätzlich "liblzo2.so.2.0.0" und "libssl.so.0.9.8" wohl reichen ;-).
Wenn du diese Library Dateien dann im ds-Verzeichnis unter root/usr/lib entfernst, sollte das Image entsprechend kleiner werden.

Jörg
 
Wenn ich diese libs aus root/usr/lib/ lösche, werden sie beim make wieder rein kopiert und das Image ist genau so groß
Code:
thomas@thnblin:~/fritzbox/ds26-15.2> make
cp -a /home/thomas/fritzbox/ds26-15.2/toolchain/build/gcc-4.2.0-uClibc-0.9.28/mipsel-linux-uclibc/usr/lib/liblzo2*.so* root/usr/lib/
/home/thomas/fritzbox/ds26-15.2/toolchain/target/bin/mipsel-linux-uclibc-strip --remove-section=.comment --remove-section=.note root/usr/lib/liblzo2.so.2.0.0
# FIXME: Strange enough, this chmod is really necessary. Maybe the
# previous 'install' can be parametrised differently fo fix this.
chmod 755 /home/thomas/fritzbox/ds26-15.2/toolchain/build/gcc-4.2.0-uClibc-0.9.28/mipsel-linux-uclibc/usr/lib/libssl.so.0.9.8
cp -a /home/thomas/fritzbox/ds26-15.2/toolchain/build/gcc-4.2.0-uClibc-0.9.28/mipsel-linux-uclibc/usr/lib/libssl*.so* root/usr/lib/
/home/thomas/fritzbox/ds26-15.2/toolchain/target/bin/mipsel-linux-uclibc-strip --remove-section=.comment --remove-section=.note root/usr/lib/libssl.so.0.9.8
chmod 755 /home/thomas/fritzbox/ds26-15.2/toolchain/build/gcc-4.2.0-uClibc-0.9.28/mipsel-linux-uclibc/usr/lib/libcrypto.so.0.9.8
cp -a /home/thomas/fritzbox/ds26-15.2/toolchain/build/gcc-4.2.0-uClibc-0.9.28/mipsel-linux-uclibc/usr/lib/libcrypto*.so* root/usr/lib/
/home/thomas/fritzbox/ds26-15.2/toolchain/target/bin/mipsel-linux-uclibc-strip --remove-section=.comment --remove-section=.note root/usr/lib/libcrypto.so.0.9.8
STEP 1: UNPACK
unpacking firmware image
splitting kernel image
unpacking filesystem image
unpacking var.tar
done.

STEP 2: MODIFY
applying patches
installing mod base
replacing busybox
replacing kernel
installing packages
invoking custom script
done.

STEP 3: PACK
packing var.tar
creating filesystem image
merging kernel image
ERROR: kernel image is 474112 bytes too big
make: *** [firmware-nocompile] Fehler 1

Im Posting #5 steht
zu 4: Das ist eine gute Idee und scheint mir einen Versuch wert zu sein :idea: Vielleicht kann man so auf einer (deutschen) 7050 den DS-MOD mit OpenVPN GUI ins Flash bekommen und nur das platzfressende openvpn Binary nachladen.
Das ist eigentlich ganau das was ich möchte, ich weiß nur nicht wie es genau geht....
 
Das Größenproblem besteht eigentlich in den besagten Libraries. Du könntest natürlich, wenn du diese Libraries für nichts anderes benötigst (bei crypto und lzo ist das sehr wahrscheinlich) auch das statische Binary "komplett" nachladen. Problematisch ist, dass die Libs wieder "nachgeladen" werden. Du müsstest also entweder das make verändern oder nimmst die "quick-and-dirty" Variante:

Im Skript "fwmod_custom" trägst du das Löschen der Libraries ein, das wird erst direkt vor dem Zusammenbauen aufgerufen und löscht dann aus dem "build-Verzeichnis", woraus dann wieder die FW gebaut wird....

Code:
...
all() {
        dummy=0
        rm ./filesystem/usr/lib/libcrypto.so.0.9.8
        rm ./filesystem/usr/lib/liblzo2.so.2.0.0
        rm ./filesystem/usr/lib/libssl.so.0.9.8
}
...

Das wäre für "beides" nötig: Wenn du das Binary drin läßt, und nur die Libs nachlädst, müsstest du nur diese Libs löschen, wenn du das "komplette", statische Binary laden willst, müsstest du zusätzlich noch "./filesystem/usr/sbin/openvpn" löschen.


Jörg
 
Danke, das war's was gefehlt hat. Jetzt habe ich das Image auf der Box und OpenVPN startet auch. Nur noch testen....
 
Danke, das war's was gefehlt hat. Jetzt habe ich das Image auf der Box und OpenVPN startet auch. Nur noch testen....

Ich habe jetzt die libs und das openvpn Verzeichnis gelöscht. Was muß ich denn nun beim Downloader eingeben wenn alles wieder gefunden werden soll?
 
Löschen alleine reicht unter Umständen nicht aus. Am besten sollst du die Symlinks zu /mod/usr/lib und zu /mod/usr/sbin in das Image integrieren. Aber lass es uns (wenn es überhaupt nötig) in einem anderen Thread diskutieren. Hier sind wir OT.
Ich empfehle dir zunächst die Anleitung [1] zu lesen. Da ist die Vorgehensweise inklusive Symlinks erklärt.
Weiterhin solltest du im Thread zu Downloader [2] die Beiträge durchschauen. Da gab es einige Konfigurationen [3] inklusive der, die du brauchst. Übrigens, ich empfehle gleich dann die Version 0.2 vom Downloader zu nehmen. Sie kann nämlich Einiges mehr.
Die letzte Möglichkeit ist das neue Skript Outsourcer [4] zu nehmen. Das erledigt nämlich die Aufgaben automatisch, wenn man die Configs entsprechend konfiguriert. Für OpenVPN sollte die Beispielkonfiguration dem Archiv beiliegen.

Und bitte die Fragen zu allen diesen Sachen in den entsprechenden Threads stellen.

MfG
 
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.