IMAP auf debianisierter FB

Ich denke, das ist einfach mal ne nummer zu gross für die Fritz. WebIF incl. Paketverwaltung....
 
Also auch die IMAP Installation läuft soweit ganz gut. Auch mit der Performance passt's so einigermaßen. Is natürlich nicht ganz so schnell wie auf dem bisherigen VIA EPIA System, aber kein wirkliches Problem.

Allerdings bekomme ich bei Dovecot immer die folgende Fehlermeldung im Log:

Error: IMAP(volker): fcntl(F_NOTIFY) failed: Invalid argument

Ich verwende Maildir als Format und hab auch schon versucht das Locking auf flock zu setzen. Mit dem gleichen Resultat. Hat jemand ähnliche Probleme? Liegt das evtl. daran, dass die Fritzbox kein F_NOTIFY unterstützt? Ist deshalb etwas nervig, weil die Meldung bei jedem Zugriff auf eine EMail zweimal in die Log Datei geschrieben wird. Da wächst die Datei recht schnell auf beachtliche Werte.

Und noch was anderes. Gibt's eigentlich ne Möglichkeit bei einem Reboot der Box vorher Kommandos zum Beenden der Dienste und Unmounten des Sticks auszuführen? Wobei aus irgend einem Grund das Unmounten vom Stick sowieso immer mit folgender Fehlermeldung fehlschlägt:

umount /var/tmp/chroot/

umount: Couldn't umount /var/tmp/chroot: Invalid argument
Weiß da jemand Rat?
 
@Volki21,

danke für den Link auf rootserverexperiment und Deine Anleitung, damit sind fast alle Infos verfügbar, um die FB-Funktionalität ohne jede Modifikation nur durch Einstecken eines USB-Sticks zu erweitern.

Ich will nochmal kurz beschreiben, was ich gerne erreichen möchte: Es soll ausgehend von einer _absolut_ unmodifizierten FB möglich sein, dass nur durch das Einstecken eines besonders präparierten USB-Sticks beliebige Services in einer chroot-Umgebung ohne jedes weitere Zutun gestartet werden.

Zwei wichtige Dinge, um dort hinzukommen, hat Dein Beitrag geliefert: Man braucht neben der chroot-Umgebung noch die Executables chroot und idealerweise swapon, die beide von der statisch gelinkten Busybox geliefert werden. Das Kernel-Modul für ext2 scheint ja, so wie ich Deine Anleitung verstanden habe, schon vorhanden zu sein und muss nur geladen sein.

Legt man wie von Dir beschrieben jetzt noch die debug.cfg mit entsprechendem Inhalt an, ist man fertig. Genau diesen Schritt möche ich aber auch noch loswerden! Dann könnte wirklich selbst der technisch unbedarfteste fertig zusammengezimmerte FB-Erweiterungen nutzen: Er steckt einfach den präparierten USB-Stick in die Box und ist fertig.

Ok, warum glaube ich, dass das möglich sein könnte? Wenn man ein USB-Device mit (V)FAT-Partition in die FB steckt, wird diese _automatisch_ gemountet. Außerdem beschwert sich die FB, dass sie die Datei tr069start.config auf der gemounteten Partition nicht finden kann. Sehen kann man das, wenn man beim Einstecken gerade z.B. über telnet auf der FB eingeloggt ist. Wenn es nun gelingen würde, über den Inhalt dieser Datei ein Script zu starten, könnte dieses Script den ganzen Rest (mounten der ext2-Partition, starten der chroot-Umgebung .....) erledigen. Man bäuchte dafür auf dem USB-Stick nur eine winzige FAT-Partition für den automatischen Mount mit der entsprechenden tr069start.config und dem Start-Script.

Deshalb nochmal die Frage ins Forum: Hat irgendjemand Infos über das Format dieser Datei? Oder stellt AVM einen anderen Mechanismus zur Verfügung, um etwas automatisch auf einem neu gesteckten USB-Stick zu starten? Ich denke dabei z.B. auch an AVM's "Stick and Surf" (http://www.avm.de/en/Extern/stick_and_surf/stick_and_surf_red.html), dass ja auch Dinge beim Einstecken eines speziellen USB-Sticks automatisiert.

Gruß,

Christof
 
Das mit der debug.cfg seh ich weniger problematisch, da man sowas ja über ein Firmware Update machen kann, was auch ein Leihe hinbekommen kann (da es ja nur ein Pseudo-Update ist, braucht der Nutzer ja nichts selbst übersetzen).

Was mir mehr Sorgen macht, sind die folgenden Punkte:
  • Unmounten vor Neustart: Bevor ein Reboot durchgeführt wird, sollten alle Dienste beendet und alle Mountpoints wieder ausgehängt werden. Die autostart.sh und autoend.sh Lösung funktioniert bei mir irgendwie nicht. Mittlerweile hab ich Freetz auch zum Laufen bekommen, dank StinkyLinux und nachdem ich heraus gefunden habe, dass das Neuübersetzen der Shared Libraries zur Reduktion auf die wirklich verwendeten Symbole wohl noch nicht richtig funktioniert.
  • Recover nach Stromausfall: Bei mir musste ich wenn die Box neustartete und ich vergessen hatte vorher den Stick zu unmounten immer ein Recover über e2fsck an einem anderen Rechner durchführen, da die Version von Freetz irgendwie immer Fehler meldete.
  • Dovecot Fehler: Der fcntl(F_NOTIFY) failed: Invalid argument Fehler nervt mich ziemlich. Ich hab testweise auch mal die inotifytools auf dem Stick installiert. Dabei meldet inotifywatch auch einen Fehler. Hab nun heute morgen mal Freetz mit Replace Kernel übersetzt (und vorher sichergestellt, dass INotify im Kernel ausgewählt ist). Konnte aber noch nicht testen, ob das was bringt. Tritt das Problem bei Dir nicht auf (evtl. ist es dazu nötig erstmal die Log Datei für Dovecot zu aktivieren)?

Ich denke wenn man einen IMap Server betreiben will, sollte man auch eher Ext3 einsetzen. Für was anderes ist denk ich die Fritzbox auch nicht so sinnvoll geeignet. Besonders die 7170 mit ihrem USB 1.1 Anschluss. Da ist der Einsatz als NAS ja schon nicht sehr sinnvoll.
 
So nach einem weiteren Tag rumexperimentieren folgende Teilerfolge:

Mounten nach einem Reboot funktioniert doch, nur dauert das recht lange, vermutlich weil beim Mount das Journal erst durchgegangen wird. Nach einem Reboot funktioniert auch die autorun.sh, ob die autoend.sh funktioniert, konnte ich noch nicht testen.

Das neue Image mit aktiviertem Replace Kernel hat bzgl Dovecot nichts gebracht. Der Fehler mit INotify kam nachwie vor. Darauf hin wollte ich Dovecot mit der Option --with-notify=none crosscompilen. Ging aber beim Aufruf von configure nicht, da z.B. der Test auf die Verfügbarkeit von epoll mit einer Fehlermeldung fehlschlug, dass einige Tests nicht per Cross-Compile funktionieren würden. Also hab ich die neueste Dovecot Version direkt auf der Fritzbox mit --with-notify=none übersetzt. Hat Ewigkeiten gedauert. Die gute Nachricht: danach kam der Fehler nicht mehr. Die schlechte Nachricht, dafür ist mir Dovecot jedes mal ohne Fehlermeldung nach dem Login Process gecrasht.

Jetzt versuch ich mal ein dist-upgrade auf Lenny und dessen Dovecot Version.

Edit: Das funktioniert nicht. Beim installieren der libc6_2.7-10 kommt ein Illegal Instruction Fehler
 
Zuletzt bearbeitet:
[Edit frank_m24: Mehrere Beiträge innerhalb weniger Minuten zusammengefasst. Man kann seine Beiträge auch editieren. Lies noch mal die Forumregeln.]
Hi Volki21,

sorry dass ich nicht früher geantwortet habe, war zu beschäftigt. Die fcntl-Meldung im Syslog kann ich zumindest bestätigen, bekomme ich bei mir auch.

Lenny auf einer MIPSEL-Umgebung einzusetzen ist wohl doch noch zu optimistisch, i.A. wird halt doch i386 besser gepflegt. Am vielversprechendsten ist wahrscheinlich, dovecot mal unter Kontrole von gdb laufen zu lassen. Mit Deiner crashenden selbstübersetzten Version sagt der Debugger Dir dann genau, wo es kracht.

Gruß,

Christof

[Beitrag 2:]
nochmal zum Thema "fcntl(F_NOTIFY) failed":

Der Fehler scheint nebenwirkungsfrei in dovecot-1.0.rc15/src/lib/ioloop-notify-dn.c (Zeile 101) ausgegeben zu werden. Als Holzhammer-Methode sollte es also genügen, die Zeilen 100 und 101 auszukommentieren und neu zu übersetzen.
 
Hab jetzt auch beschlossen nochmal eine frische Etch Installation auf meinen Stick zu packen und das Logging einfach abzuschalten. Alles andere scheint ja zu funktionieren und irgendwann muss auch mal Schluss sein mit basteln. :)
 
wie sieht denn deine smb.conf aus?
Nutzt du den Samba des Debian?
 
wie sieht denn deine smb.conf aus?
 
hast du innerhalb es debian z.b. nen ftpuser erstellt?

edit:
wenn ich die zeile
Code:
guest account = ftpuser
zu
Code:
guest account = matze
änder, wobei matze nen account ist, denn ich zuerst mit adduser matze und dann mit smbpasswd -a matze hinzugefügt habe, kann ich mir den share anzeigen lassen
 
Zuletzt bearbeitet:
windows client
 
du siehst alle mounts mithilfe von "mount", und wenn du in das Verzeichnis schaust siehst du ob alles da, was da sein soll.

kleiner tip noch:
im debian selber kannst du auch Fehler des smbd sehr gut über das log
Code:
/var/log/samba/log.smbd
nachfolziehen. z.b. könntst du mail
Code:
tail -f /var/log/samba/log.smbd
machen und dann samba neustarten
 
ist da noch nen smbd am laufen?
 
den samba der fritzbox musst du natürlich deaktivieren, also netzwerkspeicher aus, denn die können ja nicht beide auf dem gleichen port lauschen.
 
Zuletzt bearbeitet:
soll heißen?
ist die box nun unter \\fritz.box\ erreichbar?
 
also läuft es jetzt erstmal soweit?
 
Das ist ja ein chroot-jail, wenn ich das richtig verstehe. Wie wäre es, wenn du vor dem chroot die resolv.conf in das Debian rüberkopierst?
 
Der AVM-Samba hat keinen nmbd der für die Namensauflösung verantwortlich ist. Nimm den Freetz Samba + deren nmbd dann wird jede Box mit dem im Samba-Webif konfigurierten Namen angezeigt. Dann sollte noch auf genau 1 Box der MasterBrowser aktiviert sein. Am besten die die immer läuft
 
Die 7170 mal als Nameserver nutzen? Diese wird dann ja wohl so etwas wie den lokalen DNS-Server spielen, oder?
 
Du solltest NetBios und DNS Namensauflösung nicht verwechseln, die haben nichts miteinander zu tun! Wenn der nmbd für Samba/Windows Clients die Namen in der Netzwerkumgebung auflöst, bedeuted dies nicht, dass man diese anpingen kann da dann der Name per DNS aufgelöst wird. Ich richte deshalb die DNS-Namen (hier mit dnsmasq) immer genau wie die NetBios Namen ein
 
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.