Ubiquiti Unifi AC/Flash-Anleitung

Aus wiki.freifunk.net
Wechseln zu: Navigation, Suche

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.

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

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

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)

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

Als nächstes sollte kernel1 (/dev/mtdblock3) 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

"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

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.

Die komplette Ausgabe in SSH sieht dann wie folgt aus

BZ.v3.7.58# dd if=/dev/zero bs=1 count=1 of=/dev/mtdblock4
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

  1. How to Reset the UniFi Access Point to Factory Defaults Ubiquiti Support