DDWRT zu FreifunkFranken Firmware
Auf dem Router läuft DD-WRT
Mitunter bekommt man einen gebrauchten Router, auf dem nicht die Original-Firmware, sondern DD-WRT läuft. Dann ist ein Flashen der Freifunk-Firmware via Webinterface nicht möglich, da DD-WRT nur DD-WRT-Firmware flasht.
Mit folgendem Vorgehen habe ich mehrere TP-Link TL-1043ND mit DD-WRT darauf geflasht (von Linux aus):
Zunächst muss Telnet aktiviert werden. Hierzu per Webinterface anmelden, und unter „Administration“ den Telnet-Zugriff aktivieren.
Dann wird die Firmware auf den Router kopiert. Es wird die „sysupgrade“-Variante benötigt, in meinem Fall „fff-20181202-ar71xx-g-tl-wr1043nd-v1-squashfs-sysupgrade.bin“.
Die einfachste Variante, die Firmware auf den Router zu bekommen, ist, sie von da aus per wget von einem Webserver abzuholen. Entweder verwendet man einen richtigen HTTP-Server, oder behilft sich – wie im folgenden beschrieben – mit dem Mini-Webserver, den Python mitbringt:
Der Einfachheit halber macht man zunächst eine Kopie mit einem griffigeren Namen:
cp fff-20181202-ar71xx-g-tl-wr1043nd-v1-squashfs-sysupgrade.bin firmware.bin
Dann startet man im selben Verzeichnis den Mini-Python-Webserver:
python -m http.server
Der Server lauscht auf 0.0.0.0 (also allen verfügbaren Netzwerkinterfaces) auf dem Port 8000. Wenn man in einem Webbrowser die Adresse 127.0.0.1:8000 öffnet, sieht man ein Directory Listing (incl. der Datei „firmware.bin“).
Dann auf dem Router einoggen (der Router hatte hier die IP-Adresse 192.168.11.1):
telnet 192.168.11.1
Dann die Firmware nach /tmp kopieren (der Client hatte hier die IP-Adresse 192.168.11.147):
cd /tmp
wget http://192.168.11.147:8000/firmware.bin
und schließlich die Firmware flashen mit
mtd -r write /tmp/firmware.bin linux
Der Router startet neu und begrüßt einen dann mit der Freifunk-Firmware.