Оживление WIFI роутера WNR1000v2h2


Опубликовано 24.10.2020 18:59 | Автор: Admin

В данной статье рассматривается:
Ниже будет описан мои путь по оживлению WIFI роутера WNR1000v2h2 из состояния кирпича. Прошивка u-boot, OpenWrt, ART раздела

UPD: Роутер все же был побежден и решение находиться в конце статьи.

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

Данный роутер не очень популярен на просторах интернет и найти на него что-то очень проблематично. 


Какое железо имеет мой роутер:

  • Power: 12 VDC, 1 A
  • CPU1: Atheros AR7240 rev 2 (340-400MHz)
  • FLA1: 4 MiB ( Winbond W25Q32BVSSIG)
  • RAM1: 32 MiB (Winbond 9425G6JH-4)
  • WiFi chip: Atheros AR9285 2,4 ГГц 802.11bgn
  • ETH chip: Atheros AR7240
  • Switch: Atheros AR7240
  • LAN speed: 100M
  • LAN ports: 4
  • WAN speed: 100M
  • WAN ports: 1

По железу похож на:

  • Netgear wnr612v2
  • Netgear WNR1000v2
  • Netgear WNR1000-2VCNAS
  • Netgear WPN824N
  • -----------------------------
  • D-Link DIR-600/601 (Версия A1)

Найти прошивку на ОС роутера в принципе не проблематично, в том числе последние прошивки OpenWRT, а вот с u-boot проблема огромная. Оригинальный u-boot пока так и не найден.

Основная проблема состоит в том, что WIFI роутер wnr1000v2h2 на всех прошивках, что я пробовал не видят модуля WIFI Atheros AR9285. Кнопка включения WIFI тут не работает.

Данный модуль я полагаю должен инициироваться u-boot и этого не происходит т.к. чип Atheros AR9285 не совсем стандартен.

Были испробованы u-boot загрузчики, которые работали

Были попытки использовать и другие загрузчики, но они были полностью провальные.

Для дальнейшего изучения

u-boot_mod

uboot-wnrmod2k

Builds for NETGEAR WNR1000V2



В работе использовалось

  • CH341A – для перепрошивки Flash 25Q32
  • FTDI232 – для подключения по UART к плате роутера
  • Фен, паяльник и прочее.

Перерошивать Flash 25Q32 прямо на плате не получиться, видимо из-за конструктивных особенностей самой платы. Придется только выпаивать и шить отдельно.

Подключение к UART на плате роутера.

Устройство использует TTL 3.3в

Бит в секунду: 115200 Бит

Точка - указатель на 1 ножку.

4(GND) 3(RxD) 2(TxD) 1[3.3V]

UART Netgear WNR1000v2


Особенности размещения данных во flash wnr1000v2h2

Информация не 100%, а больше догадки

  • 0x0 до 0x40000 – располагается загрузчик u-boot (256КБ)
  • 0x40000 до 0x50000 – размещается непонятно что (64КБ)
  • 0x50000 до 0x3F0000 – размещается образ ОС (3712КБ)
  • 0x3F0000 до 0x400000 – размещается отдел ART - это некие настройки платы, пин код, данные калибровки для Wi-Fi и т.д. (64КБ)


Китайский u-boot Breed

Загружает плату, но в упор не видит прошивку образа ОС.

Принудительно стартануть загрузку образа ОС

breed> boot flash 50000

Образ распознается, пытается запуститься и виснет.

Данный загрузчик имеет WEB, через которую можно проводить многие манипуляции в том числе и перепрошивку. Я с ним так и не подружился.

Английский u-boot Breed, некая модификация

После того как я его залил, то образы ОС не стартовали, но в последствии с него нормально начали работать все образы что я пробовал.

Так же имеет WEB и более заточен под Netgear, чем китайский.


Обновление прошивок wnr1000v2h2 через оригинальный u-boot

Рассмотрим как с ним работать, подробно т.к. на просторах интернет мало объясняют, что какая команда делает.

Перепрошивка u-boot (загрузчика) на wnr1000v2h2 через TFTP

Значение переменных по умолчанию 

ar7240> printenv
bootargs=console=ttyS0,115200 root=31:02 rootfstype=jffs2 init=/sbin/init mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),2752k(rootfs),896k(uImage),64k(NVRAM),64k(ART)
bootcmd=fsload 80800000 image/uImage;bootm 80800000
bootdelay=2
baudrate=115200
ethaddr=0x00:0xaa:0xbb:0xcc:0xdd:0xee
ipaddr=192.168.1.10
serverip=192.168.1.27
clearenv=erase 0x9f040000 +0x10000
ddr_ext_mode_value=0x0
magic_number=0x0
stdin=serial
stdout=serial
stderr=serial
ethact=eth0
!если у нас в сети иные настройки сети
!по умолчанию у нас адрес устройства 192.168.1.10
!адрес сервера 192.168.1.27
!посмотреть можно! setenv – устанавливает значение переменный
!устанавливаем IP адрес нашего устройства
ar7240> setenv ipaddr 192.168.88.10
!устанавливаем IP адрес нашего сервера TFTP 
ar7240> setenv serverip 192.168.88.245
!данный настройки можно пропустить
!------------
!устанавливаем маску сети
ar7240> setenv netmask 255.255.255.0
!устанавливаем шлюз, через который мы будем попадать на TFTP
ar7240> setenv gatewayip 192.168.0.1
!---------------
!закачиваем u-boot с TFTP  сервера в область оперативной памяти устройства
!где  0x8хххххххх – это указатель, что это именно оперативная память
!ххххх – это адрес в оперативной памяти
!breed.bin – это имя файла на TFTP сервере
ar7240> tftpboot 0x80000000 breed.bin
!очищаем область на flash куда мы впоследствии запишем наш новый u-boot
!0x9fххххх – это указатель на flash, т.е. 9f говорит, что это устройство flash
!xxxxxxxx – это адрес на самой Flash
ar7240> erase 0x9f000000 +0x40000
!копируем данные из области оперативной памяти, на Flash
!где 0x80000000 – это начальный адрес с которого копируем (начало в оперативной памяти)
!0x9f000000 – это адрес куда копируем (начало на Flash)
!0x40000 – это смещение т.е. сколько мы копируем
!в нашем случае под u-boot выделено 0x40000, но сам u-boot конечно меньше
ar7240>cp.b 0x80000000 0x9f000000 0x40000

Перегружаемся

Перепрошивка образа ОС на wnr1000v2h2 через TFTP

Все тоже самое, что и выше, только у нас измениться адрес назначения на Flash. Для большего понимания перечитайте перепрошивка u-boot.

Особенность загрузки образов

Внимательно выбираете образ!

Образа у нас бывают двух видов:

squashfs-factoryсодержит дополнительный заголовок, на него ориентируются, когда вы прошиваетесь из стоковой прошивки, через web. Если вы шьете через TFTP или программатором, то в таком образе необходимо удалять этот заголовок по 0x80.

Заголовок выгляди примерно так

удаление заголовка в прошивке

squashfs-sysupgradeобраз для прошивки через TFTP или программатор.

Обе эти прошивки не имеют на борту загрузчика, как многие пишут в интерет!

В нашем случае образ ОС располагается с адреса 0x50000

Загрузить образ можно и другим способом, но здесь я его рассматривать не буду т.к. данный способ многократно расписан в интернете.

!загружаем в память
ar7240> tftpboot 0x80000000 openwrt-ar71xx-tiny-wnr1000v2-squashfs-sysupgrade.bin
!очищаем место на flash под образ ОС, смещение именно 3a0000, либо вы затрете ART
ar7240> erase 0x9f050000 +3a0000
!копируем на flash
ar7240> cp.b 0x80000000 0x9f050000 0x3a0000
!загружаемся 
ar7240> bootm 0x9f050000

Прошивка ART раздела

Скачать ART раздел от wnr1000v2h2 (от моего роутера, не знаю будет ли он работать на других)

!загружаем в память
ar7240> tftpboot 0x80000000 art.bin
!очищаем место на flash под ART
ar7240> erase 0x9f3F0000 +10000
!копируем на flash
ar7240> cp.b 0x80000000 0x9f3F0000 0x10000
!перегружаемся


Дополнительно

Если у вас поврежден или отсутствует ART отдел, то вы не сможете работать с сетью, даже загрузить прошивку по TFTP.

Решается просто

ar7240> macset lan 00:03:7F:EF:77:87

и перегружаемся.


Возможность распайки USB порта.

Предположительные пины AR7240 задействованные под USB 

73 - USB_DM USB 1.1 D- data pin

74 -USB_DP USB 1.1 D+ data pin

75 - USB_REXT  Connect to external 6.04 KΩ resistor

На плате не распаяны. 

73 и 74 вывод необходимо подтянуть к GND через 15КОм резистор.


Итог борьбы

Все же эта железка была побеждена!!!

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

Но победа не была легкая т.к. я был убежден, что проблема кроется в u-boot, а найти оригинальный я так и не смог, было принято решение собрать свой из исходников и на то было убито несчетное количество нервных клеток.

Продолжение  читайте как собрать свой u-boot.

Роутер теперь стартует с родным u-boot собранным из исходников и прекрасно себя чувствует.


Если у кого-то есть родной дамп, пишите, очень нужен.



Метки
Ремонт Firmware Netgear WiFi Upgrade Заметка

Комментариев: 0

 70 |


Добавить комментарий:
Отправить