Berlin:Firmware/HowTo/Debrick
In diesem Howto wird das Debricken von Routern behandelt, welche durch einen vorangegangenen, fehlerhaften Firmware-Upgrade- oder Flash-Versuch nicht mehr ansprechbar sind. In erster Linie behandelt die Anleitung die Router Ubiquiti Nano Station loco M2 (XM Hardware) und Ubiquiti Unifi AP. Bei anderen Routern kann das Prozedere beim "Debricken" abweichen oder anders verlaufen.
Infos zum Debricken eines bestimmten Gerätes finden sich auch immer auf der Geräte-Seite im OpenWrt-Wiki.
Anmerkung zu den benötigten Betriebssystemen für diese Anleitungen
Die hier verwendeten Befehle funktionieren unter Linux, in weiten Teilen auch unter Mac OS X. Für Windows stehen fast 100% der Linux-Features zur Verfügung, wenn zusätzlich das Posix-Sub-System Cygwin installiert wird.
Ubiquiti Nanostation loco M2
Hierbei handelt es sich um die XM-Variante der Nanostation.
Ausgangszustand des Routers
Nach einem missglückten Upgrade von einer Lede-Alpha-Version zu Hedy ließ sich das Gerät weder anpingen, noch war es per SSH ansprechbar.
Vorbereitungen
OpenWRT-Firmware (openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin) unter https://archive.openwrt.org/snapshots/trunk/ar71xx/generic/ und die zum Gerät zugehörige Freifunk-FW (http://buildbot.berlin.freifunk.net/buildbot/stable/1.0.4/ar71xx-generic/default/hedy-1.0.4-ubnt-bullet-m-factory.bin) herunterladen.
Alternativ kann der erste TFTP-Repair-Versuch auch über das Image des Herstellers erfolgen: https://www.ui.com/download/airmax-m/nanostationm
Wiederherstellung mittels TFTP-Boot
Mittels TFTP-Boot das Gerät im TFTP-Boot-Modus hochfahren. Hierzu den Reset-Button gedrückt halten, während dieser gedrückt wird, den Router einschalten (POE-LAN-Kabel oder Stromzufuhr vorher herausziehen und für das Einschalten wieder hineinstecken). Der Reset-Button verbirgt sich rechts neben der LAN-Buchse in einer rechteckigen Aussparung. Wenn die untere Gehäuseschale abgezogen ist, kommt man an diesen heran. Er kann betätigt werden, in dem man mit einer aufgebogenen Büroklammer oder einem ähnlich langen, dünnen Gegenstand in dieses Loch hineindrückt. Hierbei ca. 25 Sekunden warten.
Ein Terminal öffnen und folgende Befehle eingeben:
cd ~/Downloads ifconfig eth0 192.168.1.254 cp openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin code.bin echo -e "binary\nrexmt 1\ntimeout 60\ntrace\nput code.bin flash_update\n" | tftp 192.168.1.20
Erklärung zu den Befehlen: Wir wechseln in das Download-Verzeichnis auf unserem Rechner. In unserem Beispiel wurde dorthin die Firmware von OpenWrt heruntergeladen. ifconfig ändert die IP-Adresse unserer Ethernetkarte statisch auf 192.168.1.254 um. Router und PC können somit über ETH0 (1. Ethernetadapter) kommunizieren. Die Firmware-Datei wird kopiert nach code.bin im Download-Verzeichnis (eine Umbenennung hätte es auch getan). Mit dem Echo-Befehl wird der Inhalt der Firmaware-Datei über das TFTP-Protokoll auf den Router transferiert und dort mit dem Kommando flash_update installiert.
Nach dem OpenWrt erfolgreich auf das Gerät übertragen wurde und der Router mit der neuen Firmware einen Restart absolviert hat, kann über die Web-Oberfläche von OpenWRT dann das entsprechende Firmware-Image für Freifunk per Upgrade eingespielt werden. Ist auch dieses vollbracht, fahren wir mit der Freifunk-Router-Konfiguration fort: Howto Assistent -- https://wiki.freifunk.net/Berlin:Firmware:Howto:Assistent
Ubiquiti Unifi AP (LR)
Als weiteren Gerätetypen behandeln wir in diesem Howto den Unifi AP. In unserem Fall handelt es sich um einen Unifi AP UAP (kein V2 -- Produktionsjahr 2016).
Ausgangszustand des Routers
Der Router verfügt über eine Firmware-Version 3.xx. Wird ein Flash-Versuch nach Anleitungen von Ubiquiti mit dem folgenden Upgrade-Befehl vorgenommen,
fwupdate.real -m openwrt-ar71xx-generic-ubnt-unifi-squashfs-factory.bin -d
kommt es zu einem scheinbaren Upgrade. Nach dem Reboot des Geräts wird man dann jedoch wieder mit der Firmware des Herstellers konfrontiert, ein eventuell gesetzter Benutzer und sein Passwort sind danach nicht mehr gültig. Der fehlerhafte Upgrade-Befehl setzt User, als auch dessen Passwort wieder auf "ubnt" zurück.
Vorbereitungen
Freifunk-Firmware unter http://buildbot.berlin.freifunk.net/buildbot/stable/1.0.4/ar71xx-generic/default/hedy-1.0.4-ubnt-unifi-factory.bin herunterladen. Das Gleiche noch mal mit der Firmware von OpenWrt: https://archive.openwrt.org/snapshots/trunk/ar71xx/generic/openwrt-ar71xx-generic-ubnt-unifi-squashfs-factory.bin
Alternativ zur OpenWRT-Firmware kann auch die Original-FW des Herstellers bezogen werden: https://www.ui.com/download/unifi/unifi-ap
Anmerkung: Beim Download der Firmware-Images ist darauf zu achten, welches Unifi-AP-Modell vorliegt. Bei der Hersteller-FW ist zu unterscheiden zwischen UAP, UAP V2 oder UAP Pro.
Hier noch einmal eine Auflistung der 3 Firmware-Editionen und den dazugehörigen Modellen des Hersteller Ubiquiti Networks:
- UniFi firmware 4.0.42 for UAP, UAP-LR, UAP-OD, UAP-OD5
- UniFi firmware 4.0.42 for UAP-v2, UAP-LR-v2
- UniFi firmware 4.0.42 for UAP-Pro
Wiederherstellung per SSH
Falls bei dem Router durch einen veralteten Upgrade-Befehl (ab FW 3.xx) lediglich Benutzer und Passwort zurückgesetzt wurden, ist das Gerät per SSH noch flashbar.
Bis Ende 2016 gab es bei den Unifi APs noch zusätzlich eine Web-Gui. Diese wurde jedoch noch vor dem Beginn des Produktionsjahrs 2017 nicht mehr ausgeliefert. So konnte es vorkommen, dass man ein Dreier-Bundle der Unifi AP bestellte, in der Box dann Geräte vorfand, wo das erste noch eine WEB-Gui installiert hatte, das zweite oder dritte Gerät im gleichen Karton diese jedoch nicht mehr aufwies.
Ein Upgrade per SSH war/ist in jedem Fall mit den Geräten des Baujahrs 2016 möglich (WEB-Gui hin oder her).
Zunächst öffnen wir ein Terminal. Dort kopieren wir das heruntergeladene Freifunk-Firmware-Image auf den Router:
cd ~/Downloads scp hedy-1.0.4-ubnt-unifi-factory.bin ubnt@192.168.1.20:/tmp/
Der scp-Befehl wird ein Passwort anfordern. Hier ist "ubnt" einzugeben. Danach eröffnen wir im Terminal eine SSH-Verbindung zum Router (als Passwort geben wir auch hier "ubnt" ein).
ssh ubnt@192.168.1.20
In dieser SSH-Sitzung geben wir dann die folgenden Befehle ein:
mv /tmp/hedy-1.0.4-ubnt-unifi-factory.bin /tmp/fwupdate.bin cd /tmp nohup syswrapper.sh upgrade2
Kurze Erklärung zu den Kommandos: Im /tmp-Ordner auf dem Router benennen wir das Firmware-Image um in fwupdate.bin. Danach wechseln wir in das Verzeichnis /tmp und geben dort den korrekten Upgrade-Befehl für Firmware-Version 3.xx ein.
Nach erfolgreichem Upgrade rebootet der Router und das Gerät ist danach unter http://192.168.42.1/ mit dem Freifunk-Image erreichbar. Weiter geht es dann mit der Konfiguration. Siehe hierzu den Freifunk-Wiki-Artikel Howto Assistent: https://wiki.freifunk.net/Berlin:Firmware:Howto:Assistent
Wiederherstellung mittels TFTP-Boot
Mittels TFTP-Boot das Gerät im TFTP-Boot-Modus hochfahren. Hierzu geht man wie folgt vor: Das Ethernetkabel aus dem Unifi AP herausziehen. Danach mit einer aufgebogenen Büroklammer (oder ähnlichem Gegenstand) bei geöffneter unterer Gehäuseverschalung in die Aussparung rechts neben der Ethernetbuchse hineindrücken. Während der Reset-Knopf gedrückt bleibt, Ethernetkabel wieder hineinstecken. Der Reset-Button muss nun noch für ca. weitere 25 Sekunden gedrückt werden. Danach sollte das Gerät im TFTP-Boot-Modus starten.
Wir öffnen ein Terminalfenster und geben die folgende Befehle ein:
cd ~/Downloads ifconfig eth0 192.168.1.254 cp openwrt-ar71xx-generic-ubnt-unifi-squashfs-factory.bin code.bin echo -e "binary\nrexmt 1\ntimeout 60\ntrace\nput code.bin flash_update\n" | tftp 192.168.1.20
Danach mit der Web-Gui des Routers verbinden und über das System-Menü ein Image-Upgrade mit der Freifunk-FW vornehmen. Nach erfolgtem Upgrade kommt es zu einem abermaligen Reboot. Die Freifunk-Web-Gui ist unter http://192.168.42.1/ aufrufbar. Es kann mit der Konfiguration fortgesetzt werden: https://wiki.freifunk.net/Berlin:Firmware:Howto:Assistent
Nachwort zu Unifi AP
Die beschriebenen Debrick-Anleitungen für das Modell Unifi AP gelten für alle Geräte gebaut bis Ende 2016. Nach den Erfahrungen der Teilnehmer des Debrick-Workshops auf dem WCW2019 und einigen Projektmitarbeitern des Projektes Freifunk für Medienkompetenz und Beteiligung (FFMB) werden Geräte des Baujahrs 2017 und später von einem Bootloader geschützt, der das Einspielen nichtsignierter Firmware (FW anderer Anbieter als Ubiquiti Networks) unterbindet. Diese Erkenntnis war ein nicht unerheblicher Grund, dem Unifi AP das Prädikat "ungeeignet" in der Firmware-Liste (https://wiki.freifunk.net/Berlin:Firmware) zu vergeben.
Eine Ubiquiti Nanostation M2 aus dem Jahr 2017 war zwar für Freifunk beim Debrick-Workshop (WCW2019) flashbar, es besteht jedoch die Gefahr, dass der Hersteller derartige Protektions-Mechanismen in Zukunft auch auf andere Modelle seiner Produkte ausweitet. Der Autor möchte daher an dieser Stelle für Freifunk-Projekte vom Kauf von Hardware des Herstellers Ubiquiti Networks abraten. In eine ähnliche Richtung gehen Empfehlungen des Projektes OpenWRT: "If you want liberty, do not buy Ubiquiti." (https://openwrt.org/toh/ubiquiti/unifi)