|
@@ -0,0 +1,99 @@
|
|
|
+Um Unifi Lite oder Mesh Geräte Automatisch Downzugraden und mit Freifunk Image zu versehen, wurde dieses Script erstellt.
|
|
|
+Der PC und das Unifi Gerät müssen im gleichen Netzwerk sein.
|
|
|
+In meinem Fall den PC mit einer Festen ip 192.168.1.10 (alles außer 192.168.1.20) versehen, am besten mit einem Switch oder Hub verbinden.
|
|
|
+
|
|
|
+Das Program "dnsmasq" installieren, TFTP aktivieren und die zu bearbeitenden Dateien in den TPTP Ordner ablegen.
|
|
|
+in meinem Fall:
|
|
|
+
|
|
|
+Die Datei zum UP/Downgrade der Stock Firmware:
|
|
|
+BZ.qca956x.v3.7.58.6385.170508.0957.bin
|
|
|
+
|
|
|
+und die aktuellen Freifunk Images (hier ein Beispiel für ein AC Lite für die Domain 5 des FF Do)
|
|
|
+gluon-ffdo-d05-2.2.6-ubiquiti-unifi-ac-lite-sysupgrade.bin
|
|
|
+
|
|
|
+Das Skript wird aktiviert mit den Parametern:
|
|
|
+expect ubnt-upgrade.exp [ip] [fwupdate] [firmware]
|
|
|
+
|
|
|
+in meinem Fall: expect ubnt-upgrade.exp 192.168.1.20 BZ.qca956x.v3.7.58.6385.170508.0957.bin gluon-ffdo-d05-2.2.6-ubiquiti-unifi-ac-lite-sysupgrade.bin
|
|
|
+
|
|
|
+Führe die Datei "ubnt-upgrade.exp" aus.
|
|
|
+der Unifi AC hört auf IP Adresse "192.168.1.20"
|
|
|
+Mache eine Stock Firmware UP/Downgrade auf "BZ.qca956x.v3.7.58.6385.170508.0957.bin"
|
|
|
+danach installiere folgende Freifunk firmware:
|
|
|
+"gluon-ffdo-d05-2.2.6-ubiquiti-unifi-ac-lite-sysupgrade.bin".
|
|
|
+
|
|
|
+Nach erfolgreicher Installation startet der AP neu und ist unter der IP Adresse 192.168.1.1 erreichbar.
|
|
|
+
|
|
|
+Die Anleitung wird noch verfeinert, bis dahin alles gute Marcel
|
|
|
+
|
|
|
+Das Script in "upgrade.exp" abspeichern
|
|
|
+#!/usr/bin/expect -f
|
|
|
+#
|
|
|
+
|
|
|
+set force_conservative 1 ;# set to 1 to force conservative mode even if
|
|
|
+ ;# script wasn't run conservatively originally
|
|
|
+if {$force_conservative} {
|
|
|
+ set send_slow {1 .1}
|
|
|
+ proc send {ignore arg} {
|
|
|
+ sleep .1
|
|
|
+ exp_send -s -- $arg
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+set ip [lindex $argv 0]
|
|
|
+set fwupdate [lindex $argv 1]
|
|
|
+set firmware [lindex $argv 2]
|
|
|
+
|
|
|
+set timeout -1
|
|
|
+spawn $env(SHELL)
|
|
|
+match_max 100000
|
|
|
+expect "\$ "
|
|
|
+send -- "ping $ip\r"
|
|
|
+expect "64 Bytes von $ip: icmp_seq"
|
|
|
+send -- ""
|
|
|
+expect "\$ "
|
|
|
+send -- "scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $fwupdate ubnt@$ip:/tmp/fwupdate.bin\r"
|
|
|
+expect "password: "
|
|
|
+send -- "ubnt\r"
|
|
|
+expect "\$ "
|
|
|
+send -- "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ubnt@$ip\r"
|
|
|
+expect "password: "
|
|
|
+send -- "ubnt\r"
|
|
|
+expect "# "
|
|
|
+send -- "syswrapper.sh upgrade2 &\r"
|
|
|
+expect "\$ "
|
|
|
+sleep 3
|
|
|
+send -- "ping $ip\r"
|
|
|
+expect "64 Bytes von $ip: icmp_seq"
|
|
|
+send -- ""
|
|
|
+expect "\$ "
|
|
|
+send -- "scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $firmware ubnt@$ip:/tmp/firmware.bin\r"
|
|
|
+expect "password: "
|
|
|
+send -- "ubnt\r"
|
|
|
+expect "\$ "
|
|
|
+send -- "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ubnt@$ip\r"
|
|
|
+expect "password: "
|
|
|
+send -- "ubnt\r"
|
|
|
+expect "# "
|
|
|
+send -- "cd /tmp/\r"
|
|
|
+expect "# "
|
|
|
+send -- "MTD=\$(cat /proc/mtd | grep bs | awk '{FS=\":\";print \$1}')\r"
|
|
|
+expect "# "
|
|
|
+send -- "mtd write /tmp/firmware.bin kernel0\r"
|
|
|
+expect "# "
|
|
|
+send -- "mtd write /tmp/firmware.bin kernel1\r"
|
|
|
+expect "# "
|
|
|
+send -- "dd if=/dev/zero bs=1 count=1 of=/dev/\$MTD\r"
|
|
|
+expect "# "
|
|
|
+send -- "reboot\r"
|
|
|
+sleep 3
|
|
|
+send -- "ping 192.168.1.1\r"
|
|
|
+expect "64 Bytes von 192.168.1.1: icmp_seq"
|
|
|
+send -- ""
|
|
|
+expect "\$ "
|
|
|
+send -- "spd-say Finish sag mal was was länger dauert\r"
|
|
|
+
|
|
|
+
|
|
|
+############
|
|
|
+send -- "exit\r"
|
|
|
+expect eof
|