Beim Installieren einiger neuer TP-Link Archer C7v2 aus dem Bürgerhaushalt durften wir feststellen, dass die vorinstallierte Firmware (3.15.1 Build 160616 Rel.44182n) kein Einspielen fremder Updates mehr zulässt.
Das Upgrade wird mit folgender nichtssagenden Fehlermeldung verweitert:
Error code: 18005
Upgrade unsuccessfully because the version of the upgraded file was incorrect. Please check the file name.
Das ganze ist zurückzuführen auf Anweisungen der FCC, welche das Verändern der Sendeleistung verhindern soll. Daraufhin sah sich TP-Link gezwungen, keine andere andere Firmware mehr zuzulassen. Auch ein Downgrade auf eine vorherige Firmware Version ist nicht mehr möglich.
Es gibt einige Anleitungen im Netz, welche z. B. über den Umweg einer gesonderten DD-WRT Firmware ein Downgrade der Software und dann ein Einspielen der Freifunk oder OpenWRT Software ermöglichen.
Was bei uns letztendlich geholfen hat ist der Failsafe Mode, im Zusammenspiel mit einem TFTP-Server. Dazu sind einige Vorbereitungen notwendig.
Zuerst einmal muss ein TFTP-Server installiert werden. Unter Linux tut es tftpd-hpa. Beim hier verwendeten Ubuntu haben wir die Datei /etc/default/tftpd-hpa insoweit geändert, dass TFTP_OPTIONS nun folgende Optionen enthält: “–secure –verbose –verbose“. Das zeigt (nach einem Neustart des TFTP-Servers) im Log an welche Datei abgerufen wurde.
Außerdem muss der Rechner mit der IP-Adresse 192.168.0.66 versehen werden. Wie das erfolgt ist jeweils vom Betriebssystem abhängig.
Das hier verwendete Ubuntu hat desweiteren “systemd” laufen – und das fährt ein Interface runter, wenn auf dem Kabel keine Verbindung besteht (weil zum Beispiel der Router gerade bootet). Das ist Schrott, weil beim Reset des Routers das Interface herunter und dann irgendwann wieder hochgefahren wird, wenn der Router sein Interface wieder hoch fährt. Leider dauert das Hochfahren und Konfigurieren des Interfaces einige Zeit, und das kann sich mit dem Abrufen des Boot-Images vom TFTP-Server überschneiden. Die Lösung wäre ja, systemd wegzuwerfen – aber als Workaround reicht es auch, den eigenen Rechner und den Router an einen Switch anzuschließen, statt beide direkt mit einem Kabel zu verbinden.
Wenn das alles erledigt ist, muss das Boot-Image (das Freifunk Factory Image) für den Archer C2 noch im Verzeichnis für den TFTP-Server bereitgestellt werden. Das ist hier “/var/lib/tftpboot“, und die Datei muss “ArcherC7v2_tp_recovery.bin” heißen.
Checkliste:
* TFTP-Server läuft
* IP-Adresse des Rechners ist 192.168.0.66
* Rechner und Router sind mit einem Switch verbunden
* Boot-Image mit richtigem Namen im TFTP-Server Verzeichnis
* Logfile beobachten: tail -n 50 -f /var/log/syslog
Jetzt den Router anschalten und warten bis die zweite LED von links (sieht wie ein Stern aus) blinkt. Dann die Reset-Taste für ca. 15-20 Sekunden gedrückt halten, bis folgende Meldung im Log erscheint:
Apr 9 21:59:54 freifunk in.tftpd[26987]: RRQ from 192.168.0.86 filename ArcherC7v2_tp_recovery.bin
Der Router hat sich das neue Image vom TFTP-Server gezogen und wird das jetzt installieren. Dauert ein paar Minuten. Danach die IP-Adresse des eigenen Rechners wieder auf automatische Vergabe umstellen, das Netzwerkkabel für ein paar Sekunden ausstecken (damit systemd das mitbekommt) und dann ganz normal mit der Konfiguration des Freifunk Routers nach Anweisung eurer Community fortfahren.