|
|
(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 |
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.
- cp XM.v5.5.11.28002.150723.1344.bin firmware.bin
- echo -e "binary\nrexmt 1\ntimeout 600\ntrace\nput firmware.bin flash_upgrade\n" | tftp 192.168.1.20
- Via serial port verbinden, Router mit Stromversorgung verbinden und Taste drücken, um die U-Boot Console zu aktivieren.
- urescue -f -e # damit wird nur der u-boot aus dem image geflasht
- 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.
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