[Ninux-Wireless] Recupero Ubiquiti brickate con AirOS 5.6

Ilario Gelmetti iochesonome a gmail.com
Dom 10 Lug 2016 21:39:22 CEST


Ciao gente!
A fine 2015 ero caduto in una trappola di Ubiquiti aggiornando le mie
antenne Ubiquiti col firmware originale (AirOS 5.6.x) prima di
installarci OpenWrt/Libre-Mesh.
Qui [1] il racconto originale dell'avvenuto.

Premessa: il 99% delle volte che una antenna Ubiquiti ha problemi col
firmware è sufficiente il recupero tramite TFTP, prima provate con
quello, col sistema classico!
Questo caso specifico è abbastanza più complesso. E chiaramente più
pericoloso per l'antenna, perché si sovrascrive il bootloader.

Dunque, l'altro ieri ho trovato quest'ottima guida [2] con una procedura
di recupero e... funziona!

In sintesi la procedura consiste in:
* scaricare l'immagine del firmware originale AirOS versione 5.5.x (non
5.6.x!) dal sito di Ubiquiti [3] se non trovate nessuna 5.5 per il
vostro hardware, probabilmente potete trovare il link tra i download di
antenne simili in cui il firmware è lo stesso, per esempio questo [4]
link vale per molte [5] antenne della serie XM e questo [6] per molte
[7] antenne della serie XW;
* aprire l'antenna (a volte non banale, vedi sotto) e estrarre la sua
scheda madre;
* collegare un adattatore USB to TTL alla porta seriale che c'è sulla
scheda madre della antenna;
* accendere l'antenna e interrompere il boot scrivendo nella porta
seriale al momento giusto;
* dare all'antenna un comando [8] che abiliti il flashing via TFTP e
dargli delle opzioni che rendano possibile la sovrascrittura del
bootloader (normalmente, il recupero normale tenendo premuto il bottone
di reset, non permette di sovrascrivere il bootloader);
* inviare tramite cavo di rete e TFTP l'immagine del firmware AirOS
5.5.x così da fare il downgrade del bootloader;
* riaccendere l'antenna, riinterrompere il boot, ridare il comando per
avviare il server TFTP ma questa volta senza le opzioni per
sovrascrivere il bootloader, reinviare via TFTP la immagine di prima;
* fare il normale recupero tramite TFTP col bottone di reset, inviando
sempre la stessa immagine.
In pratica si installa tre volte la stessa immagine/firmware, non so
perché sia necessario farlo tre volte.

Qualche dettaglio sui primi due passaggi, i più difficili e meno
dettagliati nella guida.

Aprire le antenne: io ho dovuto aprire una Ubiquiti NanoStation M5 e una
Ubiquiti NanoBridge M5.
La NanoStation ha una vite nascosta sotto l'etichetta [9], si può
banalmente rompere l'etichetta o sollevarla con una lama dopo aver
scaldato per bene l'etichetta con un phon/pistola termica. Dunque c'è da
disincastrare il pezzo di plastica interno (ha dei dentelli) e tirarlo.
Per reincastrarla poi c'è da provarci un po' di volte finché non prende
la direzione giusta e finalmente entra.
Più problematico è stato aprire la testa della NanoBridge, perché è
chiusa sia con dentelli sia con della colla, nessuna vite. Si può fare
con un cacciavite fino ma alla fine resta un buco nella plastica. Quel
che ho fatto io è stato allargare la giuntura tutt'attorno all'antenna
tra il corpo e la capocchia [10] con un coltello seghettato e poi
forzare con l'unghia finché non s'è aperta, altri su internet dicono di
averla aperta mettendola in morsa. Più istruzioni qui [11].

La connessione seriale: sulla NanoStation sono marcati dei pin con GND,
SIN, SOUT e PWR. Più informazioni qui [12].
Sulla NanoBridge i pin della porta seriale non sono etichettati,
comunque sono, partendo dal più vicino all'antenna vera e propria:
ground, TX, RX, PWR. Più informazioni qui [13].

Non avendo l'adattatore USB to TTL suggerito nella guida [2] ho usato
l'Arduino come adattatore, seguendo quest'altra guida [14].
Pare che l'Arduino non regga la corrente richiesta dall'antenna dunque
l'antenna continua a riavviarsi, la soluzione è stata scollegare il cavo
che dai 3.3V dell'Arduino va al PWR dell'antenna (lasciando collegati
GND, SIN e SOUT) e collegare l'antenna al POE col cavo di rete.
Nel caso della NanoBridge i pin erano alla distanza perfetta per
infilarli nella breadboard dell'Arduino, comodissimo per fare i
collegamenti, nel caso della NanoStation son troppo vicini e c'è da
collegare i pin direttamente con dei cavetti (ci si può arrangiare con
quelli dell'Arduino ma non è banale).

Nella prima guida [2] c'è scritto che serve un adattatore USB to TTL
perché una normale porta seriale avrebbe un voltaggio troppo alto (5V) e
brucerebbe l'antenna, mente il USB to TTL ha il voltaggio corretto
(3.3V). Secondo me (ma non ho provato) se si alimenta l'antenna col POE
e non con la porta seriale, non dovrebbe essere necessario possedere il
USB to TTL ma una qualsiasi porta seriale dovrebbe funzionare, purché si
eviti di collegare il PWR.

Ciao e buon divertimento!
Ilario

[1] http://ml.ninux.org/pipermail/wireless/2015-December/019722.html
[2] http://bloodhound.aredn.org/products/AREDN/wiki/HowTo/Unbrick
[3] https://www.ubnt.com/download
[4]
http://dl.ubnt.com/firmwares/XN-fw/v5.5.11/XM.v5.5.11.28002.150723.1344.bin
[5] AG-HP-2G16, AG-HP-5G23, AG-HP-5G27, AirGrid M2, AirGrid M5, AR,
AR-HP, BM2HP, BM2-Ti, BM5HP, BM5-Ti, LiteStation M5, locoM2, locoM5,
locoM9, M2, M3, M365, M5, M900, NB-2G18, NB-5G25, NBM3, NBM365, NBM9,
NS2, NSM3, NSM365, NSM5, PBM10, PBM3, PBM5, Power AP N
[6]
http://dl.ubnt.com/firmwares/XW-fw/v5.5.10/XW.v5.5.10-u2.28005.150723.1358.bin
[7] AG-HP-2G16, AG-HP-2G20, AG-HP-5G23, AG-HP-5G27, AirGrid M, AirGrid
M2, AirGrid M5, locoM2, locoM5, locoM9, M2, M3, M365, M5, M900,
NBE-M2-13, NBE-M5-16, NBE-M5-19, NSM2, NSM3, NSM365, NSM5, PBM3, PBM365,
PBM5, RM2-Ti, RM5-Ti
[8] Nella guida il comando è sbagliato: "urescue -f -e" e non "uresure
-f -e"
[9] http://hofmeyr.de/PoE%20power%20fix%20for%20NanoStationM2/04.jpg
[10] http://kharkov-reklama.com.ua/images/thumb_big/14661656471.jpg
[11] https://wiki.openwrt.org/toh/ubiquiti/airgrid#opening
[12] https://wiki.openwrt.org/toh/ubiquiti/airmaxm#serial
[13] https://wiki.openwrt.org/toh/ubiquiti/airgrid#serial
[14]
http://www.princetronics.com/arduino-uno-as-usb-to-serial-ttl-converter/

-- 
Ilario Gelmetti
iochesonome a gmail.com
igelmetti a iciq.es
ilario.gelmetti a estudiants.urv.cat

-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        signature.asc
Tipo:        application/pgp-signature
Dimensione:  181 bytes
Descrizione: OpenPGP digital signature
URL:         <http://ml.ninux.org/pipermail/wireless/attachments/20160710/2c6960c6/attachment-0001.sig>


Maggiori informazioni sulla lista Wireless