Howtos: Entwicklung
- Entpacken und Packen von Firmware-Images
- Eigene Programme kompilieren
- Dynamische Bandbreitenanzeige per SVG
- Platz sparen im Dateisystem der FritzBox
- Flash-Partitionen im laufenden Betrieb sichern
- First steps - How to start your first freetz package
- Kernel konfigurieren und kompilieren
- Developer Information
- Package Development
- ADAM2-Bootloader
- Einstellungen speichern im Urlader-Environment
- Ablauf eines Firmware-Updates
- Wie baue ich ein eigenes Paket für Freetz?
- Addon Paket installieren
- Busybox konfigurieren und kompilieren
- Wie die FritzBox Manipulationen erkennt
- Shell Coding Conventions
- Erstellen einer GUI für Pakete in Freetz
- Flash Partitionierung
- trac-post-commit-hook
- Package Developing - Advanced Topics
- Eigene Dateien in die Firmware integrieren
- Patches in Freetz einspielen
- Freetz Build-Prozeß
- Flash-Partitionen von außen mit FTP sichern
- Cross-Compiler / Toolchain erstellen
Eigene Programme kompilieren
Nachdem die Toolchain heruntergeladen oder gebaut wurde, kann sie verwendet werden, um eigene Programme, oder solche, die noch nicht als Paket zur Verfügung stehen, zu übersetzen.
Den MIPS-Compiler zum Pfad hinzufügen:
export PATH=/pfad/zu/freetz/toolchain/target/bin:$PATH
Optionen für ./configure:
./configure --build=i386-linux-gnu --target=mipsel-linux --host=mipsel-linux
(i386-linux-gnu ist nicht unbedingt notwendig, nur beschwert sich configure, wenn es nicht angegeben ist. Auf 64-Bit-Plattformen oder Nicht-Intel-Architekturen muß es natürlich anders heißen.)
Statisches Linken der Binaries, damit sie keine separaten Libraries benutzen, sondern sie gleich enthalten (funktioniert aber nicht bei jeder Software):
LDFLAGS=-static ./configure ...
Statisch gelinkte Binaries sind einfacher zu installieren, weil sie eben alles enthalten - aber dadurch sind sie größer, und wenn sie mit anderen Programmen gemeinsam genutzte Funktionalität haben, verschwenden sie Speicherplatz. Außerdem müssen sie separat upgedatet werden, wenn z.B. in einer Library eine Sicherheitslücke gepatcht wurde. Es ist also am besten, statische Binaries nur zum Testen, oder wenn es anders nicht geht, zu verwenden.
In manchen Fällen ist es ratsam die CC-Variable explizit zu setzen. Auch die Angabe der CFLAGS kann nicht schaden:
./configure ... CC="mipsel-linux-gcc" CFLAGS="-Os -pipe -march=4kc -Wa,--trap"
