Freefi to Freifunk

In letzter Zeit sind einige Leute mit einem freefii geflashten Router an mich herangetreten, weil sie auf Freifunk umsteigen wollten. Dabei sollte der (Zitat: „teuer bezahlte Router“) tl-wr1043nd v2 weiter verwendet werden.

Freefii benutzt hier ein vernageltes OpenWrt mit Chillispot.

Meine Erkenntnisse:

Der Router hat zwar uboot 1.1.4, jedoch ohne das tftp Rescue und mit Version Jun 13 2014 – 15:14:01. Das original tp link uboot mit tftp rescue ist auch version 1.1.4, aber vom Jul 17 2015 – 14:31:22. Ich vermute also, dass die Basis vor dem flashen einfach noch kein tftp rescue im Bootloader hatte.

Das im Allgemeinen im OpenWrt Wiki beschriebene Vorgehen führt zwar bei einem „normalen“ OpenWrt zum Erfolg, aber das Freefii Ding ist nicht normal. Der Freefi Rescue Mode setzt die 192.161.1.1 auf eth0. Das Problem ist – der unkonfigurierte Switch hängt an eth1. Ob das nun Absicht von Freefii war, oder ob die einfach schluderig beim Kompilieren waren, sei dahin gestellt…

kurz: Für einen Freefii reflash braucht man entweder deren root Passwort, Oder muss kurz eine serielle Konsole anschließen. Damit ist das ganze dann allerdings sehr einfach. z.B. so:

Serielle anschließen wie hier beschrieben. Für die 2 notwendigen Befehle genügt auch eine temporäre Verbindung mit Probes, statt löten.

Ins OpenWrt failsafe booten wie hier beschrieben.

In der seriellen Konsole eingeben:

mount_root #(das passwort ändern kann man sich sparen, da das durch firstboot eh wieder gelöscht wird)

firstboot

reboot #(eventuell mit -F)

Damit hat man ein frisches OpenWrt und kann ab jetzt übers LAN weitermachen (nach belieben aber auch weiter über die serielle Konsole).

Nun schließt man einen beliebigen LAN Port des Routers an einen (Linux) Rechner an, welcher eine brauchbare ip, zb. 192.168.1.2 hat und in dessen / sich eine stripped bin der original Firmware befindet.

Diese kann man sich irgendwo downloaden, oder selbst erstellen. z.B. so:
wget http://static.tp-link.com/res/down/soft/TL-WR1043ND_V2_150717.zip

Nach dem unzip findet man dann wr1043v2_en_3_19_32_up_boot(150717).bin Diese bearbeitet man mit dd if=wr1043v2_en_3_19_32_up_boot\\(150717\\).bin of=wr1043v2_stripped.bin skip=257 bs=512


cp wr1043v2_stripped.bin

Leider hat die OpenWrt Version von Freefii kein luci installiert, sodass man nicht übers Webif flashen kann. Also geht es so weiter:

Mit der seriellen Konsole weitermachen, oder per Telnet auf 192.168.1.1 connecten (root ohne pw).

scp 192.168.1.2:/wr1043v2_stripped.bin /tmp cd /tmp sysupgrade wr1043v2_stripped.bin

Das dauert nun eine Zeit lang. Nicht ungeduldig werden, auch wenn sich mal 1-2-3-4 Minuten scheinbar nichts tut. In der seriellen Konsole erscheint irgendwann: Upgrade completed Rebooting system… Bei telnet geht irgendwann die Verbindung zu und der Router rebootet. Nun haben wir schon fast wieder einen original Router. Dieser hört nun auch wieder auf 192.168.0.1. Nachdem man einen Rechner entsprechend in diesem Netz konfiguriert hat, kann man mit einem Browser und dem default admin/admin dort einloggen. Jetzt geht man dort wieder auf Firmware update und spielt nochmal die komplette Firmware ein. Also z.B. das wr1043v2_en_3_19_32_up_boot(150717).bin aus unserem obigen Download. Damit wird nämlich nun auch der uboot ersetzt und wir haben wieder einen „fabrikfrischen“ wr1043v2 inklusive tftp rescue… Hier können wir nun nach belieben die Firmware unserer Wahl installieren.