Firmwareinstallation/UbiquitiUnifiACMesh

Aus Freifunk Franken
Version vom 9. Dezember 2019, 18:12 Uhr von HeikoFü (Diskussion | Beiträge) (Update Link zur v3.7.40-Firmware)
Wechseln zu:Navigation, Suche

Installationsanleitung für die Ubiquiti Unifi AC Mesh

Die Qualität dieser Anleitung ist noch ausbaufähig. Gerne können Ergänzungen vorgenommen werden ...

Zusätzlich benötigte Hardware

Nicht im Lieferumfang enthalten sind Netzwerkkabel. Für die Stromversorgung wird mindestens ein Netzwerkkabel benötigt (das Netzteil ist ein POE-Netzteil). Je nach Einsatzzweck benötigt man ein zweites. Dieses wird auch zum Flashen benötigt.

Installation der Freifunk Firmware

Die neuste Firmware liegt hier. Für das Gerät muss das ubnt-unifiac-lite Image verwendet werden.

Adrian Schmutzler stellt eine alternative Firmware auf seiner Seite zur Verfügung

IP-Konfiguration

Achtung: Diese Anleitung funktioniert nur, wenn das Gerät noch nicht im Unifi Controller registriert wurde!

Eine neue AC Mesh hat im Auslieferungszustand die IP "192.168.1.20". Zum Übermitteln der Firmware kann man sich eine IP-Adresse aus dem selben Adressraum zuweisen z.B.:

  • IP: 192.168.1.11
  • Subnetz-Maske: 255.255.255.0

Das erste Netzwerkkabel wird von eurem Rechner mit der "LAN"-Buchse des Netzteils verbunden. Das zweite Netzwerkkabel wird mit der "POE"-Buchse des Netzteils und der AC Mesh verbunden.

Anmelden am Gerät

Um sich an der AC Mesh anzumelden, muss man sich per SSH mit 192.168.1.20 verbinden:

ssh ubnt@192.168.1.20

User & Passwort: ubnt

Unter Windows entsprechend Putty oder ähnliche Software verwenden ...

Downgrade der Originalfirmware

Wie bei der Picostation/Loco muss die Firmware vor dem Flashen mit Freifunk gedowngradet werden. Zurzeit sind auch teilweise noch Geräte im Umlauf, die nicht downgegradet werden müssen, da die Firmware alt genug ist. Geeignet sind alle Versionen bis v3.7.40.

Achtung: Die v3.7.40-Firmware ist nicht mehr auf der regulären Ubiquiti-Download-Webseite aufgeführt. Man findet sie zum Download aber noch über die zugehörige Release Note.

Die Firmware Version kann man herausfinden, indem man sich wie oben beschrieben per SSH auf der AC Mesh anmeldet. Im Command Prompt steht dann zu Beginn jeweils die Firmware-Version, also

BZ.v3.7.40#

oder

BZ.v3.9.19#

Im zweiten Fall ist ein Downgrade nötig, im ersten Fall nicht.

Downgrade unter Linux

Von obigem Link eine Firmware für UAP-AC-M mit Version 3.7.40 oder älter auswählen und installieren.

Dazu muss die Firmware auf dem Gerät (z.B. per scp) mit dem Dateinamen /tmp/fwupdate.bin abgelegt werden.

Falls Internet am Gerät vorhanden:

wget -O /tmp/fwupdate.bin 'FIRMWARE URL'

curl (bei neueren Original Firmwareversionen (v3.9.15) ist kein wget mehr vorhanden)

curl 'FIRMWARE URL' > /tmp/fwupdate.bin

Danach wird folgendes ausgeführt

syswrapper.sh upgrade2 &

Quelle: https://help.ubnt.com/hc/en-us/articles/204910064-UniFi-Changing-the-Firmware-of-a-UniFi-Device#local%20upgrade

Danach startet das Gerät neu, dann erneut per SSH einloggen und weiter mit #Firmware flashen.

Downgrade unter Windows

https://www.ubnt.com/download/unifi

Von obigem Link eine Firmware für UAP-AC-M mit Version 3.7.40 oder älter auswählen und installieren.

Die Datei mit einem SCP-fähigen Program (z.B. WinSCP) auf der AC Mesh ablegen.

Für den Login die gleichen Daten wie für SSH verwenden (ubnt@192.168.1.20 und PW: ubnt). Wichtig: Protokoll SCP auswählen, SFTP funktioniert nicht.

Verzeichnis /tmp anwählen und dort die Datei ablegen, danach zu fwupdate.bin umbenennen.

Danach wieder per SSH (mit z.B. Putty) auf dem Gerät einloggen und folgendes ausgeführen:

syswrapper.sh upgrade2 &

Quelle: https://help.ubnt.com/hc/en-us/articles/204910064-UniFi-Changing-the-Firmware-of-a-UniFi-Device#local%20upgrade

Danach startet das Gerät neu, dann erneut einloggen und weiter mit #Firmware_flashen.

Firmware flashen

Zunächst muss die Freifunk-Firmware auf das Gerät kopiert werden. Dies kann per SCP bzw. WinSCP erfolgen, siehe Erläuterungen für Firmware-Downgrade. Der Zielordner muss /tmp sein, der Dateiname ist egal.

ACHTUNG: Alle hier beschriebenen Schritte müssen hintereinander und ohne "Unterbrechung", also zwischenzeitlichen Reboot o.ä. ausgeführt werden. Mit Ausnahme des Pfades zum Firmware-Image ist dabei auf buchstabengenaue Eingabe zu achten! Also nicht erst Tippen und dann denken ...

Die AC-Mesh verfügt über zwei Partitionen, die im Normalfall beide die Firmware enthalten sollten. Nach dem initialen Flashen wie unten beschrieben wird durch das sysupgrade aber nur noch eine der Partitionen verändert. Daher muss dies im Bootloader entsprechend eingestellt werden, sodass immer nur von einer der Partitionen gebootet wird.

Dazu finden wir zunächst die richtige Partition heraus:

BZ.v3.7.40# 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"

Hier die Zeile mit der "bs" Partition finden und den Wert der ersten Spalte merken (hier "mtd4").

Dann dort ein Nullbyte reinschreiben (Die Partition, hier mtd4, entsprechend euren Erkenntnissen im vorherigen Schritt anpassen):

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

Ergebnis:

BZ.v3.7.40# dd if=/dev/zero bs=1 count=1 of=/dev/mtd4
1+0 records in
1+0 records out
1 byte copied, 7.3437e-05 s, 13.6 kB/s

Dieser Schritt (unter bestimmten Umständen) auch noch nachträglich in der Freifunk-Firmware nachgeholt werden. Dabei hat sich jedoch die Nummer der Partition geändert (bei mir mtd7)! Bei Firmware bis inklusive 20180304-alpha ist ein nachträgliche Änderung NICHT möglich.

Danach folgt das eigentliche Flashen der Firmware, hier müssen _BEIDE_ folgenden Befehle eingegeben werden! (Pfad anpassen nicht vergessen)

mtd write /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin kernel0

mtd -r write /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin kernel1

das sollte dann folgendes Ergebnis liefern.

BZ.v3.7.40# mtd write /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin kernel0
Unlocking kernel0 ...
Erasing kernel0 ...
Writing from /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin to kernel0 ...  [e/w]

BZ.v3.7.40# mtd -r write /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin kernel1
Unlocking kernel1 ...
Erasing kernel1 ...
Writing from /tmp/openwrt-ar71xx-generic-ubnt-unifiac-lite-squashfs-sysupgrade.bin to kernel1 ...  [e/w]

Quelle: https://openwrt.org/toh/ubiquiti/unifiac#installing_openwrt

Die AC Mesh startet automatisch neu und verbindet sich mit dem Freifunk-Netz. Danach ist Zugriff und Konfiguration wie gewohnt möglich.

TFTP

TFTP Recovery per LAN funktioniert bei der AC Mesh prinzipiell wie bei anderen Ubiquiti-Geräten:

Die IP ist 192.168.1.20, die Firmware muss mittels PUT auf dem Gerät abgelegt werden.

Zu beachten ist dabei, dass TFTP bei der AC Mesh NUR MIT DER ORIGINALFIRMWARE möglich ist. Man muss also immer erst auf Original setzen und dann mit obiger Anleitung wieder Freifunk-Firmware installieren.