Freetz für 7390 - Image zu groß?

fritzbee21

Neuer User
Mitglied seit
8 Apr 2005
Beiträge
125
Punkte für Reaktionen
1
Punkte
18
Hi,

mal vorneweg, ich habe schon Images für die 3270v2, 7270v3, 7490 und eben jetzt auch 7390 gebaut.

Bei allen Versionen außer der 7390 hat das immer einwandfrei funktioniert, nur jetzt bei der 7390 bekomme ich einen Fehler mein Image wäre zu groß.
Als zusätzliche Pakete habe ich immer nur openvpn dazugebaut, alles andere benötige ich nicht. Trotzdem reicht das (wohl) nicht bei der 7329 ohne diverse anderen AVM Pakete rauszuwerfen?
Kann das sein oder habe ich da irgendwo noch was ausgewählt, was ich aktuell nicht sehe?

Müßte es nicht so sein, das die 7270 v3 bzw. 3270 v2 viel kleinere Speicher haben, als die 7390?

Warum überhaupt 7390?
Ich habe eine 7490 mit der ist aber die Sprachqualität mit einem C4 sehr schlecht (Knacken und kratzen).
Das gleiche C4 funktioniert an der 7390 /7270 ohne Probleme, deswegen war mein Plan zukünftig auf 7390 umzusteigen.
Wenn das aber vom Speicher nicht klappt, muß ich mir was anderes überlegen.
 
Nimm "external" und packe es auf den NAND-Flash der Box.

OpenVPN ist eben etwas größer ... wie weit ist Dein Platzbedarf denn jenseits der roten Linie?
 
Das Problem wird zum Teil auch durch die schlecht gepflegten Remove-Patches in Freetz verursacht. Im Prinzip wäre es schon möglich, genügend Platz im Firmware image freizuräumen, wenn ein gewisser Teil des Ballasts, den die AVM-Firmware mitschleppt, abgeworfen wird. Leider hat sich da schon lange keiner mehr darum gekümmert, die remove patches auf den aktuellen Stand zu hieven bzw. (remove) patches für neue Features zu schreiben. Wobei das zugegebenermassen eine sehr undankbare Aufgabe ist.

Zu dem Tipp von Peter noch eine Ergänzung. Falls das Booten der Box mit dem neuen image deutlich länger dauert oder ab und zu der watchdog zu schlägt ("spontane" reboots) dann könnte es helfen, einen guten USB-Stick mit ext2 als Ablageort für external anstelle des internen Speichers zu verwenden. Bei meiner Box ist der Zugriff auf den internen Speicher signifikant langsamer als auf den externen USB-Stick.
 
Die Remove-Patches sind wirklich "a pain in the ass" ... aber AVM bemüht sich ja auch redlich, sie dazu werden zu lassen.

Ich habe mir letztens auf einer 7270v3 das Log komplett zugemüllt, weil ich mich nur erdreistete, einen Service nicht zu starten (den aha-Daemon in S78-aha) ... da war noch nicht mal der Gedanke an ein "remove" im Spiel. Trotzdem kriegte sich die Box fast nicht mehr ein ... irgendwas mit Lua und AHA lt. Nachricht, genau weiß ich es nicht mehr.

Das einzige, was bei solchen Patchereien vielleicht helfen kann, ist das Ändern der CONFIG-Variablen und dann erst mal das geduldige Beoabachten, ob solche Bestandteile (im zweiten Schritt dann mal durch Wrapper mit Protokollierung ersetzt) auch wirklich nicht mehr aufgerufen werden.

Das ist nicht nur undankbar, das ist wegen der engen Verzahnung einiger AVM-Komponenten auch ein nahezu endloses Spiel. Das war früher schon wg. der geringeren Anzahl von Komponenten (und damit der möglichen Abhängigkeiten/Vernetzungen untereinander) leichter, heute ufert so etwas exponentiell aus und ich habe schon lange das Schielen auf "remove"-Patches aufgegeben.

Ich habe bei fritzbee21 nur deshalb nach dem Wert gefragt, weil es auch ohne den Verlust irgendeiner AVM-Funktion problemlos möglich ist, rund 250 KB zu "finden" (wenn ich mich richtig erinnere, der Wert ist nur geschätzt), indem man den Standard-Inhalt für den NAND-Flash einfach ausläßt. Das gibt es zwar auch als Bestandteil eines "remove"-Patches (ich glaube es war NAS), aber das ist tatsächlich risikolos und vollkommen ohne das Entfernen irgendeiner anderen NAS-Funktion machbar.

An der "Geschwindigkeit" des NAND-Flashs dürfte (neben dem Dateisystem vielleicht, wobei yaffs2 nun nicht sooo schlecht ist, ist ja eigentlich für Flash-Speicher konzipiert, was bei ext2 erst der Controller im Stick wieder über diverse Mechanismen ausgleichen muß) eher die Zugriffsmethode Schuld tragen, wenn ich das richtig in den Quellen lese (die wegen der verschiedenen Architekturen auch nicht allzu übersichtlich sind).

Da wird wohl nur ein "Fenster" in den Speicher gemappt und dann muß immer erst die richtige Flash-Page in diesen Bereich eingeblendet werden - so ein bißchen wie früher beim EMS auf dem PC. Allerdings ist es mir auch mit dem langsamsten NAND-Flash noch nicht passiert, daß ein Watchdog deswegen zugeschlagen hätte ... da begreife ich den Mechanismus nicht so recht, der dazu führen könnte. Höchstens noch extrem langsame Zugriffe auf eine "memory mapped"-Library o.ä. fallen mir da ein ... das müßte aber tatsächlich schon extrem sein und dann eine Lib, die nicht gemeinsam genutzt wird, denn die dürfte sich zum überwiegenden Teil dann schon im Speicher befinden.

Das einzige, was man bei einer 7390 definitv nicht machen sollte (auch wenn es verführerisch sein mag), ist das Anlegen eines Swap-Files im NAND. Das ist tatsächlich so gähnend langsam, daß da u.U. einige Komponenten die Watchdogs nicht mehr ruhigstellen können, wenn sie erst noch auf das Einlagern des dazu notwendigen Codes warten müssen und der tröpfchenweise aus dem NAND-Flash kommt.

Das heißt natürlich nicht, daß ein schneller USB-Stick nicht schneller sein kann als der NAND-Flash ... aber die USB-Schnittstelle der FRITZ!Box ist nun auch nicht die flinkeste und vom theoretischen Maximum (auch für USB2 mit dem bekannten Designproblem beim Mass-Storage-Protokoll) meilenweit entfernt, egal was das angeschlossene USB-Gerät an anderen Hosts zu leisten vermag.

Wenn man eine Chance dazu im eigenen Netzwerk hat, ist nach meiner Erfahrung tatsächlich ein NFS-Mount das schnellste, sogar mit dem nbd-Client (der ist in einigen Firmwares enthalten, ob bei der 7390 weiß ich gerade nicht) kann man ziemlich guten Durchsatz erzielen, wenn das verwendete Filesystem nativ im Kernel läuft.

Solange es am Ende nur um einzelne Binaries geht, macht auch ein Kopieren vom NAND-Flash in den RAM noch Sinn, wenn die Box genug Hauptspeicher hat.

Wenn es nur um OpenVPN geht, würde ich persönlich sogar komplett auf Freetz im Image verzichten, das ist ja nun im Handumdrehen zu Fuß eingereichtet und selbst ein Ergänzen der originalen AVM-Oberfläche um eine passende Anzeige zum Status so einer OpenVPN-Verbindung ist (relativ) schnell gemacht. Da ist Freetz dann meiner Meinung nach eine Kanone, mit der auf Spatzen geschossen wird ... man braucht eigentlich nur das OpenVPN-Binary mit ein paar Skripten auf dem NAND-Flash und eine Möglichkeit, wieder eigene Kommandos auszuführen (seit die debug.cfg entsorgt wurde), solange der Kernel mit TUN/TAP-Support (TUN=y) übersetzt wurde. Ob man dann ein statisches OpenVPN nimmt oder auf die vorhandenen Libs zurückgreift, ist dann nur noch eine Platzfrage.

Dafür ist aber ein komplettes Freetz absoluter Overkill ... von den Implikationen aus der Verwendung von Freetz ganz zu schweigen. Wenn man das OpenVPN irgendwie updaten will, tauscht man einfach nur das Binary auf dem NAND-Flash aus und startet die Box neu.

Alles andere, was da das Freetz noch kann (von Remove-Patches bis zum eigenen CGI) wird doch gar nicht gebraucht, wenn die Box nur als OpenVPN-Client (oder sogar als Server) herhalten soll. Bei mir wird sogar das - über das AVM-GUI importierte - Zertifikat der FRITZ!Box für die Authentifizierung als OpenVPN-Client genutzt ... das muß man ja nicht alles immer noch einmal neu erfinden (also die Zertifikatverwaltung der Box) oder doppelt vorhalten (mit einem zweiten Zertifikat).
 
nachdem ich diverse Remove Patches aktiviert habe, fehlen mir nur noch

kernel image size: 15.0 MB, max 14.9 MB, free -0.1 MB (-100864 bytes)

entfernt habe ich:
assistant (wizzard) / sip assistant
FHEM
VPN
ftpd
help
losf
support files / eventsdump
tr069 / fw update / httpsdl / providers
kids

was ich gerne nutzen würde:
WLAN
telephony
VOIP
UPnP
UMTS
Samba
printserv
NTFS
showdslstat
dsld
dect
NAS
mediaserv

WebDAV habe ich noch abgewählt, jetzt scheint es mal gerade so zu passen, es reicht aber nicht mehr für den Anrufbeantworter

kernel image size: 14.8 MB, max 14.9 MB, free 0.1 MB (58880 bytes)
WARNING: Not enough free flash space for answering machine!
packing images/7390_06.23-rev29836_labor-freetz-devel-13092.de_20150506-233443.image
image file size: 15.5 MB

wenn ich "external processing" aktiviere und alle Erweiterungen nach external schiebe (alle remove patches sind weiterhin aktiv) dann habe ich

kernel image size: 13.9 MB, max 14.9 MB, free 0.9 MB (972288 bytes)
Aproximately maximal time for the answering machine: 5 min, 19 sec (319 sec)
packing images/7390_06.23-rev29836_labor-freetz-devel-13092.de_20150506-234122.image
image file size: 14.7 MB
packing images/7390_06.23-rev29836_labor-freetz-devel-13092.de_20150506-234122.external
external file size: 2.5 MB

ein bisschen Luft für den Anrufbeantworter.
Im Verzeichnis images habe ich jetzt ein *.image und ein *.external

An der Fritzbox habe ich einen USTOR USB Stick und nen Drucker, kann das *.external jetzt mit auf den vorhandenen USB Stick oder klappt das nicht?
 
Zuletzt bearbeitet:
Du kannst - wie schon mal angerissen - bis zu 250 KB (wenn ich mich richtig erinnere) alleine durch das Löschen der Standard-Bilder, -Videos und -Musik für den NAND-Flash akquirieren. Die befinden sich irgendwo in /etc mit einem "sprechenden" Namen. Es schadet absolut nichts, wenn die nicht im Image sind. Im Rahmen eines Remove-Patches werden die aber nur von "NAS" entfernt, soweit ich weiß und das hast Du ja noch drin.

Ich weiß zwar nicht, was bei "support files" alles wirklich gelöscht wird, aber wenn es bloß die Skripte unter /bin/supportdata* sind, dann ist das eher minimal. Das sind alles Textdateien, die werden auf max. 20 Prozent eingedampft bei lzma-Kompression und dann relativiert sich das ganz schnell.

FHEM ist schon eine Weile gar nicht mehr drin in der AVM-Firmware, damit sollte der Patch weitgehend wirkungslos sein.

Wenn Du jeden möglichen Ärger mit den Remove-Patches vermeiden willst (wegen unbekannter Abhängigkeiten, die AVM in die Firmware neu eingebaut haben könnte), nimm doch wirklich einfach "external" ... das ist absolut unkompliziert (denn der NAND-Flash ist ja lange gemounted, wenn Freetz dran ist, anders als es bei einem Stick passieren könnte) und Dir steht mehr Platz zur Verfügung, als Du mit "normalem" trunk von Freetz füllen könntest. Hat es einen bestimmten Grund, daß Du da nicht ran willst?
 
es gibt keinen Grund warum ich da nicht ran will, ich weiß nur nicht wie es geht ;-)
Deswegen, ich hab ein external File nur wo muß das Ding hin?

Wenn ich unter /etc das Standard Zeugs rauslöschen will, sollte das unter
freetz-devel/build/original/filesystem/etc
zu finden sein?
 
Deswegen, ich hab ein external File nur wo muß das Ding hin?
Erst einmal Freetz-Image installieren und das Freetz-GUI das erste Mal aufrufen. Da findet sich dann auch eine Möglichkeit, einen Ort für das external-Verzeichnis festzulegen und das File dann dahin auszupacken. Aber der erste Schritt ist der Start der Box mit Freetz-Image und der erste Aufruf der Freetz-Oberfläche ... sollte im Wiki erläutert sein.

Wenn ich unter /etc das Standard Zeugs rauslöschen will, sollte das unter
freetz-devel/build/original/filesystem/etc
zu finden sein?
Füge einfach die Zeile
Code:
rm -r ./filesystem/etc/internal_memory_default_de/*
in Deiner "fwmod_custom" in die "all()"-Funktion ein, dann passiert das beim "make" automatisch.
 
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.