Eigene Dateien in die Firmware integrieren¶
Die Fritzbox besitzt zwei Speicherbereiche:
- den Flash
- den Arbeitsspeicher (RAM)
Um im laufenden Betrieb Dateien anzulegen und zu verändern, lässt sich
das Verzeichnis /tmp
nutzen. Es liegt im Arbeitsspeicher in einer
RAM-Disk und arbeitet wie ein normales beschreibbares Dateisystem.
Folgende Dinge sind jedoch zu beachten:
- Es nutzt den vorhandenen Arbeitsspeicher mit, der je nach Box bis zu 64MB gross ist. Wird die Menge der Daten im Arbeitsspeicher zu groß, startet die Box ohne Vorwarnung neu.
- Alles, was im Arbeitsspeicher liegt, ist nach einem Reboot oder Stromausfall verloren.
Für die „feste Integration“ gibt es mehrere Möglichkeiten:
Variante | Pros | Contras |
---|---|---|
via Freetz Image |
|
|
via debug.cfg |
|
ien - werden Änderungen
|
Nachladen von Webserver |
|
|
Nachladen vom USB Stick |
|
|
WebDAV- bzw. NFS- Share mounten |
|
|
Die „perfekte Lösung“ gibt es natürlich nicht. Je nach Anwendungsfall werden die Möglichkeiten kombiniert.
Feste Integration über das Freetz Image¶
- Freetz-1.1.x: Die Datei kann unter
./root
an die gewünschte Stelle kopiert werden. - Ab Freetz-1.2: Dies kann ohne großen Aufwand über das Beispiel Addon
own-files-0.1
realisiert werden. Einfach das Kommentarzeichen vorown-files-0.1
in addon/static.pkg entfernen und die gewünschten Dateien in das Verzeichnis./addon/own-files-0.1/root/
an die Stelle kopieren, an der sie im root Dateisystem der Box landen sollen. Beispiel: eine Datei./addon/own-files-0.1/root/usr/bin/foo
wird auf der Box in/usr/bin/foo
landen.
Dateien und Verzeichnisse, die unterhalb von/var
liegen sollen können nach./addon/own-files-0.1/var.tar
kopiert werden. Änderungen an diesen Dateien gehen bei jedem Reboot verloren.
Erzeugen der Dateien aus der debug.cfg¶
Beim Booten werden die gewünschten Dateien im Verzeichnis /tmp
neu
erstellt. Dazu wird das Script debug.cfg
missbraucht, das beim
Starten der FritzBox automatisch ausgeführt wird. Da die debug.cfg
selbst im beschreibbaren TFFS des Flash (mtd3/4) liegt, gehen ihre
Inhalte beim Reboot nicht verloren.
Beispiel:
Der Code wird einfach in die debug.cfg
eingefügt. Am einfachsten
geht es mit Putty:
- Code in Zwischenablage kopieren
- mit der Box via telnet / SSH verbinden
- nvi /var/flash/debug.cfg
- mit : set paste RETURN in den Einfügen/Paste Modus wechseln
- an der passenden stelle „i“ für insert drücken
- rechte Maustaste auf Putty fügt den Text ein
- nacheinander ESC ESC : w q RETURN drücken (Abbrechen wäre: ESC ESC : q ! RETURN)
- Neustarten
Hier wird ein Skript erzeugt, das sich mit /var/tmp/checkonline.sh
aufrufen lässt. Es zeigt an, welcher der neun Rechner im FB-LAN online
ist. Wichtig ist, daß der „Endmarker“ (hier ‚ENDCHECK‘) nicht
eingerückt ist. Die letzte Zeile macht das Script ausführbar. Abbruch
mit STRG+C.
cat > /var/tmp/checkonline.sh << 'ENDCHECK'
#!/bin/sh
while [ 1 = 1 ]
do
clear
echo Online:
date
echo ------------------------------------------------
for a in "2 Desktop1" "3 Michael" "20 Christina" "21 -" "22 -" "23 -" "24 -" "25 -" "26 -" "27 -" "28 -" "29 -" "45 FB WLAN SL(WDS)"
do
ping -c 1 192.168.178.$a |grep "bytes from ">/dev/null && echo 192.168.178.$a &
done
sleep 1
echo ------------------------------------------------
sleep 9
done
ENDCHECK
chmod +x /var/tmp/checkonline.sh
Nachladen vom Webserver¶
Beim Booten werden alle gewünschten Dateinen aus dem Internet oder von einem Webserver im Intranet auf die Box geladen.
Nachladen vom USB-Stick¶
Beim Booten werden alle gewünschten Dateinen direkt vom USB Stick bzw. via FTP vom internen FTP Server auf die Box geladen.