Kann man Tor mit statischen sll libs comilieren?

Zwergnase

Neuer User
Mitglied seit
8 Okt 2004
Beiträge
80
Punkte für Reaktionen
0
Punkte
0
Hallo,

wenn ich es richtig verstehe, dann führt ein Ersetzen der AVM sll lib oftmals zu Problemen und daher sollte man die Pakete mit statische gelinkter lib verwenden.

Beim Paket Tor ist das als Option in make menuconfig nicht verfügbar. Liegt das daran, weil es prinzipiell nicht geht? Eine Forensuche hat mir hier nicht weitergeholfen.

Gruß

Zwergnase
 
Ob es prinzipiell nicht geht, bezweifle ich, ich denke eher, dass keiner der Devs bisher Lust, Zeit und Bedarf hatte, sich dessen anzunehmen.
 
Hmmm....ich bin ja nicht wirklich Experte dafür. Aber ich würde mich ranwagen, bräuchte aber eine Einstiegshilfe, wie man isch dem Thema überhaupt nähert.....
 
Dann schau dir doch mal die anderen Pakete an die diese Option haben. Da wären z.B. curl, wget, transmission, openvpn und vsftpd.

MfG Oliver
 
Ok. Das mache ich.....mal sehen wie weit ich komme ;-)
 
Aslo, ich hab mir mal die angeguckt, was letztlich in den o.g. Paketen gemacht wird. Beim Linken wird vor -lssl oder -lcrypt die Linkeroption -static bzw in einzelnen Fällen auch -all-static verwendet. Dadurch werden die libs anscheinend statisch mit gelinkt. Wo der Unterschied zwischen -static und -all-static ist, habe ich nicht auf den ersten Blick mit Google finden können.

Bezogen auf Tor finde ich in /make/tor/tor.mk folgendes:

Code:
$(PKG)_CONFIGURE_OPTIONS += --sysconfdir=/mod/etc
[COLOR="Red"]$(PKG)_CONFIGURE_OPTIONS += --enable-shared
$(PKG)_CONFIGURE_OPTIONS += --disable-static[/COLOR]
$(PKG)_CONFIGURE_OPTIONS += --with-ssl-dir="$(TARGET_MAKE_PATH)/../usr/lib"
$(PKG)_CONFIGURE_OPTIONS += --with-libevent-dir="$(TARGET_MAKE_PATH)/../usr/lib"

woraus ich entnehme, daß hier (bewußt?) nicht statisch gelinkt werden soll, indem an ./configure des tor-Paketes o.g. Optionen übergeben werden. Leider habe ich die Sourcen von tor jetzt gerade nicht hier und kann sie auch gerade nicht herunterladen und kann so nicht in ./configure reinschauen.

Im ersten Moment würde ich heute abend zuhause mal probieren diese Optionen auf --enable-static und --disable-shared zu setzen. Was mich allerdings stutzig macht ist, warum im tor.mk das explizit anders gesetzt wurde. Möglicherweise gibt es dafür einen Grund?

Gruß

Zwergnase
 
Was mich allerdings stutzig macht ist, warum im tor.mk das explizit anders gesetzt wurde. Möglicherweise gibt es dafür einen Grund?

Auf den ersten Blick: Platzgründe. Statisch gelinkt ist das Binary um einiges groesser als dynamisch, da alle libs fest mit eingebaut sind, und diese dann auch nicht shared genutzt werdne können von anderen binaries, die z.b. auch die ssllibs benötigen.
 
Ok. Macht prinzipiell Sinn. Aber macht das denn auch Sinn bei den kritischen ssl- und cryptop libs? So wie ich es verstanden habe, beißen sich diese libs mit AVM Funktionen (z.B. tr069) oder?

Wie ist das denn: Wenn ich das statisch linke, ist dann auch der RAM Bedarf höher? Wahrscheinlich schon, oder? Insofern ist es vielleicht besser eher das tr069 auszuschalten. Oder gibt es noch andere Konflikte?

Na, auf jeden Fall werde ich das heute Abend mal ausprobieren ob es auch statisch geht. Dann könnte man die Option ggf. mit in Freetz aufnehmen.

Ich hätte übrigens noch einen Vorschlag: Wenn ich das richtig wahrnehme, dann stolpern viele Neulinge über die Problematik mit openssl. Wäre es nicht sinnvoll, daß man eine dependency reinnimmt, die tr069 abschaltet, wenn openssl aktiviert ist?

Gruß

Zwergnase
 
Oder aber man erwartet ein wenig Intelligenz vom User, und somit, dass er zumindest ein wenig Wiki und FAQ liest ;)

Ich hab übrigens was dagegen, einfach irgendwo in den Settings der User rumzupfuschen, denn darauf liefe es hinaus ;)

Wir werden aber denke ich eine Warnung nach dem make einbauen. Wer die dann nciht liest, ist selber Schuld ;)
 
Ich glaub ne Warnung ist genau das Richtige!
 
Hallo,

ich habe schon ähnliche Probleme bei meinen kleinen NAS Geräten MGB100 u. MGB111 gehabt. LIB's und PROG's die sich nicht mit der Firmware vertragen haben oder die die Firmware nicht sehen sollte!

Was hier oft (kann mich nicht mehr an alles erinnern) geholfen hat ist die Umgebungsvariable LD_LIBRARY_PATH.

Mal sehen, angenommen das Prog XYZ benötigt libXYZ, die Firmwatre soll davon aber nichts wissen.
Dann hat das hier geholfen:

Ein kleines Startscript mit:

runXYZ.sh:
Code:
# Script Anfang
LD_LIBRARY_PATH=/wo_auch_immer/libXYZ:$LD_LIBRARY_PATH
cd /wo_auch_immer
./XYZ &
# Scrip ENDE

Könnte man sowas nicht in das Start-Stop-Reload Script von z.B. TOR einbauen?
Dann können die "gefährlichen" SSL Libs usw. irgendwo an einem Ort liegen von dem die Firmware nix weiss und nur dann wann die Libs gebraucht werden sagt man dem betroffenen Prog wo sie sind?
 
Sowas ginge natürlich. Durch einen Wrapper könnte man das ganzen dann noch transparent machen, dass man die Daemons auch von Kommandozeile aufrufen kann. Spätestens ab dem zweiten statischen Daemon lohnt sich das bestimmt.

MfG Oliver
 
Hallo Oliver,

genau das habe ich bei meinem MGB100 gemacht.
Der Wrapper heisst "MyRun.sh".

Damit starte ich Webmin, MySql, Apache usw...
 
Das probier ich doch morgen abend mal aus.....Vorausgesetzt ich bin bis dahin nicht an der Hitze eingegangen ;-)
 
Also, kompilieren tuts so, aber meine Box steigt immer wieder nach einiger Zeit aus wenn ich Tor aktiviere... Ist das eigentlich das Fehlerbild durch openssl?
 
So.....jetzt habe ich es nochmal minimalistisch probiert. Aktueller trunk nur mit USBROOT und TOR. Aktivieren vom TOR Dienst führt nach einiger Zeit zum Neustart. Ich schätze also mal, daß der reine -static Zusatz nicht ausreichend ist,

Gruß

Zwergnase
 
Also der Neustart war damals bei mir nicht ausreichender Arbeitsspeicher. Dieses Problem konnte ich damals mit einer Swap-Datei lösen.
Das Binary ist statisch gelinkt, sollte alles okay sein, aber ich nutze Tor nicht mehr.
 
Hmmm.....Ich hab keine Platte sondern nur nen USB Stick anhängen. Insofern ist SWAP vielleicht nicht die beste Idee? ;-) Außerdem habe ich ja nix außer USBROOT und TOR drauf. Wenn da der Speicher nicht reicht, dann müßte mir die SuFu diesen Hinweis geben. Ich probier zunächst mal die TR069 zu deaktivieren und gucke obs dann mit dem reboot besser wird. Ich befürchte aber nicht.

Wie ist das eigentlich mit der ssl lib. Die ist jetzt statisch gelinkt, ja....bedeutet das auch, daß die original sll lin von AVM nicht mehr überschrieben wird (zumindest hatte ich bisher verstanden, daß da das Probelm liegt?)?
 
Ja, so ist es. Zumindest tor selber überschreibt diese nicht mehr, so lange du das statische linken anwählst. Ob du allerdings anderweitig irgendwas in der Richtung machst, musst du sleber rausfinden.
Wie wäre es denn, swap dennoch zu aktivieren, um mal zu gucken, ob das Problem ein Speichermangelproblem ist? Denndan kannst du das stochern im Dunkeln lustig sein lassen, wenn sich damit das Problem schon erlidigen würde.
 
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.