Ubiquiti Unifi AC/Flash-Anleitung
Die Installation unterscheidet sich maßgeblich von anderen Geräten, da die Geräte über kein Web-Interface verfügen und zwei Flash-Partitionen nutzen. Für die Installation wird eine SSH- und SCP-Verbindung genutzt.
Diese Anleitung nutzt dd zum Kopieren der Firmware und kommt ohne mtd aus, sie benötigt daher kein Firmware-Downgrade.
Ablauf
Zur Installation wird das Gerät mit einem Rechner mit fester IP-Adresse (z.B. 192.168.1.100) direkt verbunden. Das Gerät ist dann theoretisch über SSH und SCP unter der IP-Adresse 192.168.1.20 erreichbar. Das Gerät muss dabei über den MAIN-Port angeschlossen werden.
Sollte das nicht funktionieren, kann das Gerät über den Reset-Knopf zurückgesetzt werden [1]: Der Knopf wird für 10 Sekunden gedrückt und dann losgelassen, das Gerät startet danach selbstständig neu und stellt die Werkseinstellungen wieder her. Keinesfalls darf das Gerät dabei vom Strom getrennt werden. Der Prozess ist fertig, sobald die weiße LED wieder dauerhaft leuchtet.
Zuerst wird eine Verbindung zum Gerät unter 192.168.1.20 hergestellt, mit Benutzername: ubnt und Passwort: ubnt.
In der Kommandozeile wird die installierte Firmware-Version direkt vor dem Eingabecursor angezeigt (z.B. BZ.v3.7.58, nicht BusyBox).
Die Geräte werden mit der sysupgrade-Version geflasht (siehe Tabelle), diese kannst Du bei deiner lokalen Freifunk-Community herunterladen.
Die neue Firmware wird per SCP auf das Gerät kopiert, zum Beispiel nach
/tmp/sysupgrade.bin
Über das Kommando cat /proc/mtd lassen wir uns dazu die Liste der Bereiche des Flash-Speichers ausgeben, dies sieht etwa wie folgt aus:
BZ.v3.7.58# cat /proc/mtd dev: size erasesize name mtd0: 00060000 00010000 "u-boot" mtd1: 00010000 00010000 "u-boot-env" mtd2: 00790000 00010000 "kernel0" mtd3: 00790000 00010000 "kernel1" mtd4: 00020000 00010000 "bs" mtd5: 00040000 00010000 "cfg" mtd6: 00010000 00010000 "EEPROM"
Wichtig ist hier:
- 2 - kernel0 (dorthin wird die Firmware installiert)
- 3 - kernel1 (sollte invalidiert werden)
- 4 - bs (enthält Auswahl für kernel0 bzw. kernel1)
Es sind nun folgende Schritte auszuführen:
- Schreiben der neuen Firmware nach kernel0
- Optional: Schreiben der neuen Firmware nach kernel1 (alternativ: Löschen von kernel1)
- Einstellen, dass von der in kernel0 installierten Firmware gebootet wird
- Reboot
1. Schreiben der neuen Firmware nach kernel0
Die Firmware muss nun zuerst nach kernel0 geschrieben werden. Das dafür notwendige Zielgerät ist unter /dev/mtdblockX zu finden. In unserem Fall ist X 2:
dd if=/tmp/sysupgrade.bin of=/dev/mtdblock2
2. Optional: Schreiben der neuen Firmware nach kernel1 (alternativ: Löschen von kernel1)
Die Firmware kann nun ebenfalls nach kernel1 geschrieben werden. Das dafür notwendige Zielgerät ist unter /dev/mtdblockX zu finden. In unserem Fall ist X 3:
dd if=/tmp/sysupgrade.bin of=/dev/mtdblock3
Alternativ kann kernel1 (/dev/mtdblock3) auch invalidiert werden. Das dient als erster Schritt (neben dem Anpassen von BS) um zu verhindern, dass die falsche Installation beim Starten geladen wird. Wir nutzen dazu einfach /dev/zero um es mit Nullen zu überschreiben:
dd if=/dev/zero of=/dev/mtdblock3
3. Einstellen, dass von der in kernel0 installierten Firmware gebootet wird
Nun befindet sich die Firmware in kernel0. Es muss nun eingestellt werden, dass von kernel0 gebootet wird (sonst wird mit viel Magie zwischen 0 und 1 entschieden), dazu wird eine Null in BS (Bootselect) geschrieben.
"bs" befindet sich hier in mtd4. Über dd schreiben wir eine Null in "bs":
dd if=/dev/zero bs=1 count=1 of=/dev/mtdblock4
4. Reboot
Über das Kommando
reboot
starten wir das Gerät jetzt neu. Die SSH-Verbindung bricht ab, das Gerät blinkt erst etwas schneller und irgendwann langsamer. Die Freifunk-Firmware ist installiert und der Router im Konfig-Modus erreichbar.
Wichtiger Hinweis für UAP-AC-M-PRO
Beim UAP-AC-M-PRO muss das Netzwerkkabel an den SECONDARY-Port angeschlossen werden, sonst kann keine WAN-Verbindung hergestellt werden. Ebenfalls ist der Konfig-Modus nur über den SECONDARY-Port erreichbar. Zu beachten ist ebenfalls, dass der SECONDARY-Port eine andere MAC-Adresse als der MAIN-Port verwendet.
Einzelnachweise und weitere Links
- ↑ How to Reset the UniFi Access Point to Factory Defaults Ubiquiti Support
Beispiel für vollständigen Ablauf
Das komplette oben beschriebene Vorgehen ist nachfolgend am Beispiel eines UAP-AC-M-PRO mit Original-Firmware 4.3.21 illustriert. Installiert wird in diesem Beispiel die Firmware vH21 von Freifunk Hannover. Im (optionalen) Schritt 3 wurde im Beispiel die neue Firmware auch in den Bereich kernel1 geschrieben:
login as: ubnt ubnt@192.168.1.20's password: BusyBox v1.25.1 () built-in shell (ash) ___ ___ .__________.__ | | |____ |__\_ ____/__| | | / \| || __) | | (c) 2010-2020 | | | | \ || \ | | Ubiquiti Networks, Inc. |______|___| /__||__/ |__| |_/ https://www.ui.com/ Welcome to UniFi UAP-AC-Mesh-Pro! UBNT-BZ.v4.3.21# UBNT-BZ.v4.3.21# UBNT-BZ.v4.3.21# cat /proc/mtd dev: size erasesize name mtd0: 00060000 00010000 "u-boot" mtd1: 00010000 00010000 "u-boot-env" mtd2: 00790000 00010000 "kernel0" mtd3: 00790000 00010000 "kernel1" mtd4: 00020000 00010000 "bs" mtd5: 00040000 00010000 "cfg" mtd6: 00010000 00010000 "EEPROM" UBNT-BZ.v4.3.21# ls /dev console mem mtd2ro mtd6 mtdblock5 pts ubnt_sta_ht cpu_dma_latency memory_bandwidth mtd3 mtd6ro mtdblock6 random urandom full mtd0 mtd3ro mtdblock0 network_latency sflash watchdog input mtd0ro mtd4 mtdblock1 network_throughput shm zero kmem mtd1 mtd4ro mtdblock2 null snd kmsg mtd1ro mtd5 mtdblock3 port tty log mtd2 mtd5ro mtdblock4 ptmx ttyS0 UBNT-BZ.v4.3.21# ls /tmp TZ etc log resolv.conf.auto shm sysinit.txt utermd default.cfg lib rc.txt run state system.cfg dropbear lock resolv.conf running.cfg sysinfo tmp UBNT-BZ.v4.3.21# dd if=/tmp/gluon-ffh-vH21-ubiquiti-unifi-ac-mesh-pro-sysupgrade.bin of=/dev/mtdblock2 9088+1 records in 9088+1 records out UBNT-BZ.v4.3.21# dd if=/tmp/gluon-ffh-vH21-ubiquiti-unifi-ac-mesh-pro-sysupgrade.bin of=/dev/mtdblock3 9088+1 records in 9088+1 records out UBNT-BZ.v4.3.21# dd if=/dev/zero bs=1 count=1 of=/dev/mtd4 1+0 records in 1+0 records out UBNT-BZ.v4.3.21# reboot