WebFrontend modifizieren ?

Speedfreak

Neuer User
Mitglied seit
14 Dez 2005
Beiträge
51
Punkte für Reaktionen
0
Punkte
6
Ich wollte nur mal so zum Spaß das Webfrontend modifizieren. Also nicht unbedingt andere Grafiken einfügen, sondern eher mal ein paar Texte ändern, rein so zum Spaß.

irgendwann habe ich dann auch die html-Dateien gefunden, und zwar unter

/usr/www/all/html

Allerdings konnte ich trotz ausreichender Rechte (-RW-) nix ändern.
-> Read-only Filesystem !

Und nun ? Wie komme ich weiter
 
Entweder eine original Firmware von AVM nehmen und das enthaltene Dateisystem Image modifizieren (nicht einfach -> siehe fwmod Skript im danisahne mod) oder bei kleineren Änderungen:
Code:
cp /usr/www/all/html/sonstwie.html /var/tmp/
[i]/var/tmp/sonstwie.html bearbeiten[/i]
mount -o bind /var/tmp/sonstwie.html /usr/www/all/html/sonstwie.html
Das hält bis zum nächsten Reboot. Soll die Änderung einen Reboot überleben, dann mußt du das "/var/tmp/sonstwie.html bearbeiten" irgendwie mit Hilfe der debug.cfg automatisieren.

Mfg,
danisahne
 
Danke für die Antwort !

Also muß ich meine modifizierte Datei mounten (ersetzt anscheinend das Original). Wußte nicht, daß soetwas klappt. Linux ist echt coool !

Können wir denn diesbezüglich mal auf die RAM/ROM/FLASH-Struktur der FB eingehen ? Ich habe bereits im Wiki nach ner schlüssigen Erklärung gesucht.

Zum einen gibts da ja den FLASH-Speicher, der als /VAR/FLASH gemounted ist. Und dann wird bei jeder Firmware ja das Dateisystem als Image geladen und dann auch gemounted ?

Gruß Chris
 
Ja, unter Linux ist das Flash in verschiedene Bereich geteilt.
Aufteilung:
Code:
mtd0	0x900C0000,0x903C0000
mtd1	0x90010000,0x900C0000
mtd2	0x90000000,0x90010000
mtd3	0x903C0000,0x903E0000
mtd4	0x903E0000,0x90400000
Der mtd0 ist das Filesystem, das wird nach / gemountet.
mtd1 ist der Kernel und mtd2 der Bootloader (adam2).
In mtd3 und mtd4 steht die Config, wobei immer nur einer der beiden aktiv ist, also die neueste Config hat. Der andere wird genommen, wenn der erste defekt ist. (theoretisch)
Das was unter /var/flash gemountet ist nennt sich tffs und ist eine Entwicklung von AVM(?).

MfG Oliver
 
Auf meiner 7050 (und auf vielen anderen 4MB Boxen - nicht hidden root):

Code:
Flashadressen
0    -10000      mtd2        64 KB      Bootloader ADMA2 (never touch that!)
10000-C0000      mtd1       704 KB      Kernel Image
C0000-3C000      mtd0      3072 KB      Dateisystem Image
3C000-3E000      mtd3       128 KB      \
3E000-40000      mtd4       128 KB      / TFFS im double-buffering Modus

Anzeigen lassen kannst du die Flashpartitionierung bei dir mit
Code:
cat /proc/sys/dev/adam2/environment | grep mtd

Im TFFS sind die Einstellungen gespeichert und das ist der einzige Bereich, wo der Flash auch beschreibbar ist. Allerdings ist da nicht das ganze Verzeichnis /var/flash/ gemaounted, sondern in dem Verzeichnis befinden sich Character Devices (sieht man an dem kleinen c vor den Dateirechten bei `ls -l'), welche die Schnittstelle zum TFFS darstellen. Das Verzeichnis /var/flash/ wird von AVM lediglich dazu verwendet, um dort die Devices zu erstellen. Folgendes ist gemounted:

Code:
/                                    squashfs Image aus mtd0
/var                                 cramfs (beschreibbar, überlebt allerdings keinen Reboot)
/var/flash/{debug.cfg|ar7.cfg|...}   mit mknod erzeugte Character Devices (Inhalt landet im TFFS und überlebt Reboot); erzeugt werden sie in /etc/init.d/rc.S

EDIT: Zu langsam

Mfg,
danisahne
 
Also alles Flash (teils read-only, teils beschreibbar) und der rest ist RAM=Arbeitsspeicher ?
Wo kommen denn dann zBsp die SSH binaries hin ? in den beschreibbaren Flash (von dem nur so wenig platz über ist ?)

Noch ne Frage. Die Images mtd1 und mtd0, werden die als gepacktes tar (oder wars gz?) in den Flash geschrieben ?

Ichles mir derweil mal den Thread übers Dateisystem durchlesen. Für mich als Linuxnewbie leider ein dicker Brocken. Aber das funzt schon noch.....

Danke erstmal :)
 
Die ssh-Binaries werden entweder bei jedem Start von einem Server geladen, oder vor dem Flashen in das Filesystem.image gepackt.
Der Kernel ist ein lzma/gzip gepacktes Kernelimage.
Das Dateisystem ist ein mit lzma/gzip gepacktes squashfs. (kein tar)
Das Firmware-Image ist eine tar-Datei.

MfG Oliver
 
Ich hab hier schon mal beschrieben, wie man Dateien in eine Firmware modifizieren kann, allerdings bezieht sich die Anleitung nur auf den oben genannten Boxentyp: Step by Step Anleitung

Im danisahne mod kommt LZMA zum Einsatz (bessere Kompression, aber Kernel Patches erforderlich), in der Original Firmeware ist das Squashfs gzipped.

Mfg,
danisahne
 
Mannomann, das wird ja immer heftiger.
Am Anfang waren all die Scripts und Compilieranleitungen für mich böhmische Dörfer. Jetzt, wo ich wenigstens die Grundlagen kapiere werfen sich natürlich hunderte von Fragen auf. Ich schätze mal, daß ich jetzt wohl "die Schulbank drücken" muß und Euch in ein paar Tagen wieder mit neuen Fragen löchern werde.

Errinnert mich an den Rasenmähermann, der nach "Durchsicht" etlicher Enzyklopädien auf CD-Rom nur noch erstaunt sagte: "Ich wußte nicht, daß es so komplex ist."
 

Statistik des Forums

Themen
246,200
Beiträge
2,247,904
Mitglieder
373,756
Neuestes Mitglied
Pitberg
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.