TP-Link TL-WR703N - Unbrick
Заказал из Китая миниатюрный роутер 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.
Приступаем к разборке:
Расчехляем паяльник и подпаиваемся к GND, RX и TX:
Вроде все готово, теперь остается подключить 3.3V USB to TTL serial adapter, в моем случае на чипе pl2303. В качестве serial terminal я выбрал Minicom, хотя под OS X есть терминалы и с развесистым GUI, к примеру, ZTerm, но это все дело вкуса и привычки. Параметры подключения: 115200/8/N/1/XON-XOFF.
Включаем роутер:
Через 1-2 секунды вы увидите строку ‘Autobooting in 1 seconds’, в это время нужно быстро послать команду ‘tpl’, это позволит нам войти в U-boot rescue mode, при этом мы должны увидеть строку приглашения ‘hornet’:
Теперь нам необходимо поднять 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
erase 0x9f020000 +0x3c0000
cp.b 0x81000000 0x9f020000 0x3c0000
bootm 9f020000
Все, мы прошились. Устанавливаем пароль 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
Вот что из этого получилось:
Ну и последнее, что я предлагаю сделать, так это настроить простой вариант сброса пользовательских настроек и установленных пакетов. Для этого поставим пакет ‘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
На этом все. Надеюсь это кому-либо будет полезно. Удачи!