zuletzt geändert vor 22 Monate
zuletzt geändert am 19.07.2010 12:31:04
Ideen zum Platzsparen
Was wird schon gemacht
- Kernel und Dateisystem werden mit LZMA komprimiert.
- Ungestrippte Binaries und Libraries werden von Freetz gestrippt.
Was kann man selbst tun
- Durch die remove patches können nicht benötigte Features der AVM Firmware entfernt werden.
- Die Blockgröße des Squashfs für das Dateisystem erhöhen. Das verbessert die Kompressionsrate, benötigt aber zur Laufzeit mehr Hauptspeicher. Weiterhin wird hierfür die Option "replace kernel" benötigt. Dann ist eine maximale Blockgröße von 1 MB möglich.
Zitat abraxxl (IRC) "Die SQUASHFS-Blockgroesse kann nur unter 2.6.13.1 bis 1M erhöht werden, beim 2.6.19.2er Kernel (7270 und neuer), geht es nur bis 64K bei mehr gibt noch kernel panic". (Fixed in r5099) - Toolchain ohne NLS (Native Language Support) bauen. Das spart zur Zeit (r5000) circa 250 KB (unkomprimiert). NLS wird für folgende Pakete benötigt: ? (Mögliche Kandidaten: Samba, NTFS und davfs2. Weitere?)
- Es besteht die Möglichkeit über Downloader/External Komponenten aus der Firmware auszulagern.
- Ausführlicher Artikel zum Platzsparen.
Wo könnte zusätzlicher Platz gespart werden
- Im fli4l-Projekt [1] wird eine uClibc eingesetzt, die gerade einmal 285 KB hat. (Freetz: 470 KB) [2]
- Das fli4l-Projekt [1] verwendete eine besonders gestrippte Version der Openssl-Libs. Diese eignet sich nur zum statischen Linken (?). Patches befinden sich im Download des src-Pakets.
- Minimal NLS in der uClibc aktivieren (Patch hängt an Ticket #842)
- Die busybox ist ~540 KB groß. Nicht benötigte Applets können optional angeboten werden. Leider sind die Abhängigkeiten der Freetz Pakete nicht dokumentiert.
- Das Python Skript mklibs kann einzelne Funktionen aus Shared Libraries entfernen. Dies führt bei den AVM Libraries immer wieder zu Problemen. Wir sollten versuchen nur die Libraries von Freetz (/usr/lib/freetz) zu "strippen".
- Die AVM-Webseiten benötigen 5 MB. Wäre hier eine (teilweise) Auslagerung sinnvoll?
- Was z.B. möglich ist, und ein paar KB spart, ist einige GIF-Dateien als PNG's stärker zu komprimieren und die Aufrufe in den Webseiten anzupassen.
- Kleinerer Code (5% Ersparnis bei Binaries) durch "-mno-shared" [3]
Referenzen
[1] http://www.fli4l.de
[2] Ticket #870
[3] http://www.ip-phone-forum.de/showthread.php?t=163689
