Firmware-Backrezept für den Speedport 500v und W 500v

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

Für den 500v: von T-Com (V0.9 bzw. V1.31) oder Hitachi

Für den W500v: von T-Com (V1.20 bzw. V1.30) oder Hitachi

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…

Um die Paketverwaltung von Debian nicht inkonsistent werden zu lassen, wäre es nicht sinnvoller, das Paket mit alien in ein deb Paket zu konvertieren?

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.

EDIT 20071027: Bei mir war es die gleiche Änderung, aber an der Datei kernel/linux/scripts/kconfig/mconf.c in Zeile 91 (die oben genannte Datei war schon o.k.).

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 abwarten, 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)

 
software/speedportw500v-firmware.txt · Zuletzt geändert: 2007/10/27 16:38 von MaxMuster
 
Impressum
Recent changes RSS feed Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki