13 July 2011

Переделка роутера D-link DIR-620 в Zyxel Keenetic или делаем из г. конфетку

DIY
Что такое D-link DIR-620 и что такое Zyxel Keenetic, и для чего нужно переделывать одно в другое?
Достаточно почитать тему по DIR-620 на хоботе или на родном сайте D-link, чтобы понять что к чему. Имея неплохую элементную базу (чип Ralink 3052 2T2R на 300Мбит, 32Мб RAM и 8Мб Flash, USB порт), роутер подкачал в программном обеспечении — большинство гневных отзывов относится именно к прошивке. Хотя, чего ещё желать от устройства за 54$, позиционируемого для бюджетного сектора. Однако, Zyxel Keenetic собран на той же элементной базе, но отличается как по цене 105$, так и по программному оснащению. Заявлена поддержка USB накопителей, 3G и 4G модемов, торрент-клиент transmission прямо в роутере, и всё это реально работает. А можно ли из DIR-620 сделать Keenetic? Оказалось, что можно.



Переделка состоит из двух частей: прошивки и аппаратной доработки.
Для прошивки понадобится подключиться к последовательному порту внутри роутера. То есть, в любом случае, устройство придётся вскрыть, потеряв при этом гарантию.
Однако, забегая вперед скажу, что полученный результат того стоит.

Дополнение от 25.09.2011
Справедливости ради, стоит отметить, что пользователем deadc0de разработан другой метод перепрошивки в keenetic без перепайки и вскрытия устройства, который заключается в заливке модифицированной прошивки. Поэтому метод, описываемый в этой статье, стал неактуальным. Однако, его можно рассматривать как альтернативный, или аварийный, когда устройство перестало быть доступным по сети.



Часть №1: Прошивка



Изготавливаем кабель для подключения к последовательному порту роутера. Я использовал готовый кабель MA-8720P от сотового Siemens.
Вот кабель:

По совместительству, используется при ремонте накопителей Seagate через технологический разъём.
Подойдёт любой, у которого на выходе уровни 3.3В. Припаиваем к кабелю кусочек разъёма, например от шлейфика для флопа. Разбираем роутер и видим, что у DIR-620 последовательный порт не распаян, есть только пятачки, поэтому припаиваем туда штырьки для удобства подключения. Вот картинка с назначениями выводов (увеличить по щелчку):


Скачиваем программу TFTP32 — это бесплатный tftp сервер под windows. Скачиваем прошивку от Keenetic. Распаковываем и переименовываем файл в a.bin для удобства. Устанавливаем TFTP32 и кладём в корневую директорию tftp сервера файл a.bin.

Прописываем в своём компьютере IP адрес 10.10.10.3 и маску 255.255.255.0 (впрочем можно оставить и тот, который уже прописан, тогда его нужно будет вписать при прошивке). Запускаем TFTP32, запускаем HyperTerminal (под Windows 7 придётся воспрользоваться программой Putty), указываем порт, куда подключен наш кабель, задаём параметры подключения: скорость 57600, четность 8N1, управление потоком отключено. Подключаем роутер к нашему кабелю и включаем питание.

Если схема собрана правильно, видим на экране терминала:

U-Boot 1.1.3 (Feb 9 2010 - 10:44:20)

Board: Ralink APSoC DRAM: 32 MB
relocate_code Pointer at: 81fb0000
flash_protect ON: from 0xBF000000 to 0xBF01D3F3
flash_protect ON: from 0xBF030000 to 0xBF030FFF
============================================
Ralink UBoot Version: 3.3
--------------------------------------------
ASIC 3052_MP2 (Port5<->None)
DRAM component: 128 Mbits SDR
DRAM bus: 32 bit
Total memory: 32 MBytes
Flash component: NOR Flash
Date:Feb 9 2010 Time:10:44:20
============================================
icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:128, ways:4, linesz:32 ,total:16384

##### The CPU freq = 384 MHZ ####

SDRAM bus set to 32 bit
SDRAM size =32 Mbytes

Please choose the operation:
1: Load system code to SDRAM via TFTP.
2: Load system code then write to Flash via TFTP.
3: Boot system code via Flash (default).
4: Entr boot command line interface.
9: Load Boot Loader code then write to Flash via TFTP.


Для прошивки нужно войти в режим записи, в нашем случае это пункт 2: Load system code then write to Flash via TFTP. Тут главное не упустить момент, так как на выбор даётся всего 3 секунды. Если с первого раза не получилось, придётся перезагрузить роутер снова.

2: System Load Linux Kernel then write to Flash via TFTP.
Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N) - Y
Please Input new ones /or Ctrl-C to discard
Input device IP (10.10.10.123) ==:10.10.10.123 - ENTER
Input server IP (10.10.10.3) ==:10.10.10.3 - ENTER
Input Linux Kernel filename () ==:a.bin - имя файла и ENTER


Предполагается, что у роутера адрес 10.10.10.123, у tftp сервера адрес 10.10.10.3 (мы прописывали на предыдущем шаге. Если оставили свой адрес, то укажите его, а роутеру присвойте любой свободный
из той же подсети). Загрузится прошивка, сотрётся содержимое флешки, зальётся новая прошивка. Всё это будет видно на экране терминала. После прошивки роутер перезагрузится:

Please press Enter to activate this console. Sending discover...
Sending discover...


На всякий случай сбрасываем настройки роутера длинным нажатием Reset. После перезагрузки у него будет адрес 192.168.1.1, логин: admin, пароль 1234. Поэтому прописываем себе IP адрес из этого диапазона или включаем автоматическое получение IP адреса (у роутера уже включен DHCP сервер).

Роутер уже работает по кабелю. Заходим браузером по адресу 192.168.1.1 и попадаем в интерфейс Zyxel Keenetic, радуемся новым возможностям в виде поддержки USB флешек, принтеров, модемов, и т.д. Одна только незадача, оказывается выключен модуль Wi-fi, так как в оригинальном Zyxel Keenetic есть ещё маленький выключатель беспроводного модуля, а в DIR-620 он отсутствует.

Часть №2: Доработка



О неработающем Wi-fi можно узнать из закладки Монитор веб-интерфейса: «Беспроводная сеть Wi-Fi выключена тумблером на корпусе».
Техническая информация:
Роутер построен на чипе Ralink RT3052, часть её выводов может работать как вход, так и выход, что определяется значением внутренних регистров, которые программируются во время загрузки микропрограммы. Производители Zyxel сделали выключатель Wi-Fi, который использует одну из ножек RT3052. В DIR-620 эта же ножка управляет светодиодом.


Нужная нам ножка RT3052 соединена с 4-ым выводом микросхемы 74lvc125a, к которой подключены светодиоды. 4й вывод отвечает за значок глобуса.
Чтобы заработал Wi-Fi, нужно припаять резистор номиналом 4,7 кОм между дорожкой, соединённой с 4-ой ножкой 74lvc125a, и плюсом питания 3,3 Вольт. Удобнее это сделать, припаяв резистор с обратной стороны платы между выводом 3,3V разъёма последовательного порта и площадкой под нераспаянный конденсатор С259.


Чтобы заработал индикатор-глобус, отпаиваем 4-ю ножку 74lvc125a от площадки (приподнимаем) и соединяем её с общим проводом. Удобнее подпаяться к площадке под конденсатор C142.


После этих действий получаем полностью работоспособный роутер — старшую модель Zyxel Keenetic.

Написано и опробовано по материалам конференции ixbt. Большое спасибо пользователю allep за предложенный метод переделки.
Tags:роутер DIR-620 Keenetic RT3052
Hubs: DIY
+117
204.1k 253
Comments 64
Профессия Java-разработчик
December 1, 202082,500 ₽SkillFactory
Data Analyst
December 1, 202085,000 ₽SkillFactory
Профессия Product Manager
December 2, 2020108,500 ₽Нетология
Python для анализа данных
December 2, 202019,000 ₽SkillFactory
Профессия Project Manager
December 2, 202098,000 ₽Нетология
Top of the last 24 hours