| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | 
							- 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 Programm "dnsmasq" installieren, TFTP aktivieren und die zu bearbeitenden Dateien in den TPTP Ordner ablegen.  
 
- Für das Flashen ist das Kommando 'mtd' notwendig, dass in aktuellen unifi Firmware fehlt.  
 
- Daher muss (in der Regel) die Original Firmware durch eine ältere Variante ersetzt werden. 
 
- 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 "ubnt-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
 
 
  |