Ubiquiti Unifi AC/Flash-Anleitung mit mtd

Aus wiki.freifunk.net
Zur Navigation springenZur Suche springen

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 basiert auf der Installationsanleitung von OpenWRT mit mtd[1] und installiert die Firmware nur auf einer Flash-Partition und legt diese zum Starten fest. Alternativ kann die Firmware auch auf beide Partitionen geschrieben werden[2].

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.

Sollte das nicht funktionieren, kann das Gerät über den Reset-Knopf zurückgesetzt werden [3]: 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.

Acm putty new.jpg

In der Kommandozeile wird die installierte Firmware-Version direkt vor dem Eingabecursor angezeigt (z.B. BZ.v3.7.58, nicht BusyBox). Sollte diese höher als v3.7.58 sein, muss zuerst ein Firmware-Downgrade durchgeführt werden.

Firmware-Downgrade auf v3.7.58

Für das Downgrade muss die Firmware per SCP auf das Gerät kopiert werden und mit SSH ein Befehl auf dem Gerät gestartet werden [4].

Die Firmware kann im Download-Bereich der Ubiquiti-Webseite heruntergeladen werden: https://www.ui.com/download/unifi/ Dort das gewünschte Gerät wählen (Die AC Mesh ist unter UniFi Mesh - UAP-AC-M versteckt) und auf "See past Firmware" klicken.

Die heruntergeladene Datei wird als fwupdate.bin umbenannt und per SCP in das /tmp-Verzeichnis des Gerätes kopiert, sodass diese am Pfad

/tmp/fwupdate.bin

zu finden ist. Anschließend wird über SSH der Befehl

syswrapper.sh upgrade2 &

gestaret.

Die Verbindung wird unterbrochen, das Gerät startet neu und ist wieder über SSH erreichbar.

Flashen von OpenWRT/Gluon

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 Tool mtd wird nun die Firmware in den ersten Kernel kopiert. mtd ist in neueren Firmware-Versionen nicht mehr enthalten, was auch ein Grund für das nötige Downgrade ist. Mit

mtd write /tmp/sysupgrade.bin kernel0

wird nun die Firmware in die erste Flash-Partition geschrieben. Das dauert etwa 30 Sekunden Die zweite Partition wird anschließend über das Kommando

mtd erase kernel1

gelöscht, was wieder etwa 30 Sekunden dauert. Die Ausgabe im SSH-Terminal sollte bis hierhin etwa wie folgt aussehen:

BZ.v3.7.58# mtd write /tmp/sysupgrade.bin kernel0
Unlocking kernel0 ...
Erasing kernel0 ...
Writing from /tmp/sysupgrade.bin to kernel0 ...  [e/w]

BZ.v3.7.58# mtd erase kernel1
Unlocking kernel1 ...
Erasing kernel1 ...

Nun befindet sich die Firmware in kernel0, kernel1 wurde gelöscht. 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. Ü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"

"bs" befindet sich hier in mtd4. Über dd schreiben wir eine Null in "bs":

dd if=/dev/zero bs=1 count=1 of=/dev/mtd4

Die komplette Ausgabe in SSH sieht dann wie folgt aus

BZ.v3.7.58# dd if=/dev/zero bs=1 count=1 of=/dev/mtd4
1+0 records in
1+0 records out

Ü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.

Einzelnachweise und weitere Links