Переделка роутера Hame R-1 в Zyxel Keenetic

в 9:07, , рубрики: diy или сделай сам, Hame R-1, keenetic, роутер

Если вдруг вы оказались случайным или не случайным владельцем данного роутера, то наверняка уже успели разочароваться, бедной стандартной прошивкой и крайне скудным внутренним потенциалом. Если вам также не повезло как и мне, то роутер имеет в наличии flash размером 4 мб (W25Q32FV) и SDRAM 16 мб (EM639165TS-6G). В этой статье я расскажу, как можно изменить печальную ситуацию с этим роутером в лучшую сторону и получить в конечном итоге роутер с прошивкой от Zyxel с возможностью обновления.
Переделка роутера Hame R-1 в Zyxel Keenetic - 1

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

SDRAM размером 32 мб — EM63A165TS-6G;
Программатор SPI Flash (я использовал CH341a);
USB-UART конвертер (имеется в CH341a);
Паяльный фен. Необязательно, но очень желательно, я справился без него, но далее вы увидите, к чему это привело;
Паяльник;
Прямые руки, желательно, прямее чем у меня;
Дамп флеши с рабочего Keenetic, на просторах интернета я нашел дамп от Keenetic 4G II.

Также я менял flash на 8мб (W25Q64FV), но для данной статьи это не обязательно. Так как размер прошивки не превышает 4мб.

Все детали я заказывал на Aliexpress. Получив их, начинаем творить.

Сперва сливаем прошивку, которой одарили нас китайцы. На всякий случай. Сделать это можно, либо выпаять флешку, либо использовать прищепку, или поступить как я:

Фото 1

image

Просто припаяны короткие провода прямо к флешке. Провода должны быть как можно короче. Изначально были длинными, флеш терялась, пришлось укоротить. Если будете поступать как я, то сливайте несколько раз, и проверьте бинарники на одинаковость, например тем же md5hash.

Далее необходимо отпаять sdram, для меня это чуть было не закончилось трагедией. Но все же удалось восстановить оторванные дорожки, и не спрашивайте каким образом я их оторвал. Второй ряд контактов микросхемы я просто отломал. Ибо и так уже ее испортил.

Припаиваем на место новенький sdram на 32 мб (как все-таки просто описывать эту операцию, буквально уложился в несколько предложений, но под ними скрываются часы кропотливой работы (без фена), а сколько нервов!).

Я надеюсь, у вас выйдет без таких косяков, как у меня. Двигаемся дальше.

Далее можно залить дамп от Keenetic 4G II при помощи программатора и запускать роутер, вот только вас ждет жестокий облом: после всех пройденных испытаний роутер не запустится, так как определяется память все еще в объеме 16 мб. На этом моменте я по незнанию потратил очень много времени, так как большинство материалов, которые мне попадались, указывали на несовершенство загрузчика (u-boot), мол, нужен специальный, который видит весь объем памяти sdram. Я их перепробовал целую кучу. До тех пор, пока не наткнулся на одну из статей: оказалось, для того, чтобы роутер увидел весь объем памяти, необходимо перенести пару резисторов.

Фото 2

Переделка роутера Hame R-1 в Zyxel Keenetic - 3

Синим указано старое расположение, красным новое.

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

Фото 3
Переделка роутера Hame R-1 в Zyxel Keenetic - 4

Резисторы (выделены синим) приклеены верхней стороной на свободных местах (сопротивление — 4,7 к).

Что делаем далее. Далее распаиваем контакты для подключения uart. Необходимые контакты находятся с обратной стороны платы под наклеенной фольгой. Плюсовой контакт нам не понадобится, GND берем рядом. Зачищаем контакты, припаиваем, тут уже кто что хочет: я сразу провода припаял, так как со штырьками мне показалось неудобно. Для подключения к COM порту я использовал Putty, скорость выставляем 56700. Далее подключаем аккумулятор к роутеру (здесь важно отметить, что после отключения аккумулятора и последующего подключения роутер не включается, необходимо на короткое время подключить его к зарядке). Запускаем роутер, в консоли должен отображаться этап загрузки, примерный текст следующего вида.

U-Boot 1.1.3 (Apr  8 2014 - 19:03:10)
Board: Ralink APSoC DRAM:  32 MB
relocate_code Pointer at: 81fb4000
USB mode is Host.
spi_wait_nsec: 42
spi device id: ef 40 17 0 0 (40170000)
Warning: un-recognized chip ID, please update bootloader!
*** Warning - bad CRC, using default environment

============================================
Ralink UBoot Version: 3.5.2.5_ZyXEL
--------------------------------------------
ASIC 5350_MP (Port5<->None)
DRAM_CONF_FROM: Boot-Strapping
DRAM_TYPE: SDRAM
DRAM_SIZE: 256 Mbits
DRAM_WIDTH: 16 bits
DRAM_TOTAL_WIDTH: 16 bits
TOTAL_MEMORY_SIZE: 32 MBytes
Flash component: SPI Flash
Date:Apr  8 2014  Time:19:03:10

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

TOTAL_MEMORY_SIZE должен быть 32 MBytes если он у вас 16, значит что-то сделали не так, вероятно, забыли про резисторы. Да, у меня после первой попытки их перепаять TOTAL_MEMORY_SIZE стал 8Мб. Оказалось, плохо припаян резистор ближайший к Ralink.

Итак sdram перепаян, flash прошита, резисторы перепаяны, загрузчик показывает 32Мб. Что делаем дальше? Дальше пробуем запустить роутер. Должен работать.

Подключаем кабель, переходим в веб интерфейс (192.168.1.1). Смотрим. На этом этапе у вас не должно быть сервисного кода:

Фото 4

Переделка роутера Hame R-1 в Zyxel Keenetic - 5

В журнале должна проскакивать ошибка: что-то вроде «key not found sevicetag» (предполагается, что роутер подключен к интернету). Далее перезагружаем роутер, естественно с подключенным usb-uart, и сразу же быстро нажимаем в консоли клавишу 4. Далее набираем данные команды по очереди.

setenv zyxelsn S132E30046258
setenv servicetag 101614015618458
saveenv

Перезагружаем устройство. В интерфейсе должен отображаться сервисный код (роутер должен быть подключен к интернет). Переходим в обновления. Вот тут устройство сразу отказывается искать обновления. Я несколько раз пробовал перезагружать страницу, роутер напрочь отказывался обновляться. До тех пор пока я не выбрал один из компонентов (Интернет фильтр Яндекс DNS), перед этим выбрав «работать в офлайне», там была активна кнопка удалить. Нажав на нее, получил сообщение «настройки сохранены» (что-то вроде этого), через какое-то время всплыло окно о том, что имеются обновления, согласился на них. После этого проблем с изменением конфигурации прошивки через веб-интерфейс роутера не возникало. На данный момент версия прошивки v2.05(AAKW.1)C1. На этом все.

P.S.: Если после обновления вновь подключиться к роутеру через usb-uart и вывести все значения (printenv), то помимо введенных вами ранее zyxelsn и servicetag вы увидите новый параметр servicepass. Так вот, до этого я заливал прошивку, скачанную с сайта Zyxel, через usb-uart, то есть используя загрузчик от сторонней прошивки, и параметр servicepass не появлялся. В журнале роутера при этом появлялось сообщение что-то вроде «key not found servicepass» и конечно же обновляться он не хотел.

Используемые материалы: 4pda, mysku

Автор: doomscar

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js