Прошивкой роутера через uart

Конечно для подключения нам нужен Putty ( Putty — официальный сайт ). неоднократно уже было на нашем канале как подключать, статьи:

вот скриншот с роутера Xiaomi Mi, но принцип один и тот же (скорость ставим не 115200, а 119000 )

Производим ряд подключений

При включении роутер в сеть (обязательно уже должен быть подключен адаптер USB-Serial и открыта консоль в Putty, иначе пока все будите включать пропустите U-boot)

Настраиваем:

Serial порт у меня COM5, а у Вас, скорее всего будет другой, тут все просто смотрите в диспетчера какой порт у вас выдает ваш конвертер. А вот дальше возникают всегда некоторые проблемы, нам нужно настроить еще скорость порта и кодировку:

Про кодировку

  • Чаще всего используется кодировка UTF-8
  • Реже Windows-1251, центральная Европа (например Asus RT-N65U, статья: » Попытка восстановить роутер Asus RT-N65U или как умирают роутеры «)

Про скорость

Все дело в том что сначала при загрузке U-boot и чуть опосля бегут крокозябры и в начале ничего не видно, а там же интересная информация что делать?

Настраивать скорость UART

Ее можно и нужно настроить в двух местах:

Через панель управления

Панель управления\Оборудование и звук\Диспетчер устройств\Порты (COM и LTP)

Выбираем ваш порт, у меня «USB-SERIAL CH340», далее «Параметры порта»

Нам нужна скорость порта, по умолчанию она 9600 но!

Скорость (BaudRate, БодРейд) лучше выставить скорость большую чем скорость нашего устройства (роутера), поэтому меняем 9600 на 115200 . Хотя у меня работает все и на стандартной скорости 9600, но это может помочь в других случаях.

Скорость в Putty

А вот скорость в настройках терминала в нашем случае это программа Putty должна ровняется скорости (BaudRate, БодРейд) устройства. ее мы подбираем руками экспериментально, но чаще всего это то же 115200 или 57600

Общепринятый ряд стандартных скоростей: 300; 600; 1200; 2400; 4800; 9600; 19200; 38400; 57600 ; 115200 ; 230400; 460800; 921600 бод. (скорость в бодах иногда используются синонимы бодрейт или битрейт)

Тем не менее при стандартной скорости 115200 все равно бегут крокозябры, но потом все налаживается

А при нестандартной скорости 119000 все прекрасно грузится и все видно, возможно эти настройки относятся только к адаптеру на чипе CH340 (пишут что адаптер на CH340 не очень удачная штука, лучше на PL2303)

Интересно смотреть на листинг сначала грузится:

Напомню что 5 мая 2011 года Ralink была приобретена компанией MediaTek. Собственно чей чипсет и стоит в роутере, статья на канале: » TP-Link TL-MR3020 супер роутер — комбайн для нищебродов. Часть I, вступительная. «

Читайте также:  4g роутер huawei 5172

Вывод

Для нормальной, читабельной загрузки выставляем скорость в Putty 119000, кодировка остается по умолчанию UTF-8

Входим в U-Boot

При начальной загрузке сразу как подаем питание на роутер жмем по клавише «T» или «4», других клавиш я не нашел! Итак, прям барабаним по «T » или «4», естественно кодировка должна быть английская как и клавиша «T», а для «4» это не важно.

Итак жмякаем по «T» и попадаем в U-boot

Можете ввести»help» и вам будут доступны все возможные команды

Команды U-Boot версии 1.1.3

Список команд U-boot меню (он длинный)

  • ? — alias for ‘help’
  • base — print or set address offset
  • bdinfo — print Board Info structure
  • bootm — boot application image from memory
  • bootp — boot image via network using BootP/TFTP protocol
  • coninfo — print console devices and information
  • cp — memory copy
  • crc32 — checksum calculation
  • erase — erase SPI FLASH memory
  • go — start application at address ‘addr’
  • help — print online help
  • loadb — load binary file over serial line (kermit mode)
  • loop — infinite loop on address range
  • md — memory display
  • mdio — Ralink PHY register R/W command !!
  • mm — memory modify (auto-incrementing)
  • mtest — simple RAM test
  • nm — memory modify (constant address)
  • printenv- print environment variables
  • rarpboot- boot image via network using RARP/TFTP protocol
  • reset — Perform RESET of the CPU
  • rf — read/write rf register
  • saveenv — save environment variables to persistent storage
  • setenv — set environment variables
  • sleep — delay execution for some time
  • spi — spi command
  • tftpboot- boot image via network using TFTP protocol
  • version — print monitor version

По SPI есть свой Help (spi usage):

  • spi id
  • spi sr read
  • spi sr write
  • spi read
  • spi erase
  • spi write

Нас интересует команда tftpboot , что естественно значит загрузку прошивки по tftp.

После ввода tftpboot роутер напишет:

Warning: no boot file name; using ‘test.bin’ TFTP from server 192.168.0.225; our IP address is 192.168.0.2. Filename ‘test.bin’

(Предупреждение: нет имени загрузочного файла; используя test.bin
TFTP с сервера 192.168.0.225; наш IP-адрес 192.168.0.2 Имя файла test.bin)

Источник

image

Тема прошивок роутеров через UART интерфейс сильно изъезжена, изжевана, но я не смог найти информации именно по своему роутеру, поэтому думаю, что данная тема будет полезна, тем более, что на форумах есть несколько вопросов по этому поводу, так и оставшиеся без ответа.

Попал мне в руки сабжевый роутер, попал на халяву, так как «что-то не работало».

Принеся домой, обнаружил, что роутер наотрез отказывается поднимать LAN порты, при том, что остальными индикаторами при загрузке он подмаргивает, и WAN порт поднимает. Сброс кнопкой Reset не помог, хотя лампочки вели себя так же, как при ресете.

image

Ну что-ж, халява есть халява, и уж очень хотелось использовать этот роутер для выхода в интернет через 3G\4G операторские флэшки в загородном доме. Да ещё и с возможностью поднятия на нём SIP Мегафона ради интереса.

Начитавшись мануалов, понял, что ни один из описанных способов входа в Emergency mode не работал, хотя при включении питания и удержании кнопки Reset роутер явно входил в какой-то режим, в котором нормально поднимались LAN порты, но описанные в мануалах сети 192.168.80.20/24, 192.168.1.2/24, 192.168.0.2/24, 192.168.8.10/24 не подходили, ни один адрес не отвечал (192.168.80.21, 192.168.1.1, 192.168.0.1, 192.168.8.254).

Я подумал, что настало время открыть эту железку, чтобы посмотреть на внутренности:

image

Был замечен уже распаянный UART, в нижнем левом углу, над светодиодом WAN, оставалось только подцепить адаптер и использовать.

В местном магазине был куплен DCU-15 кабель на PL2303 за 30р, разобран и припаян к нужным пинам (на пайку не ругаться, всё делалось китайским газовым паяльником за 150р, который еле греет, просто захотелось дать и ему шанс прожить жизнь не зря):

image

Мануалов по подключению телефонных дата-кабелей к портам UART полно, поэтому не буду ещё раз описывать.
Для соединения использовал Putty, адекватная передача завязалась на скорости 38400 бод, её необходимо выставлять и в Putty и в настройках USB-COM порта:

imageimage

При включении, роутер бодро выдал список, спрашивая меня, что я хотел бы сделать:

DDR DRAM 32 MB @ 195 MHz,SPI FLASH 8 M
—Octtel(RTL89xxB)at 2011.05.16-13:42+0800 version 1.1.26.0 [16bit](390MHz)
—Wireless regDomain—MAC Address: 84:c9:b2:xx:xx:xx

Press ‘i’ to update system image.
Press ‘k’ to update kernel image.
Press ‘r’ to update root fs image.
Press ‘l’ to update loader.
Press ‘c’ to change target IP
Press ‘t’ to change TFTP server IP
Press ‘z’ to change network MAC number config.
Press ‘m’ to change MAC and SN config.
Press ‘y’ to change wireless regDomain config.

В сети много мануалов по обновлению\восстановлению прошивок для D-link DIR-300 и подобных, там описывается восстановление прошивки непосредственно загружая с tftp сервера, но ни один пункт апдейта этого роутера не запрашивал нужный файл (файл прошивки, скачанный с FTP D-link’a имеет расширение .pack, и уже ждал закачки на tftp сервере).
Впал я временно в уныние, и подумал, может смогу чего выудить из логов начальной загрузки роутера. Если кто хочет посмотреть, выкладываю на известный ресурс:

Спойлер для лога почему-то не захотел работать, если кто подскажет почему, буду благодарен, и перенесу его в статью.

В логах не нашел ни какого упоминания о доступных сетях.

После полной загрузки устройства появилась возможность пользоваться вводом команд, что и было реализовано:

# ifconfig
br0 Link encap:Ethernet HWaddr 84:C9:B2:XX:XX:XX
inet addr:192.168.8.254 Bcast:192.168.8.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:64
TX packets:41 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:23275 (22.7 KiB) TX bytes:0 (0.0 B)

eth0 Link encap:Ethernet HWaddr 84:C9:B2:XX:XX:XX
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:41 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:128
RX bytes:0 (0.0 B) TX bytes:1722 (1.6 KiB)
Interrupt:15

eth1 Link encap:Ethernet HWaddr 84:C9:B2:XX:XX:XX
inet addr: 192.168.8.254 Bcast:192.168.8.255 Mask:255.255.255.252
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6320 errors:0 dropped:0 overruns:0 frame:0
TX packets:1562 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:128
RX bytes:1176595 (1.1 MiB) TX bytes:1301150 (1.2 MiB)
Interrupt:15

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1100 (1.0 KiB) TX bytes:1100 (1.0 KiB)

Как видно, интерфейсы br0 и eth1 имеют одинаковые IP, но в случае с eth1 сконфигурирована обычная линковая сеть \30.
Решено было подключить кабель к WAN порту для проверки этой сети. Роутер поднял порт, а в консоли весело вывел:

NCS: Connection WAN established, IP = 192.168.8.254 Subnet Mask = 255.255.255.252

С мыслями «ну уж теперь ты ни куда от меня не спрячешься», я полез забивать в сетевую карту 192.168.8.253/30

Все 4 отправленных пакета не вернулись живыми, но роутер в консоли откликнулся:
NCS: Icmp-Smurf attack detected, SA=192.168.8.253 DA=192.168.8.254
NCS: Icmp-Smurf attack detected, SA=192.168.8.253 DA=192.168.8.254
NCS: Icmp-Smurf attack detected, SA=192.168.8.253 DA=192.168.8.254
NCS: Icmp-Smurf attack detected, SA=192.168.8.253 DA=192.168.8.254

Следующая попытка по-привычке зайти через telnet увенчалась успехом, сразу же полез в браузер запускать веб-морду. Запустилась. Радости не было предела. Теперь предстояло попытаться отресетить его через интерфейс, прошивку эти роутеры соглашаются заливать через tftp только с IP 192.168.8.56, поэтому на данном этапе думать о прошивке было рано.

Что странно, так это настройки его WAN интерфейса, которые он светил:

image

После ресета через веб-морду роутер перестал светиться через WAN, и LAN интерфейсы тоже не поднимались. Зато поднялся WLAN.

Было решено пустить ему в лоб:
# ifconfig br0 down
# ifconfig br0 up

После подключения кабеля в LAN порт лампочка весело заморгала.

Роутер был успешно прошит, подключен к интернету через 3G модем. На нём был поднят SIP Мегафона, мечты сбываются.
Потом его ждёт пожизненный отдых на чистом воздухе за городом, будет охранять участок веб-камерой.

Спасибо за внимание! Буду рад адекватной критике.

Источник

Оцените статью
Adblock
detector