Mercury MW150R: Делаем из треша конфетку подручными средствами

Это было весело. Так получилось, что я фактически задарма добыл роутер Mercury MW150R. Он был крайне уныл по всем параметрам, и я даже не думал делать из него что-то, так как не ожидал увидеть под капотом что-то мало мальски интересное. И уж даже в кошмаре не мог предположить, что на нем взлетит OpenWRT. Однако, как выдалась минутка я его таки вскрыл…
Внутри был AR9331. Тот самый который на тыпылинках WR703N, и на котором взлетает моя горячо любимая OpenWRTя. Ну что же, я подцепил уарт и увидел внутри уныние: 2 мегабайта spi флеша, 8 метров мозгов, с горем пополам это хозяйство ворочает VxWorks с недо-вебо-интерфейсом. Самое время разогреть паяльник и прокачать железяку:


Сначала, покопавшись в хламе, я добыл новые мозги, спаял со старой SODIMMины ноутбучный отличный чип на 64 мегабайта. Однако, чтобы он завелся, пришлось так же напаять и резистор на 22 Ома, который забили напаять эффективные менеджеры.
Как только оно завелось с новыми мозгами, я взялся прокачивать флеш. (VxWorks’овский загрузчик правда все равно нашел только 8 Megabytes оперативной памяти, должно быть не хватило “ширины сознания”).
Покопавшись в хламе, для этого апгрейда я достал: карманный роутер WR703N (Надо же откуда-то слить загрузчик), баспират, флешку MX25L128 на 16 метров с SPI интерфейсом.
Хитрый план:

  • Сдампить убут с wr703n
  • Записать на чистую флешку
  • Влепить это на соплях в тело ‘mercury’
  • PROFIT

Для снятия дампа я по быстрому запилил несколько адаптеров-переходников к buspirate. При помощи них и фена передергивать SPI флешки можно быстро и безболезненно. Для прошива я юзал flashrom, который и делал за меня всю грязную работы. Правда, с buspirate’ом оно шьет ооооочееень мееедлееенно, потому запись 16MiB флешки пришлось оставлять на ночь.

Для начала я сдампил родную флешку, на случай если что-то пойдет не так. Дальше флешку с wr703n. А теперь начинается сильное колдунство:

На самом самом конце SPI флешки, существует маленький маленький mtd раздел зовущийся ‘art’. расшифроввывается как Atheros Radio Test. По русски – тут хранят калибровку файфай части, которую на производстве делают для кажой борды. С чужой калибровкой вайфай может и будет работать как телепузик на оборонном заводе. А с поврежденной или отсутствующей – вообще не будет, а ошибки ath9k никак не помогают разобраться что не так пошло. Я сдампил ‘art’ с 2MiB родной флешки, и записал в конец образа 16 метровой при помощи dd.

Теперь осталось сделать еще один переходник, закрепить его в маршрутизаторе термоклеем и подпаять соплями. Дальше оставалось только нарисовать патчи для OpenWRT, чтобы взлетели как положено все светодиоды, сисапгрейд, конфиг свича и прочее. Результат – крайне годный роутер, отличная замена старому Asus WL520gU.

Теперь где раздобыть все это барахло:

  1. Мои флеш-переходники, разводка, схематика и прч – на моем гитхабе. Потребуются навыки изготовления печатных плат на коленке.
  2. Патчики для поддержки железки уже улетели в OpenWRT-devel глядишь их даже вмержут, и тогда будет поддерживаться официально в транке
  3. Больше фотографий тут
  4. Пока все еще хреновая, английская инструкция по апгрейду на OpenWRT wiki

Вот и все, веселимся.
P.S.
С USB облом. В чипе он есть, но на плате не разведен и подпаяться можно только к одному из двух контактов. Второй уходит куда-то под чип… В общем, не судьба. Фотография с микроскопа приведена ниже (Так он разведен на WR703N)

Как мне тут подсказали в комментах к английской версии этого поста, USB хак таки возможен не без помощи напильника в прямом смысле этого слова. Ссылка ведет на OpenWRT форум

39 thoughts on “Mercury MW150R: Делаем из треша конфетку подручными средствами

    1. Читай внимательно, это на WR703N он уже разведен. У mercury этих дорог ВООБЩЕ нет. Надо лезть под чип.

  1. Write the ART section over it: dd if=./art.bin of=./target.bin conv=notrunc skip=16711680 bs=1

    ошибочка, не skip, а seek.

  2. Кстати да, ошибочка. Я просто про арт понял, когда уже флешу напаял, так что писал его из линуха, разлочив тот раздел. Поправил в вики, спасибо.

  3. Если можете, выложите пожалуйста дамп wr703n, от чего еще можно обрезать загрузчик?

  4. Оперативку поменял, поставил 32 мег. (от видюхи какой то старой подошло), резюк припаял, на одну флешку (4 мегабайта обе) залил
    http://0-code.google.com.library.metmuseum.org/p/wr703n-uboot-with-web-failsafe/downloads/list (для эксперементов),
    на другую дамп с wr703n (спасибо за дамп), со своим art (кстати в хекс редакторе посмотрел, art вроде как у всех одинаковый ). Флешку шил SPIPGM, кабель самодельный lpt + 5 проводков с резисторами.
    Теперь вот соображаю, как собрать openwrt c патчиками.

  5. Приветствую мне тоже в руки попал этот роутер хочу спросить а возможно из файла прошивки сделать нормальную перевести дизайн сменить как в некоторых девайсах например билайн. Или только с помощью альтернативных прошивок его можно както юзать?

    1. @xlos: Я оригинальную не ковырял и не планирую. Не стоит это убожество потраченного времени.

  6. понял послушаю профи 🙂 еще вопрос вскрыл вчера свой посмотрел он отличается от рассмотренного комплектующими на плате в статье может изза версии? модель mw150r а ver:6.1 и вот тут вопрос у меня чип памяти zentel a3s28d40ftp-g5 яндекс облазил только на типа официальном нашел по маркировке говорит на нем 128 мб эт нормальный чип подойдет для прошивы ато намучился я уже с этим китайским. Заранее спасибо 🙂

  7. @xklos: Курим внимательно и вдумчиво даташит: http://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CB8QFjAA&url=http%3A%2F%2Fwww.zentel-europe.com%2FA3S28D3040FTP_v1.0.pdf&ei=JeFOUPr7BcLg4QTp8IDoBA&usg=AFQjCNGCkja__zFgJZgJWScRdiZiEPZbGA
    Это чип на 128 мегабит! То есть на 16 мегабайт. Со всеми вытекающими. для WRT минимум 32 желательно. 16 маловато.

  8. огромное спасибо буду разбираться может чего нибудь тоже найду в старом железе. А еще можно спросить? http://glinev.narod.ru/vsyakoe/router_mercury_mw150r/ человек пишет что это тотже tp-link но у него 1.2 а у меня 6.1 я вот не могу вкурить от версий по ходу железо зависит а не п.о.? а твое мнение стоит попробовать или можно вообще убить этот роутер если не пойдет? а то я уже паяльником вооружился работать с памятью.

  9. извиняюсь забыл спросить как твое мнение насчет методы что по ссылке бред или может выйти?

  10. @xklos: Там печатается версия железа. Может различатся версия ПО, а может и не различаться. Особых различий там не должно быть, попробовать можно. Максимум светодиоды на других ногах/не так подключены. Но не смертельно, ПО должно взлететь. Мне проще доставить туда памяти и нормальную опенвртю, а не мучаться с огрызком который идет по дефолту.
    Тем более что флеша SPI, в лучае окирпичивания переткнуть в программатор и залить лоадырь – 2 секунды.

  11. благодарю найду все компоненты сделаю как вы 🙂 пока попробую так в тплинк его переделать а перепрошивка долго по времени идет? его вырубать после этого или в браузере увижу по окончании?

  12. Кстати приколюха с at25df321a http://www.atmel.com/Images/doc3686.pdf , убут не хочет на ней ничего писать, не подерживается, прошил программатором опенвртю, все ок. Надо убут пересобрать, да лень, проше другую флешку найти.

  13. Здравствуйте. Я убил свой 703n… Можете выложить дамп флешки, нигде найти не могу, да и под рукой нет такого же роутера, чтобы сделать с него дамп. Заранее спасибо!

  14. Привет! Присоединяюсь к mainsat, подскажите, где взять дамп от 703n? Хотя-бы u-boot.

  15. Выложу на этой неделе дамп убута отдельным постом, если кому сильно надо.

  16. Уважаемый Necromant я так понял что вы поставили новую флэшь уже с установленной прошивкой??

    1. @eVGENIY: во чистую флеш я программатором зашил только бут, остальное заливал штатно.

  17. Если я его переделаю я смогу на нем использовать Wifi как клиента(Wan)&? нет возможности провод подтянуть… Где вы брали все эти запчасти?

  18. @eVGENIY: Да, AR9331 умеет клиент мод. Запчасти – у китайских братьев по разуму и в хламе.

  19. А Вы мне не поможете в такой не легкой работе? я один просто не справлюсь…

  20. помощь заключаетсья в том что что я я не я не смогу без посторонний помощи залить бут загрузчик и запчасти достать?? я все оплачу….

  21. @eVGENIY: К сожалению, у меня сейчас большой завал, которому конца-края не видно, потому помочь смогу едва ли.

  22. Присоединяюсь к посту но нужна помощь нарыл новый Mercury v 8.5 работает хорошо но нужна прокачка отдам его знающему человеку за вознаграждение и помощь в прокачке а то китайская прошивка зае..ла так как сам недогоняю малость

    1. Пробовал версию 8.5 поменял память вставил резистор 22 ом, но роутер не завелся по уарту молчит ничего не отправляет, пробовал несколько модулей памяти, самсу и апасер, 32 и 64 мб, ни одна не завелась, закатываю родную работает…

      Может кто подсказать где собака зарыта?

      1. Надо сравнивать тайминги по шит-о-датам и лэйаут. Ну и проверять пайку тогда 22-омного резюка. Хотя, учитывая, что с момента поста прошло почти 8 лет, я уже ни в чем не уверен 😉

        1. Может тайминги, а может и распиновка и скорее всего дело в ней, т.к. она не совпадает по нескольким ногам, однозначно надо смотреть даташиты, но такое ощущение что не найти уже подходящих модулей памяти.

          Спасибо ваш труд!

Добавить комментарий для anonymousОтменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.