Firmware Backrezept für den Speedport 500v und W500v
BIG FAT WARNING
Die Folgende Anleitung mag unvollständig oder gar an einigen Stellen Falsch sein.
Der/Die AuthorInnen übernehmen keine Haftung für Schäden jeglicher Art, die mittelbar
oder unmittelbar als Folge dieser Anleitung entstanden sind.
Das Flashen der Firmware bedeutet in jedem Falle eine Verletzung der Garantiebedingungen.
Schritt 1: Quellcode laden
Auf
der Website
des rosa T gibt es ein Quellcode Archiv zum runterladen.
Schritt 2: Quellen entpacken, Toolchain installieren
Zuerst einmal solltest Du Dir ein Verzeichnis für die Sourcen anlegen, sinnvoll wäre z.B.
mkdir /usr/src/speedport_firmware
Danach das Archiv mit der Firmware dort ablegen und entpacken.
cd /usr/src/speedport_firmware
tar -xzvf bcm963xx_Speedport [...]
In dem Verzeichnis befinden sich nun 2 weitere Archive, die ebenfalls wie oben entpackt werden können.
Ausserdem liegt dort die Toolchain vergraben in zwei RPM-Paketen.
Auf Systemen, die ohnehin RPM verwenden einfach installieren mit
rpm -ihv uclibc-crosstools-common.i386.rpm uclibc-crosstools-mips.i386.rpm
Für Systeme, die primär auf das Debian-Paketmanagement setzen (Debian, Ubuntu, etc.), muss rpm installiert sein:
apt-get install rpm
Danach die Toolchain installieren mit
rpm -ihv --nodeps uclibc-crosstools-common.i386.rpm uclibc-crosstools-mips.i386.rpm
Die --nodeps Option ist leider nötig, da bei der Installation von RPM dessen Paketdatenbank
leer ist und RPM glaubt, es sei nicht einmal eine libc installiert...
Schritt 3: Anpassungen vornehmen
Damit es sauber backt, muss man zuerst einmal Hand anlegen und die Datei "mconf.c" im
Verzeichnis userapps/opensource/busybox/scripts/config bearbeiten.
In Zeile 104 muss
static struct menu *current_menu;
zu
struct menu *current_menu;
umgebastelt werden.
Schritt 4: ein eigenenes Busybox bauen
Die eigene Busybox Konfiguration kann man bequem menügeführt erledigen. Dazu muss man
in das Verzeichnis userapps/opensource/busybox gehen und dort
make menuconfig
eingeben.
Was unbedingt aktiviert werden sollte in der Config ist der telnetd -- den brauchen wir später
noch ;)
Nach getaner Arbeit muss man die soeben erstellte Datei ".config" kopieren in "brcm.config",
sonst wird sie knallhart von der Makefile überschrieben.
Alternativ kann man natürlich auch folgenden Eintrag aus Zeile 774 der Makefile auskommentieren:
cd $(OPENSOURCE_DIR)/busybox; cp -f brcm.config .config
in
cd $(OPENSOURCE_DIR)/busybox #; cp -f brcm.config .config
Schritt 5: Kernel anpassen (optional)
Den Kernel darf man natürlich auch veründern und so z.B. ipv6 support einbauen. Einfach in
das Verzeichnis kernel/linux wechseln und ebenfalls make menuconfig hier eingeben.
Auch hier ist die Makefile gnadenlos und will einfach unsere schöne neue Kernel-Config
überschreiben... Hierzu einfach Zeilen 362 und 374 der Makefile komplett auskommentieren:
cp -f $(KERNEL_DIR)/arch/mips/defconfig $(KERNEL_DIR)/.config;
in
# cp -f $(KERNEL_DIR)/arch/mips/defconfig $(KERNEL_DIR)/.config;
Schritt 6: Telnetd starten
Es gibt 2 möglichkeiten den Telnetd zu starten. Zum einen via inetd oder
direkt via rc-script, das beim starten des Systems aufgerufen wird.
Starten mit rc-script
Zum starten via rc-script die Datei /target/fs.src/etc/init.d/rcS editieren
und folgende Zeile hinzufügen:
/usr/sbin/telnetd telnetd -l /bin/login
...fertig.
Starten mit inetd
Es ist auch möglich den Telnetd via inetd zu starten. Hierzu sollte
man den inetd in busybox (s.o.) aktivieren und ihn mit dem rc-script
starten. Hierzu einfach folgende Zeile der rcS hinzufügen:
/usr/sbin/inetd
Wenn man sich für inetd entscheidet, muss man zusätzlich noch
folgende Zeile in der Datei /target/fs.src/etc/inetd.conf eintragen:
telnet stream tcp nowait root /bin/telnetd telnetd
Schritt 7: Image bauen & hochladen
So, nun ist's eigentlich fertig...
Zum Backen des Images braucht man nun nur noch make zu tippen und abzuwarten,
bis folgende Meldung erscheint:
Done! Image 96348GWV_DT has been built in /usr/src/speedport_w500v/images.
In dem Verzeichnis images/ wird dann ein fertiges firmware-image abgelegt, das man über das Webinterface hochladen kann.
Wenn mal was schief geht
...gibt es noch eine Art backup-Modus. Hierzu muss man das Gerät zunächst ausschalten
und mit gedrückt gehaltener reset-taste wieder einschalten. So lange drücken, bis die
Power-LED rot, die Online-LED gelb und die LAN-LED grün leuchtet.
In diesem Modus hält das Gerät einen mini Webserver vor, der auf der IP
192.168.1.1 lauscht und mit dem man das Gerät neu flashen kann. (z.B. Original Firmware image vom Hersteller)
Related
bitswitcher ist eine distribution für die Speedports
(W) 500V und derivate, die auf den Quellen aufbaut.
In meinem Projekt
neue Firmware für den Siemens SL2-141-L
widme ich mich dem kompilieren und flashen einer aktuellen Firmware für dieses Gerät.
_