FTP-zu-Mountpoint

bodega

Aktives Mitglied
Mitglied seit
6 Jun 2006
Beiträge
1,980
Punkte für Reaktionen
7
Punkte
0
Hallo,

probiere zur Zeit Fuse und CurlFTPFs für die FritzBox zu kompilieren, um einen FTP Server zu mounten.

Das schöne an Fuse ist, das man damit ganz leicht sein eigenes FS schreiben kann, bzw. es sehr dynamisch ist.

Das Problem:
fuse.o lässt sich nur bis v2.1 einbinden, ab v2.2 werden Kernelfunktionen verwendet, die nicht exportiert sind (unresolved symbols: get_user_pages, dirty_user_pages, init_inode_once).

CurlFTPFs läuft erst ab Fuse v2.2. Man kann zwar die Lib von Fuse v2.2 verwenden und das Modul von v2.1, aber das gibt komische Effekte.

Kann man die Kernelfunktionen irgendwie nachbauen?
Gibts äquivalente Funktionen?
Oder kann man die Funktionen aus dem 2.6 / 2.4.x(?) Kernel entnehmen?
 
da bei mir das thema auch aktuell ist, würde mich hier auch eine antwort interessieren.;)
 
So.. ich hab's gestern nochmal angeschaut.

get_user_pages zieht einen Rattenschwanz an Funktionen hinter sich her. Lies sich leider nicht in fuse.o integrieren.
Also müsste ich den Kernel wohl an der Stelle patchen. Die Funktion gibt es unter memory.c, leider nicht exportiert. Die restlichen Symbole lassen sich über #defines umbiegen.

Dazu kommt noch, dass ich glib und Konsorten nicht statisch linken kann. Ist aber auch kein Problem (solange ein USB vorhanden ist und die Softlinks in /mod/lib existieren). Statisch linken müsste auch irgendwie gehen.

Fräg ich mich nur, ob sich der Aufwand lohnt oder ich doch besser per smb auf die NAS zugreife (was ist schneller :noidea: - wird sich zeigen, sobald das Dingen da ist :eek:).
 
So.. NAS ist da. Aber es fehlt was: die Kernel-Sourcen für 29.04.15 :( -
Ich hab meinen Kernel etwas geschrottet und bräuchte die wieder. Weiss einer, von wo man die noch bekommt?

Bzw. ist die Firmware fritz.box_fon_wlan_7170.29.04.29.image bereits ds-mod kompatibel?
 
Kaum sind die neuen Sourcen da, schmeißt Du die alten weg?

Hab noch "fritzbox-lab-source-files-04.19.tar.bz2". Könnte sie auf meine fritzbox legen. PN an mich genügt.

Gruß Schmatke
 
Ich suche die Kernelsourcen vom 2.4er, nicht von der Labor-Firmware. Habe leider den ds-0.2.9\dl Ordner gelöscht, sonst hätte ich die noch. Der entpackte Kernel ist, wie gesagt, geschrottet (bzw. so viele Änderungen gemacht worden, das ein Aufspielen mit einem Recover verbunden wäre).

Kaum sind die neuen Sourcen da, schmeißt Du die alten weg?

AVM-Like ;)
 
Oh, Kernel 2.4, sorry da hab ich wohl net richtig gelesen.
Damit kann ich leider auch nicht dienen. Die hab ich auch schon gelöscht, obwohl ich mir sonst jeden Schei* aufheb.

Von irgendwo wirst Du Sie schon bekommen. Haben ja wohl hoffentlich nicht alle gelöscht. Oder??? ;-)
 
Habe sie. Da hab ich wohl nicht richtig geschaut auf dem avm ftp... sry.
Und Firmware hab ich noch :D
 
So.. FTP kann ich nun mounten. Verzeichnisse auslesen mit 'ls' und umbennen ist kein Problem. Aber sobald was gelöscht oder hochgeladen wird, bricht das leider ab.

Man bräuchte zudem auch einen USB Stick, da beim Upload einer Datei eine Zwischenkopie gemacht wird.
Also nicht für 7050-Boxen geeignet.

EDIT:
sobald es läuft, werd ich es hier posten.
Man müsste dann nur den Kernel patchen (kernel/ksyms.c):
Code:
EXPORT_SYMBOL(get_user_pages);
 
Zuletzt bearbeitet:
Ok. Mit curlftpfs ist das anscheinend nicht so einfach. Zu groß und viel Anpassungsarbeit (mal abgesehen von den ganzen Libs). Upload und Download bringt ein Segmentation Fault. Läuft also nicht rund.

Probiere allerdings jetzt mit Samba auf die NAS zuzugreifen:
http://www.ip-phone-forum.de/showthread.php?t=109805

Vielleicht eine Alternative.
 
Hi zusammen,

ich hab mich zuletzt etwas mit CurlFtpFS versucht und möchte nun mal einen ersten Zwischenstand geben.

Man benötigt Fuse und Curl (bzw. libcurl). Allerdings ist das mit libcurl so eine Sache, denn die wiederum benötigt libcrypto. Und bei meiner 7170 resultiert es in einem Dauer-Reboot, wenn die libcrypto eingebunden wird. Also hab ich Curl derzeit statisch linken lassen, dann ist der Dauer-Reboot weg.

Für CurlFtpFS hab ich bereits ein Package erstellt (mein erstes :p), allerdings klappt es da mit dem statischen bauen noch nicht so recht. Dynamisch läßt es sich kompilieren, aber das läuft ja auf meiner Box nicht... Kann es also nicht testen. Package ist unten angehängt.

Irgendwie hab ich es tatsächlich mal per Hand hin bekommen, curlftpfs statisch zu bauen. Das Binary hängt auch dran. Allerdings funktioniert das auch noch nicht so recht. Wenn ich versuche, mein NAS per FTP zu mounten, klappt der Mount scheinbar problemlos. Wenn ich allerdings per ls das Verzeichnis ausgeben lassen möchte, kommt: nix :confused: Wenn man die debug-Ausgaben einschaltet, scheinen die Verzeichnisse auch übertragen zu werden. Blos beim ls kommt nix.

Vielleicht hat ja hier jemand mehr Erfolg. Und vielleicht kann ja auch jemand das Paket für statisches Linken rund machen - bei mir kommt immer ein Binary raus, welches dennoch libs einbindet :mad:

PS: Das tgz muss im trunk/make Verzeichnis entpackt werden und das Package noch im übergeordneten trunk/make/Config.in eingetragen sein, z.B. unter Testing:
Code:
menu "Testing"
# ...
source make/curlftpfs/Config.in

EDIT: Oh verdammt, hab gerade gesehen, das dieser Thread garnicht im Freetz-Bereich steckt :( Kann das einer der Moderatoren vielleicht verschieben?

Und hier jetzt die versprochenen Dateien:
 

Anhänge

  • curlftpfs.2009-01-28.tgz
    3.2 KB · Aufrufe: 7
  • curlftpfs.zip
    599.6 KB · Aufrufe: 8
Zuletzt bearbeitet:
Hey,
bin leider gerade nur am handy und kann deshalb nicht groß testen.
warum willst du curlftpfs auch statisch bauen? reicht es nicht, curl statisch ist? welche lib werden denn eingebunden?
Hast du noch ne Version die dynamisch ist, denn meine box rebootet dabei nicht.
 
Du glücklicher ;)

Curlftpfs benötigt die libcurl welche wiederum die libcrypro benötigt. Wenn ich es also dynamisch baue und damit die libcurl verwende, wird auch die libcrypto mit auf die Box gebracht. Darum geht das leider nicht :( Oder übersehe ich da was?

Ein dynamisches Binary hab ich gerade nicht zur Hand. Aber das kannst du dir mit Freetz bauen, wenn du das Package von oben verwendest. Ansonsten muss ich bei Gelegenheit nochmal einen Build machen...
 
Die 7170 rebootet ab trunk 2970 mit der dynamischen libcrypto. trunk 2968 und 2969 müsste noch funktionieren.
 
Oh, danke für die Info. Dann werde ich wohl erstmal wieder downgraden...

EDIT: Tja, mit 2969 geht's auch nicht :confused: Bleibt also doch nur Static. Jetzt geh ich erstmal einen trinken ;)
 
Zuletzt bearbeitet:
verwendest du AVM-SSL_Sachen, also: tr069, VPN, Fernwartung....
Das muss alles AUS!!!

ODER:

Du kannst versuchen die Kompatibiltät zwischen AVM-libcrypto und Freetz-libcrypto wiederherzustellen, indem du die libavmhmac ersetzt, das ist im ssl-menü zu finden unter shared-lib.


ABER:
Nochmal folgende Frage:
Warum musst du curlftpfs statisch bauen, reicht nicht curl?
 
Ich hab so ziemlich alles von AVM raus geworfen, allerdings ist tr069 noch drin (aber deaktiviert, zumindest ist die tr069.cfg leer). Oder muss in der tr069.cfg explizit drin stehen, das es aus sein soll?

Das mit der libavmhmac hatte ich auch schonmal probiert, brachte aber auch nix. Werde das bei Gelegenheit nochmal alles probieren, vielleicht klappt's ja mal ;-)

Mit dem statischen bauen der curlftpfs hab ich wohl noch eine Denk-Sperre :? Curlftpfs benötigt libcurl. Wenn die lib statisch erstellt wird, muss ich curlftpfs doch ebenfalls statisch linken. curlftpfs benutzt ja nicht das binary "curl", sondern eben die "libcurl". Oder entsteht beim statischen bauen von curl auch eine dynamische libcurl, in der die crypto-sachen statisch eingebunden sind, die man aber wiederum dynamisch linken kann? Ich bin mehr Windows-Entwickler, daher die dummen Fragen ;)
 
zu der Sachen mit dem dynamischen linken: muss ich auch nochmal drüber nachdenken.

zum reboot. Welches Branding hast du 1und1? Dann musst du es wahrscheinlich expliziet deaktivieren
 
Ne, die 7170 hab ich einzeln gekauft, also kein spezielles Brandinng. Daher sollte das tr069 aus sein. Ich hab mal den Default-Inhalt in die tr069.cfg gepackt und es darüber explizit deaktiviert. Dann hab ich tr069 beim build auch raus geworfen und neu geflasht. Ergebnis: Reboot... Bin langsam mit meinem Latein am Ende :-( Die libavmhmac hatte ich noch nicht mit aufgenommen. Aber nach dem Recover hatte ich erstmal keine Lust mehr auf einen neuen Versuch.

Aber erstmal zurück zum eigentlichen Thema: Hast du curlftpfs erfolgreich bauen können und vielleicht sogar schonmal getestet? Oder bist du noch nicht dazu gekommen?
 
Morgenabend ;) Bin noch bei meinen Schwiegereltern.
 
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.