gladilov.org.ru gladilov.org.ua

2 заметки с тегом

debrick

(вторая серия) Восстановление маршрутизатора TP-Link TL-WR841ND v8.1

Часть вторая.


Так уж получилось, что небезивестный маршрутизатор, данный мне на восстановление, опять попал ко мне. Знакомый (который админ) умудрился в свойствах сети интерфейса LAN выставить тип соединения PPPoE вместо Static IP, а затем ещё я его попытался сбросить кнопной Reset во время загрузки. Соответственно на рутер не попасть — нет IP, в FailSafe-режим он не попадает, вернее попадает, но не доступен по IP (кстати — хз почему).

Показать

Я опять вскрыл железку, припаял кабель, и попал в нормальную консоль OpenWRT.
После команд

mtd -r erase rootfs_data

(стирание настроек)
и

reboot

(ребут )
маршрутизатор загрузился, запинговался и начал делать всё, что положено свежепрошитому на OpenWRT роутеру без root-пароля.

Затем в WEB-морде роутера настроил VLAN 1 и 2 (по старому мануалу). Но при установке во вкладке Physical settings окна свойств LAN (раздел Network->Interfaces) значения eth1.2 после нажатия кнопки «Применить» роутер переставал отвечать на ICMP и вообще прекращал всю IP-деятельность. Помогла команда перезагрузки сети в консоли:

/etc/init.d/network restart

Путём несложных манипуляций (перетыкания конца пач-корда в разные порты рутера) я выяснил, что у данной модели порт LAN1 соответствует порту 2, LAN2 — порту 3, LAN3 — порту 4, LAN4 — порту 1. Порт 0 — это непосредственно ETH-контроллер на SoC (eth1).

К этому моменту у меня в голове сложилась такая картина распределения сетевых обработок:

После моей настройки стало вот так:

При выполнении команды

swconfig dev eth1 show

выводится вот такой результат:

Global attributes:
        enable_vlan: 1
Port 0:
        pvid: 0
        link: port:0 link:up speed:1000baseT full-duplex txflow rxflow
Port 1:
        pvid: 2
        link: port:1 link:down
Port 2:
        pvid: 0
        link: port:2 link:down
Port 3:
        pvid: 1
        link: port:3 link:up speed:100baseT full-duplex auto
Port 4:
        pvid: 2
        link: port:4 link:down
VLAN 0:
        vid: 0
        ports: 0t 2
VLAN 1:
        vid: 1
        ports: 0t 3
VLAN 2:
        vid: 2
        ports: 0t 1 4

Небольшое лирическое отступление.
Хочу сказать, почему нельзя шить файл родной прошивки без слова "boot" в имени.

Это связано с ее большим размером. Если длина файла прошивки больше, чем 0x7c0000, то, скорее всего, это означает наличие кода загрузчика в его начале.

Можно для уверенности файл стоковой прошивки открыть в Hex-редакторе и если увидим:

0x00000000

... нечитаемые кракозябры ...

0x00019000

... нечитаемые кракозябры ...

0x00020000

01 00 00 00 54 50 2D 4C 49 4E 4B 20 54 65 63 68

TP-LINK Tech

0x00020010

6E 6F 6C 6F 67 69 65 73 00 00 00 00 76 65 72 2E

nologies ver.

0x00020020

20 31 2E 30 00 00 00 00 00 00 00 00 00 00 00 00

1.0

то этим файлом не стоит шить железку (по крайней мере — не через программатор).

А если наблюдаемая картина похожа вот на эту:

0x00000000

01 00 00 00 54 50 2D 4C 49 4E 4B 20 54 65 63 68

TP-LINK Tech

0x00000010

6E 6F 6C 6F 67 69 65 73 00 00 00 00 76 65 72 2E

nologies ver.

0x00000020

20 31 2E 30 00 00 00 00 00 00 00 00 00 00 00 00

1.0

то (скорее всего) — можно.

Как видно, прошивка во флеш-памяти ТP-Link начинается с адреса 0x00020000, а до этого располагается загрузчик.

Источник
Конец лирики

Для теста настроил роутер как PPTP-клиент (провайдер в моём районе пока не ввёл DHCP), результаты теста скорости:

Симферополь

Москва

Барселона

Киев

Лейпциг

Манчестер

Скорость доступа по кабельной сети к локальным ресурсам провайдера — 56 (загрузка) и 79 (отдача) Мбит/сек.

Справедливости ради хочу отметить, что устойчивость и качество соединения до провайдера по моим органолептическим ощущениям было в целом хуже, чем у предыдущей используемоей мною модели — D-Link DIR-615 аппаратной ревизии B2 со стоковой прошивкой версии 2.27RU. Возможно — это связано с повреждением аппаратуры роутера молнией и/или моими экспериментами 

Восстановление маршрутизатора TP-Link TL-WR841ND v8.1 [debrick]

Это не очередное руководство, где всё разжёвано, в этой заметке я хочу обобщить свой опыт и оставить на память для себя некоторые нюансы (распиновка, цвета проводов, адреса, команды и т. д.).

Показать

Принёс мне знакомый админ роутер  TP-Link TL-WR841ND v8.1, вот такой:


Во время грозы у него выбило порты WAN и LAN1. Знакомым железка была прошита на DD-WRT с целью переназначения WAN-порта на какой-нибудь LAN. Я решил поставить на маршрутизаторе прошивку Open-WRT и благополучно превратил устройство в кирпич:

  • при включении горит только индикатор питания,
  • остальные индикаторы одновременно загораются и тухнут через 1 секунду,
  • при подключении роутера к компьютеру интерфейс линк не поднимает и роутер по сети не доступен.

Ясно, что роутер теперь с полностью стертой или поврежденной прошивкой. При вскрытии устройства на плате обнаружен нераспаянный последовательный порт JP1:

После этого в загашниках был найден USB-кабель DCA-510 на микросхеме CP2101 с уровнями напряжения 3,3В, вот такой:

Я отрезал Lumberg-разъём: 

В интернете нашёл электрическую схему кабеля:


Прозвонил разъём и узнал цвета проводов Vcc, GND, Tx и Rx (в моём случае они были такие: жёлтый, красный, синий и белый соответственно). Полная распиновка разъёма:

На плате роутера к последовательному порту подпаялся так, как указано на рисунке (последовательно слева направо — не подключен, красный, белый, синий):

Пач-корд от компьютера вставил в живой LAN-порт (LAN3). На сетевом интерфейсе компьютера установил IP-адрес 192.168.0.2/30 и настроил демон tftpd, с помощью которого файл прошивки будет залит в устройство (пользователям Windows рекомендую воспользоваться программой  TFTPD32). С официального сайта TP-Link скачал прошивку. Причём (по указанию мануалов) скачивал файл без слова "boot" в имени. Положил скачанный файл прошивки в папку, настроенную в конфигурации tftpd, переименовав его в firmware.bin. Включил роутер и вставил USB-кабель в компьютер.

При включении кабеля в USB-порт компьютера он определился как новое устройство /dev/ttyUSB0 (у пользователей Windows появится новое устройство Serial Data Cable, создающее виртуальный COM-порт и требующее установки драйверов). После запуска команды

sudo minicom --device /dev/ttyUSB0

(пользователи Windows могут воспользоваться программой HyperTerminal, PuTTY или  KiTTY) и установки скорости обмена в 115200 бод 8N1 я увидел на экране диагностические сообщения и периодически появляющуюся надпись "Autobooting in 1 seconds ...". Сразу после очередного появления этого сообщения быстро набрал на клавиатуре tpl. Система перешла в режим ожидания команд, индикаторы роутера перестали мигать и сетевое подключение, не активное до этого, стало активным.

Затем я ввёл команды для заливки прошивки в железку:

setenv serverip 192.168.0.2

(установка IP-адреса, с которого будет залит файл прошивки в память)

setenv ipaddr 192.168.0.1

(установка IP-адреса оживляемого устройства)

tftpboot 0x81000000 firmware.bin

(скачивание файла прошивки с компьютера в память устройства (во временную область, начиная с адреса 0x81000000). Если при выполнении этой команды идет строчка Т Т Т Т Т Т, то это означает Timeout (нет ответа от 192.168.0.2). Должно быть заполнение экрана символами ##########.

erase 0x9f020000 +0x3c0000

(подготовка (очистка) блока памяти с адреса 0x9f020000 под прошивку длиной 0x3c0000 байт (3932160 в десятичной системе)

cp.b 0x81000000 0x9f020000 0x3c0000

(копирование блока памяти с адреса 0x81000000 в адрес 0x9f020000 длиной 0x3c0000 байт)

bootm 0x9f020000

(передача управления программе по адресу 0x9f020000)

Роутер перезагрузился и стал отвечать на ICMP-запросы с адресом 192.168.0.1. Половина дела сделано, железку я поднял с родной прошивкой, но с не рабочим WAN-портом.

Лог первой загрузки системы на реанимированном устройстве

Вторым этапом я скачал файл прошивки Open-WRT для данной модели и аппаратной ревизии роутера (Attitude Adjustment 12.09, r36088). В WEB-интерфейсе настройки зашел в пункт Система/Обновление ПО и выбрал скачанный файл. На сетевом интерфейсе компьютера поставил IP-адрес 192.168.1.2/30. После перезагрузки маршрутизатора он стал отвечать на ICMP-запросы с адреса 192.168.1.1. В терминальном окне я набрал telnet 192.168.1.1 и командой "passwd" установил пароль пользователя root. Скачанная прошивка идёт уже с WEB-интерфейсом LuCI, поэтому зайдя по адресу http://192.168.1.1 с браузера компьютера я увидел приглашение системы роутера для ввода логина и пароля.

В разделе Network -> Switch создал два влана:
VLAN1: CPU tagget и LAN2 untagget (это порт, который будет новым WAN-портом), остальные – off,
VLAN2: CPU tagget и LAN3 и LAN4 untagget, LAN1 off.
Сохранил и применил изменения.
В разделе Network -> Interfaces удалил старый интерфейс WAN и создал новый с именем NEWWAN, указав интерфейс VLAN eth1.1.
Сохранил и применил изменения.
В разделе Network -> Interfaces редактирую LAN (закладка Physical Settings), поставив галки напротив интерфейсов VLAN eth1.2 и Wireless Network: «OpenWrt».
Сохранил и применил изменения.
System -> Reboot — перегрузил роутер. Теперь у него роль WAN играет порт LAN2, а битый порт LAN1 отключён.

Лог загрузки маршрутизатора TP-Link TL-WR841ND v8.1 после сброса

Лог загрузки маршрутизатора TP-Link TL-WR841ND v8.1

Использованные ресурсы и ссылки:
Тема форума на dd-wrt.com
Инструкция по поднятию TL-WR1043ND с аналогичными симптомами
Тема форума на unixforum.org

P.S. — продолжение истории читайте тут: (вторая серия) Восстановление маршрутизатора TP-Link TL-WR841ND v8.1

Наверх