TP-Link CPE210/TFTP-Flash unter Ubuntu
Möchte man die Original-Firmware oder eine andere OpenWrt-Firmware wieder auf eine TP-Link CPE210 aufspielen (oder das Gerät debricken, falls nichts mehr funktioniert), kann dies per TFTP (Trivial File Transfer Protocol) erfolgen. Hält man beim Start einer CPE210 die Reset-Taste gedrückt, so holt sich das Gerät die Firmware von einer festen Adresse per TFTP ab, man muss also "nur" dafür sorgen, dass es diese gibt.
Dazu wird die CPE hinter einem Switch an deinem Rechner angeschlossen, also in folgender Reihenfolge:
Dein PC === Switch === PoE-Netzteil ==x CPE210.
Die Original-Firmware bekommst Du auf der TP-Link-Website. In der .zip-Datei befindet sich eine .bin-Datei, die über den TFTP-Server bereitgestellt wird.
Auch eine OpenWrt-Firmware (factory) lässt sich so auf die CPE spielen.
TFTP-Server unter Ubuntu vorbereiten
Erfolgreich getestet wurde folgendes Vorgehen unter Ubuntu/Xubuntu. Du benötigst:
- PC oder Notebook mit Netzwerkkarte und Xubuntu (getestet mit Xubuntu v18.04). Du kannst auch einen Live-USB-Stick verwenden und deinen Rechner damit booten.
- Netzwerk-Switch (Unmanaged) und ein paar Kabel
1. Verbinde den PC mit dem Internet, egal wie (Dir wird schon etwas kreatives einfallen).
2. Öffne ein Terminal-Fenster und installiere HPAs TFTP-Server und lnav (eine syslog-Anzeige) mit folgenden Kommando:
sudo apt-get install tftpd-hpa lnav
3. Passe die Konfiguration des TFTP-Servers an. Das kannst du mit einem Editor deiner Wahl mit Root-Rechten tun: Zum Beispiel mit Mousepad, indem Du ihn über das Terminal startest:
sudo mousepad /etc/default/tftpd-hpa
Es öffnet sich ein Fenster mit der Konfigurations-Datei von HPAs TFTP-Server. Den Inhalt bearbeiten wir wie folgt:
# /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="var/lib/tftpboot" TFTP_ADDRESS=":69" TFTP_OPTIONS="-l -s --verbose --verbosity 3"
Speichern, schließen, fertig.
4. Kopiere die .bin-Datei der Firmware an den Pfad von TFTP_DIRECTORY, also in das Verzeichnis /var/lib/tftpboot und nenne sie recovery.bin. Dazu kannst du über die Konsole mit sudo thunar den Datei-Manager mit Root-Rechten starten oder das über die Konsole erledigen, wie Du möchtest.
5. Öffne ein neues Terminal-Fenster und starte mit dem Kommando lnav eine Syslog-Anzeige. Das musst Du nicht unbedingt tun, hat aber die Vorteile, dass Du siehst, was im Hintergrund passiert und Du den Fortschritt kontrollieren kannst.
6. Trenne den PC vom Netzwerk oder WLAN (was auch immer Du in Schritt 1 angestellt hast) und stelle nun die IP-Adresse des LAN-Adapters auf die feste IP 192.168.0.100/24 (ohne korrekte Netzmaske kann der Router keine Verbindung herstellen) ein.
Bis auf die CPE schließen wir nun alles so an und legen das Kabel zur CPE so hin, dass wir sie einstecken können.
Im lnav-Fenster muss nun beim Einstecken in den Switch irgendwo erscheinen, dass der Rechner auf einem Interface die IP 192.168.0.100 hat und dieses aktiv ist.
7. Start des TFTP-Servers: Im Terminal (nicht das Fenster von lnav) starten wir nun mit dem Kommando
sudo /etc/init.d/tftpd-hpa start
den TFTP-Server, dies sollte wie folgt aussehen:
Im Fenster mit der syslog-Anzeige durch lnav sollte dies ebenfalls zu sehen sein:
Wenn bis hierhin alles geklappt hat, muss die CPE nur noch angeschlossen werden.
Flash per TFTP durchführen
Drücke nun den Reset-Taster im Gerät und halte diesen Gedrückt, während Du das Kabel von der POE-Versorgung in die POE-Buchse der CPE210 einsteckst. Den Reset-Taster so lange gedrückt halten, bis die Übertragung per TFTP beginnt. Erst blinken alle LEDs kurz auf, dann beginnt die Übertragung. Bei der Übertragung blinken die Lämpchen am Switch. Nach der Übertragung blinken erneut alle LEDs auf und etwas länger als beim ersten Mal. Wie alles blinken muss, sobald Du die CPE eingesteckt hast, kannst Du in dieser Animation sehen:
Es dauert nun einige Zeit, bis die Firmware geladen wurde. Wenn die LEDs aufhören zu leuchten und sich das Gerät automatisch neu gestartet hat, ist das Webinterface wieder unter http://192.168.0.254 erreichbar.
Fehlersuche
- Der TFTP-Flash-Vorgang findet wenige Sekunden nach dem Einschalten statt. Sollte nach 30 Sekunden trotz gedrücktem Reset-Taster nichts passieren, den Stecker wieder aus der CPE ziehen und ohne gedrückten Taster wieder einstecken.
- Sollte nach dem Flashen der Stock-Firmware das Gerät in einer Dauerschleife hängen oder die Firmware erneut über TFTP ziehen, statt der Stock-Firmware ein OpenWrt-Factory-Image verwenden.
Alternative für LINUX
Je nach Gerät meist muss erst ein Downgrade erfolgen:
IP Adresse vom System auf 192.168.1.100
setzen.
- Per TFTP booten (Reset-Taste ca. 20s gedrückt halten)
cp XW.v5.6.15.30572.170328.1052.bin firmware.bin
echo -e "binary\nrexmt 1\ntimeout 60\ntrace\nput firmware.bin\n" | tftp 192.168.1.20
- Nach dem Reboot über die GUI die freifunk firmware (Erstinstallation) einspielen oder den Vorgang mit der freifunk firmware (Erstinstallation) wiederholen. z.B. (
cp gluon-ffxx-1.4.13stable-ubiquiti-xxxxxxxxx.bin firmware.bin
)