TP-Link TL-WR703N - Unbrick

wr703n-01

Заказал из Китая миниатюрный роутер TP-Link TL-WR703N. Доставки ждал совсем «недолго», всего каких-то 3 месяца, в очередной раз «спасибо» нашей почте. В конце концов роутер приехал. Эта модель рассчитана только на внутренний рынок Китая, поэтому кроме китайского интерфейса в веб-админке другого нет. Что ж, не беда, я изначально планировал поставить на эту железку прошивку OpenWrt, благо поддержка в OpenWrt Wiki заявлена.

Прочитал, как мне казалось, внимательно страничку в их Wiki, убедился (как оказалось — хреново), что версия моей прошивки 1.6, скачал последнюю со страницы Wiki ‘squashfs-factory.bin’ и прошил. Все прекрасно прошилось и казалось бы ничто не предвещало беды, однако, LAN-порт стал недоступен, а Wi-Fi в OpenWrt по умолчанию отключен. Прекрасно! Таким образом, в Failsafe mode я войти не мог, как не пытался.

Оказывается, прошивка на моем устройстве была версии 1.7 с новым U-boot, не смотря на то, что на наклейке сзади корпуса четко было указано — 1.6. Версию 1.7 поддерживает только прошивка из trunk’а, ее то и следовало сразу прошить. Ничего не остается, как разобрать роутер и подпаяться к serial.

wr703n-02

Приступаем к разборке:

wr703n-03

wr703n-04

Расчехляем паяльник и подпаиваемся к GND, RX и TX:

wr703n-05

wr703n-06

Вроде все готово, теперь остается подключить 3.3V USB to TTL serial adapter, в моем случае на чипе pl2303. В качестве serial terminal я выбрал Minicom, хотя под OS X есть терминалы и с развесистым GUI, к примеру, ZTerm, но это все дело вкуса и привычки. Параметры подключения: 115200/8/N/1/XON-XOFF.

Включаем роутер:

wr703n-07

Через 1-2 секунды вы увидите строку ‘Autobooting in 1 seconds’, в это время нужно быстро послать команду ‘tpl’, это позволит нам войти в U-boot rescue mode, при этом мы должны увидеть строку приглашения ‘hornet’:

wr703n-08

Теперь нам необходимо поднять TFTP Server в общей с нашим препарируемым роутером локальной сети. Я для этих целей выбрал tftpd-hpa, который и установил на своем домашнем сервере:

apt-get install tftpd-hpa

Настраивать там особо нечего, поэтому акцентировать на этом свое внимание я не буду. Скачиваем последнюю прошивку из trunk‘а для нашего роутера (openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin) в каталог нашего tftp-сервера.

Настроим IP-адрес роутера и укажем IP-адрес tftp-сервера, для примера:

setenv ipaddr 192.168.1.111
setenv serverip 192.168.1.5

Приступаем к заливке прошивки:

tftpboot 0x81000000 openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin

wr703n-09

erase 0x9f020000 +0x3c0000

wr703n-10

cp.b 0x81000000 0x9f020000 0x3c0000

wr703n-11

bootm 9f020000

wr703n-12

Все, мы прошились. Устанавливаем пароль root’у на этом этапе, либо при первой загрузке придется зайти через telnet, установить пароль, и только после этого можно будет заходить на устройство по ssh. Подключаемся к LAN-порту, перезагружаем устройство и убеждаемся, что теперь сеть работает.

На следующем этапе мы настроим сеть. Заходим на устройство и правим:

ssh [email protected]
vi /etc/config/network

Указываем наш IP, шлюз и DNS-сервер, к примеру:

option ipaddr '192.168.1.111'
option netmask '255.255.255.0'
option gateway '192.168.1.1'
option dns '192.168.1.1'

Опускаем и поднимаем линк:

/etc/init.d/network restart

Теперь я предлагаю поставить веб-админку LuCI, чтобы конфигрурировать дальше было проще и быстрее:

opkg update
opkg install luci
/etc/init.d/uhttpd enable
/etc/init.d/uhttpd start

Вот что из этого получилось:

wr703n-13

Ну и последнее, что я предлагаю сделать, так это настроить простой вариант сброса пользовательских настроек и установленных пакетов. Для этого поставим пакет ‘restorefactory’:

opkg install restorefactory

И настроим:

vi /etc/config/system
config restorefactory
    option button reset
    option action pressed
    option timeout 5

Теперь, в случае внештатной ситуации, можно просто зажать кнопку ‘Reset’ на 5 секунд и вы получите вновь ненастроенный девайс без пользовательских настроек и пакетов. В ином случае вам придется вручную вводить устройство в Failsafe mode. Для этого после включения нужно подождать около 10-12 секунд (пока светодиод не начнет моргать) и сразу же после этого зажать кнопку ‘Reset’ на 1-2 секунды, светодиод начнет быстро моргать, таким образом вы войдете в Failsafe mode. Заходите по telnet:

telnet 192.168.1.1

И сбрасываете:

firstboot

На этом все. Надеюсь это кому-либо будет полезно. Удачи!