Восстанавливаем роутер TP-LINK после неудачной прошивки

Купил себе очень полезную вещицу - мобильный роутер TP-Link TL-MR3020. Более подробно я расскажу о нем в другой раз, а сейчас опишу как восстановить роутер если он превратился в кирпич.

Сразу после покупки, решил попробовать OpenWRT, но в процессе прошивки задел провод питания со всеми вытекающими: роутер ушел в цикличную перезагрузку мигая светодиодами.

Нести в гарантийку не наш метод, будем восстанавливать самостоятельно. И так, нам потребуется:

  • USB to TTL, он же UART, он же USB2COM
  • Резистор на 10кОм
  • провода
  • Tftpd32 - простенький TFTP сервер
  • PuTTY - мастхевная тулза для всего
  • Прошивка, её нужно положить рядом с tftpd32.exe (по умолчанию: C:\Program Files (x86)\Tftpd32)

Корпус открывается пластиковой картой, надо просунуть карту со стороны miniUSB:

TP-Link TL-MR3020

Подключаем проводами наш USB-to-ttl к разъему на плате - четыре дырочки напротив LAN. Между VCC и TX надо кинуть резистор на 10 кОм.

# TL-MR3020 USB-UART
1 RX TXD
2 TX RXD
3 GND GND

Первый контакт выделен квадратом, не перепутаете.

TP-Link TL-MR3020

Я не стал заморачиваться с пайкой и решил все сделать через макетную плату.

TP-Link TL-MR3020

Дальше подключаем роутер патч-кордом к компу, в настройках сетевухи устанавливаем ip: 192.168.1.2 и запускаем Tftpd32. Осталось запустить PuTTY, выбрать протокол Serial, скорость 115200, в поле адрес вбить номер компорта, например, COM10. Включаем питание на роутере и наблюдаем в окне PuTTY следующее:

U-Boot 1.1.4-gd0be0bfd (Sep 29 2013 - 10:06:31)

AP121 (ar9330) U-boot

DRAM:  32 MB
led turning on for 1s...
id read 0x100000ff
flash size 4194304, sector count = 64
Flash:  4 MB
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   ag7240_enet_initialize...
No valid address in Flash. Using fixed address
No valid address in Flash. Using fixed address
: cfg1 0x5 cfg2 0x7114
eth0: 00:03:7f:09:0b:ad
ag7240_phy_setup
eth0 up
: cfg1 0xf cfg2 0x7214
eth1: 00:03:7f:09:0b:ad
athrs26_reg_init_lan
ATHRS26: resetting s26
ATHRS26: s26 reset done
ag7240_phy_setup
eth1 up
eth0, eth1
auto update firmware: is_auto_upload_firmware = 0!
Autobooting in 1 seconds

Сразу после появления последней строки, надо успеть ввести tpl. Появится hornet>.
Вводим:
hornet> setenv ipaddr 192.168.1.1

hornet> setenv serverip 192.168.1.2

Вводим команду на скачивание прошивки:

tftpboot 0x80000000 openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin

Получится так:

dup 1 speed 1000
Using eth1 device
TFTP from server 192.168.1.100; our IP address is 192.168.1.1
Filename '12.bin'.
Load address: 0x80000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ######################################################
done
Bytes transferred = 3932160 (3c0000 hex)

Стираем то что есть: erase 0x9f020000 +0x3c0000

Запускаем прошивку: cp.b 0x80000000 0x9f020000 0x3c0000

После окончания, даем команду на загрузку:
bootm 9f020000

Собственно, всё.

Показать комментарии