Recovery: Unterschied zwischen den Versionen

Aus Freifunk Dresden - Anwender-Wiki
Zur Navigation springen Zur Suche springen
(Nanostation Loco M2)
 
 
(6 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
 
+
[[Category:Router]]
 
== Ubiquiti Nanostation M Loco M2 ==
 
== Ubiquiti Nanostation M Loco M2 ==
 
=== Recovery via Serial Port ===
 
=== Recovery via Serial Port ===
Durch aktuellere original Firmware Versionen, kann neben dem Update der Firmware auch der Bootloader aktualisiert werden.
+
Durch aktuellere original Firmware Versionen, kann neben dem Update der Firmware auch der Bootloader aktualisiert werden. Ein Fehler bei openwrt bei der Generierung
 
+
der Firmware machte die Router erstmal unbrauchbar.
Die bisher lang verwendete Firmware Version für diesen Router war zum Beispiel '''XM.v5.5.11.28002.150723.1344.bin''' ([https://www.ubnt.com/download/airmax-m/nanostationm/locom2 www.ubnt.com]).
+
Dieses können aber mit folgenden Schritten gerettet werden:
In dieser Firmware ist der u-boot '''U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)''' enthalten.
 
Original Partitionstabelle für airOS Version 5.5.xxx
 
device nor0 <ar7240-nor0>, # parts = 6
 
#: name                        size            offset          mask_flags
 
0: u-boot                      0x00040000      0x00000000      0
 
1: u-boot-env                  0x00010000      0x00040000      0
 
2: kernel                      0x00100000      0x00050000      0
 
3: rootfs                      0x00660000      0x00150000      0
 
4: cfg                        0x00040000      0x007b0000      0
 
5: EEPROM                      0x00010000      0x007f0000      0
 
 
 
Bei einem Update auf die neuere Firmware '''airOS for XM board firmware v5.6.4''' wird auch der Bootloader aktualisiert und irgendwas
 
am Flashlayout (Partionstabelle) geändert.
 
Das Aufspielen einer Firmware, basierend auf openwrt, kann den Router vorerst unbrauchbar machen.
 
 
 
Openwrt generierte Partitionstabelle:
 
device nor0 <ar7240-nor0>, # parts = 6
 
#: name                        size            offset          mask_flags
 
0: u-boot                      0x00040000      0x00000000      0
 
1: u-boot-env                  0x00010000      0x00040000      0
 
2: kernel                      0x00100000      0x00050000      0
 
3: rootfs                      0x005a0000      0x00150000      0
 
4: cfg                        0x00040000      0x006f0000      0
 
5: EEPROM                      0x00010000      0x00730000      0
 
 
 
Soweit ich erkennen konnte, stimmen die Partitionstabelle im Flash '''nicht''' mit dem in der U-Boot Environment gespeicherten Tabelle überein.
 
Dadurch kann der Bootloader das Image nicht mehr laden.
 
U-Boot Environment
 
mtdparts: mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),1024k(kernel),6528k(rootfs),256k(cfg),64k(EEPROM)
 
 
 
Die Partionstabelle sollte eigentlich wie die originale Tabelle aussehen.
 
 
 
Es war zwar möglich, die aktuellste Firmware zu flaschen aber der bootloader startete diese nur wenn man in der seriellen Console
 
die Partitionstabelle auf die default-Werte setzte. Leider wurden diese aber nicht permanent gespeichert, schienen aber aktiv zu bleiben.
 
mtdparts defaults
 
boot
 
Das airOS bootet, aber es wurden keine neue Firmwareimages angenommen.
 
Nach einem Ausschalten und erneuten Einschalten des Routers, wurde wieder die falsche Partitionstabelle verwendet und der Router bootete nicht.
 
 
 
Die einzige Lösung die ich gefunden habe ist, auf den alten U-Boot zu wechseln und dann anschliessend die Freifunk Firmware via U-Boot zu flashen.
 
U-Boot besitzt einen Rescue-Mode, welcher durch Drücken und Halten des Resetschalters und anschliessenden Power-On und weiter gedrücktem
 
Resetschalter für mehr als 10s, aktiviert werden kann. Allerdings erlaubt dieser Mode nicht das ersetzten des Bootloaders (U-Boot).
 
Dazu muss über eine Serielle Console der Rescue-Mode mit dem Parameter "-f" gestartet werden.
 
U-Boot 1.1.4.2-s956 (Jun 10 2015 - 10:54:50)
 
 
DRAM:  32 MB
 
Flash:  8 MB
 
PCIe WLAN Module found (#1).
 
Net:  eth0, eth1
 
Board: Ubiquiti Networks XM board (rev 1.2 e0a2)
 
Hit any key to stop autoboot:  0
 
ar7240>
 
ar7240> urescue -f
 
Boot loader overwrite mode
 
Setting default IP 192.168.1.20
 
Starting TFTP server...
 
Using eth0 (192.168.1.20), address: 0x81000000
 
Waiting for connection: |
 
 
 
Auf dem PC wird mit tftp die ältere originale Firmware (XM.v5.5.11.28002.150723.1344.bin) an den Router geschickt.
 
$ tftp 192.168.1.20
 
tftp> bin
 
tftp> put XM.v5.5.11.28002.150723.1344.bin
 
tftp> quit
 
 
 
Auf der Seriellen Console erscheinen folgende Ausgaben:
 
 
 
Receiving file from 192.168.1.31:39613
 
Received 6896662 bytes
 
Firmware Version: XM.ar7240.v5.5.11.28002.150723.1344
 
Setting U-Boot environment variables
 
Un-Protected 1 sectors
 
Erasing Flash.... done
 
Erased 1 sectors
 
Writing to Flash... done
 
Protected 1 sectors
 
Copying partition 'u-boot' to flash memory:
 
 
First 0x0 last 0x3 sector size 0x10000
 
.... done
 
write addr: 9f000000
 
Copying partition 'kernel' to flash memory:
 
 
First 0x5 last 0x14 sector size 0x10000
 
................ done
 
write addr: 9f050000
 
Copying partition 'rootfs' to flash memory:
 
 
First 0x15 last 0x7a sector size 0x10000
 
...................................................................................................... done
 
write addr: 9f150000
 
 
Firmware update complete.
 
 
Resetting...
 
 
U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)
 
  
Der alte U-Boot ist somit wieder vorhanden. Da die originale Firmware aber trotzdem nicht startete, habe ich die nun die Freifunk-Firmware aufgespielt.
+
1. Gerät öffnen und serielles Terminal an den seriellen Port des Routers anschliessen. Die Verbindungsparameter sind 115200-8-N-1
Dieses mal wurde '''urescue''' ohne den Parameter -f aufgerufen um sicher zu sein, dass der U-Boot nicht zerstört wird.
+
[[Datei:Serialport-locom2.jpg|miniatur|rechts|Serialport-locom2.jpg|Serial Port - Ubnt Loco M2]]
  
U-Boot 1.1.4.2-s594 (Dec  5 2012 - 15:23:07)
+
'''WICHTIG ist, dass hier die alte firmware verwendet wird, da die mtd partition immer wieder falsch
+
vom U-Boot gesetzt wird, so dass diese nicht bootet.'''
Board: Ubiquiti Networks XM board (rev 1.2 e0a2)
 
DRAM:  32 MB
 
Flash:  8 MB
 
PCIe WLAN Module found (#1).
 
Net:  eth0, eth1
 
Hit any key to stop autoboot:  0
 
ar7240> urescue
 
Setting default IP 192.168.1.20
 
Starting TFTP server...
 
Using eth0 (192.168.1.20), address: 0x81000000
 
Waiting for connection: \
 
  
Auf PC dann folgendes eingegeben:
+
# '''cp [http://download.freifunk-dresden.de/rescue/ubnt/XM.v5.5.11.28002.150723.1344.bin XM.v5.5.11.28002.150723.1344.bin] firmware.bin'''
$ tftp 192.168.1.20
+
# '''echo -e "binary\nrexmt 1\ntimeout 600\ntrace\nput firmware.bin flash_upgrade\n" | tftp 192.168.1.20'''
tftp> bin
+
# Via serial port verbinden, Router mit Stromversorgung verbinden und Taste drücken, um die U-Boot Console zu aktivieren.
tftp> put openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin
+
# '''urescue -f -e'''  # damit wird nur der u-boot aus dem image geflasht
tftp>
+
# '''urescue'''        # gleiche image nochmal via tftp uebetragen. jetzt wird die eigentliche FW geflasht
 +
# Jetzt läuft wieder die Version 5.5 und kann auf Version 6 oder auf Freifunk via Weboberfläche aktualisert werden.
  
Der Bootloader zeigt folgende Ausschriften:
+
Es empfiehlt sich auf AirOs 6 zu aktualisieren, da dieses im Router die U-Boot Konfiguration (mdtparts) korregiert.
Receiving file from 192.168.1.31:43110
+
  '''Nur zur Info''' mtdparts=mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),1024k(kernel),6528k(rootfs),256k(cfg),64k(EEPROM)
  Received 3604892 bytes
 
Firmware Version: XM.ar7240.v6.0.0-OpenWrt-r48246
 
Setting U-Boot environment variables
 
Un-Protected 1 sectors
 
Erasing Flash.... done
 
Erased 1 sectors
 
Writing to Flash... done
 
Protected 1 sectors
 
Copying partition 'kernel' to flash memory:
 
erasing range 0x9F050000..0x9F14FFFF: ................ done
 
Erased 16 sectors
 
writing to address 0x9f050000, length 0x00100000 ...
 
Copying partition 'rootfs' to flash memory:
 
erasing range 0x9F150000..0x9F3CFFFF: ........................................ done
 
Erased 40 sectors
 
writing to address 0x9f150000, length 0x00280000 ...
 
 
Firmware update complete.
 
 
Resetting...
 
  
Danach startete die Freifunk Firmware.
+
== TP Link ==
 +
Per Uboot von TP Link kann ein Router, der nicht auf die Resettaste reagiert, um den TFTP-Mode zu aktivieren, per serieller Schnittstelle trotzdem gerettet werden.  
 +
[[tplink|Manuelles flashen]] Beispiel am TL-WR1043NDv2

Aktuelle Version vom 18. Oktober 2019, 15:23 Uhr

Ubiquiti Nanostation M Loco M2

Recovery via Serial Port

Durch aktuellere original Firmware Versionen, kann neben dem Update der Firmware auch der Bootloader aktualisiert werden. Ein Fehler bei openwrt bei der Generierung der Firmware machte die Router erstmal unbrauchbar. Dieses können aber mit folgenden Schritten gerettet werden:

1. Gerät öffnen und serielles Terminal an den seriellen Port des Routers anschliessen. Die Verbindungsparameter sind 115200-8-N-1

Serial Port - Ubnt Loco M2

WICHTIG ist, dass hier die alte firmware verwendet wird, da die mtd partition immer wieder falsch vom U-Boot gesetzt wird, so dass diese nicht bootet.

  1. cp XM.v5.5.11.28002.150723.1344.bin firmware.bin
  2. echo -e "binary\nrexmt 1\ntimeout 600\ntrace\nput firmware.bin flash_upgrade\n" | tftp 192.168.1.20
  3. Via serial port verbinden, Router mit Stromversorgung verbinden und Taste drücken, um die U-Boot Console zu aktivieren.
  4. urescue -f -e # damit wird nur der u-boot aus dem image geflasht
  5. urescue # gleiche image nochmal via tftp uebetragen. jetzt wird die eigentliche FW geflasht
  6. Jetzt läuft wieder die Version 5.5 und kann auf Version 6 oder auf Freifunk via Weboberfläche aktualisert werden.

Es empfiehlt sich auf AirOs 6 zu aktualisieren, da dieses im Router die U-Boot Konfiguration (mdtparts) korregiert.

Nur zur Info mtdparts=mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),1024k(kernel),6528k(rootfs),256k(cfg),64k(EEPROM)

TP Link

Per Uboot von TP Link kann ein Router, der nicht auf die Resettaste reagiert, um den TFTP-Mode zu aktivieren, per serieller Schnittstelle trotzdem gerettet werden.

Manuelles flashen Beispiel am TL-WR1043NDv2