|
@@ -1,10 +1,13 @@
|
|
|
-Um Unifi Lite oder Mesh Geräte Automatisch Downzugraden und mit Freifunk Image zu versehen, wurde dieses Script erstellt.
|
|
|
+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:
|
|
|
+Das Program "dnsmasq" installieren, TFTP aktivieren und die zu bearbeitenden Dateien in den TPTP Ordner ablegen.
|
|
|
+In meinem Fall:
|
|
|
|
|
|
+Für das Flashen ist das Kommando 'mtd' notwendig, dass in atuellen unifi Firmware fehlt.
|
|
|
+Daher muss (in der Regel) die Original Firmware durch eine ältere Variante ersetzt werden.
|
|
|
+
|
|
|
Die Datei zum UP/Downgrade der Stock Firmware:
|
|
|
BZ.qca956x.v3.7.58.6385.170508.0957.bin
|
|
|
|
|
@@ -14,86 +17,89 @@ 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
|
|
|
+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:
|
|
|
+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"
|
|
|
+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
|
|
|
+
|
|
|
+ ############
|
|
|
+ send -- "exit\r"
|
|
|
+ expect eof
|