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


Опубликовано 24.10.2020 18:59 | Автор: Admin
Данная публикация была обновлена 19.05.2021 22:31

В данной статье рассматривается:
Ниже будет описан мои путь по оживлению 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 тут не работает. (Не видел не из-за прошивок, а из-за убитого ART). Данный модуль я полагал должен был инициироваться u-boot и этого не происходило...

Были испробованы многие 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
!и адрес TFTP сервера 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
!+0x40000 - это смещение, сколько надо стереть
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 собранным из исходников и прекрасно себя чувствует.


Родной дамп wnr1000v2h2 от добрых людей.



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

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

 663 |

 dinamito
 07.01.2021 05:36

Есть такой, сейчас под openwrt, сделал RAM MOD, пишите сто сделать!

 Адм-тор
 14.05.2021 11:22

Сейчас тоже такую же железку мучаю. После обновы на openwrt 17.0.7 циклическая перезагрузка.
Полный дамп родной прошивки.
https://disk.yandex.ru/d/yayaxdidio_Iqg

 Admin
 19.05.2021 22:33

Спасибо

 Адм-тор
 17.05.2021 09:29

Заработал с этой прошивкой 19,07,7, но дефолтный рам занят на 80 процентов.
https://forum.openwrt.org/t/builds-for-netgear-wnr1000v2-wnr1000v2-vc-wnr612v2-wpn824n-wnr2000v3/39360

 Виталий
 03.06.2021 18:17

Сделал RAM mod, теперь занято 40%
Чип ставил такой HY5DU121622CTP-D43.

 Василий
 19.11.2021 16:12

Автор не получилось по вашей статье скомпилировать gcc посыпал ошибками. У меня есть куча wnr612v2 . Решил попробовать прокачать по максимуму. Мод на память сделал 64 мб . Хочу увеличить флешку на 8-16 мб. Собрать из исходников не получается, а найти уже готовые в инете не могу. Печаль .

 Admin
 19.11.2021 20:45

Ваш комментарий не под эту статью.
Статья по сборки u-boot писалась на лету с записью всех проделываемых действий, и она полностью описывает весь процесс. Если у вас что-то не собирается, значит вы что-то сделали не так (пропустили шаг, внесли свои правки, используете не те версии библиотек или исходники и т.д.). я не могу знать, что и как вы решили изменить в рецепте. Могу вам посоветовать все ошибки загуглить и найти решение.

 Федор
 07.11.2022 18:50

wnr1000v2h2 собирал загрузчик долго не хотел собираться ругался . Ubuntu не пошла з версии и каждой что то не хватало не разбирался. linuxMint 18 Собирался в папке файловая система, под рутом в рутовом терминале все инструменты и сам загрузчик собрался на ура . все работает автору респект


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