ZRouter — пихаем FreeBSD в роутер DLINK

    Пару недель назад
    Я бегал по хабру как угорелый в поисках рецепта (как оживить умерший роутер DIR-620).
    Основная проблема была в том что родная прошивка 620-ки не принимала модем Verizon U175. И после нескольких прошивок DDWRT я наконец-то нашел ту самую которая и угробила его превратив в овощтупой свич.
    А вот что произошло дальше читайте под катом

    Походы к местным специалистам не увенчались успехом, одни пробовали подключиться к консольке но не получилось, они же рекомендовали перешить на программаторе сам чип, другие говорили, что бобик умер окончательно. Но всё таки жалко было расставаться со своими кровными 50дол. И я заказал в одном из интернет магазинов (это опять же целая история) кабель DCA-510 и перепаял его под свои нужды.
    Дальше, воспользовавшись наглядным пособием и схемой:
    и сделал себе доступ к U-boot-у.
    После этого мне удалось установить на него DD-WRT от ASUS rt-n13u который я и установил в первый раз. Но в этот раз у меня уже была консолька и желание поэкспериментировать с FreeBSD.

    FreeBSD — начало.
    Сначала я надыбал на просторах интернета Вики в котором делалась компиляция ядра БЗДи какраз под этот чип. Скомпилил попробовал, ну какбы запускается и чето ищет по bootp.
    Но дальнейшие поиски привели меня на сайт zrouter.org На котором мне и посчастливилось скачать ту самую прошивку о которой и пойдет речь.
    Для начала следуя советам сайта делаем по пунктам:


    Далее, я создал файлик start.sh:
    #!/bin/sh
    export FREEBSD_SRC_TREE=/usr/home/zrouter/head/head
    export OBJ_DIR=/home/zrouter/obj
    exec ./menu.sh

    просто для удобства запуска через screen
    Далее в лучших традициях FreeBSD появляется текстовый интерфейс

    С выбором параметров платформы, и сборки

    для DIR-620 выбрал соответственно Device -> DIR-620, Target -> zImage
    Пока что не рекомендую пользоватся пунктами Save\Load так как из-за них у меня сборка не доходила до конца вываливаясь с ошибкой:
    ==> building zrouter !!!
    "Makefile.inc1", line 139: Unknown target mipsel:mips.
    "Makefile", line 280: warning: "(MAKEOBJDIRPREFIX=/usr/obj//usr/home/andriyj/zrouter/zrouter/tmp/ make TARGET=mips TARGET_ARCH=mipsel TARGET_CPUARCH=mips ZROUTER_ROOT=/usr/home/andriyj/zrouter/zrouter WITHOUT_ASSERT_DEBUG=yes WITHOUT_ATM=yes WITHOUT_CLANG=yes WITHOUT_INFO=yes WITHOUT_INSTALLLIB=yes WITHOUT_IPX=yes WITHOUT_LOCALES=yes WITHOUT_MAN=yes WITHOUT_NLS=yes WITHOUT_PROFILE=yes WITHOUT_RESCUE=yes WITHOUT_SSP=yes -DNO_CLEAN WITHOUT_JAIL=yes WITHOUT_INET6=yes WITHOUT_INET6_SUPPORT=yes WITHOUT_MAN=yes WITHOUT_INFO=yes WITHOUT_NLS=yes WITHOUT_CDDL=yes WITHOUT_NIS=yes WITHOUT_BLUETOOTH=yes NOENABLE_WIDEC=yes -DNOENABLE_WIDEC WITHOUT_KERBEROS=yes WITHOUT_KERBEROS_SUPPORT=yes -C /usr/src buildenvvars)" returned non-zero status
    "Makefile", line 288: Need an operator
    "Makefile", line 288: Need an operator
    "Makefile", line 288: Need an operator
    "Makefile", line 288: Need an operator
    "Makefile", line 288: Need an operator
    "Makefile", line 288: Need an operator
    "Makefile", line 288: Need an operator
    make: fatal errors encountered -- cannot continue

    Жмем на Build и ждем создания образа.
    Далее поднимаем tftp и пробуем загрузится.

    Прошивка


    Так как у меня на роутере уже стоял DDWRT и не очень то хотелось его сносить то для начала воспользовался пунктом 4 U-boot с последующим tftp test.bin и bootm но таким образом не хотело грузится запакованное ядро ( выдавало ошибку при проверке lzma ). Тогда, следуя советам найденным на просторах www.dd-wrt.com попробовал грузится по пункту 1. И загрузка пакованного ядра пошла. Но упорно не виделся rootfs.
    Набравшись наглости я написал прямо разработчику: Олександру Рыбалко. В разговоре и пробах с которым мы провели следующие несколько часов (точнее где-то 3 дня но работали по вечерам максимум по 1-2 часа).
    В итоге выяснилось что ядро ZRouter ищет rootfs по адресу во флэш-памяти а не RAM. Прошив роутер по пункту 2 U-boot я наконец-то получил вожделенный FreeBSD.

    Настройка


    Веб-Интерфейс получился очень даже несложным, я бы даже сказал — спартанским
    В настройках обнаружились как и подобает: DHCP, PPTP, PPPoE, 3G, Wifi(временно неработающий).
    Собственно их настройка одинакова для любых подобных вещей независимо от прошивки и производителя.
    Стоит заметить однако что кнопка Update не сохраняет данные. Это делает кнопка Save settings в главном меню.
    Дальше настройка 3G modem-a (пришлось изменить только ссылку на девайс /dev/cuaU0.0), сохранение параметров (обязательно), перезагрузка (обязательно).
    Модем поднялся на УРА.

    Итоги, грабли на которые не обязательно наступать


    Итоги
    1. Прошивка работает (собственно через нее сейчас и интернет по которому пишу сюда)
    2. Есть проблемы с Wifi ( по заявлениям разработчика она рабочая где-то на 60%, но в браузере пока не настраивается)
    3. 3G модемы определяются на ура (по крайней мере из испробованных прошивок Dlink original, DDWRT, ZRouter только последний нормально определил мой Verizon U175

    Грабли:
    1. Обязательно используйте свежее ядро из репозиториев ZRouter
    2. Обязательно прошивайте а не пробуйте запускать из RAM
    3. Update не записывает данные поэтому надо принудительно записывать все через меню.

    P.S.
    Приношу благодарность за работающий роутер:
    www.facebook.com/arybalko
    — Колективу zrouter.org
    — Собеседникам из канала #zrouter на IRC EFNet
    UPD: Для желающих поддержать проэкт
    Кошельки:
    — Z105679867090
    — U364832937482
    — R959084523149
    — E366383023429
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 18
    • +2
      А чем оно в практическом смысле интереснее той же DDWRT?
      • +2
        Или того же ОпенВРТ?
        • +3
          Не gnu/linux единым. Разве этого мало?

          Кто-то же выбирает себе на персоналки *BSD вместо linuxа… зачем-то… :)
          • 0
            Ну это понятно что все пользуются тем что любят/знают/умеют и т.п.
            Думал, просто, что может еще какие причины есть. =)
            • 0
              Я лично не знаю причин, по которым можно предпочесть из всех вариантов (в данном случае) именно фряху. Боюсь, что и автор этих причин не знает. Но в любом случае можно поднять тост (топик) за разнообразие :)
      • +2
        Это описано в 3-м итоге к статье,
        Ни одна из прошивок не определила модем Verizon U175 и не работала с ним.
        Если я ошибаюсь, тыкните мне в ту прошивку которая:
        1. Поддерживает этот роутер (DDWRT запустился но это был Асусовский от RT-N13U а не его родной)
        2. Поддерживает этот модем (DDWRT мне не удалось заставить работать из коробки, потому как требовал драйсер ttyACM которого в той поставке прошивки небыло, О родной прошивке речь даже не идет так как там только Huawei нормально работают а их у нас в продаже уже нет)
      • 0
        у меня плата от окирпиченного 300-го лежит. надо заняться
        • 0
          320-й в менюшке стоит, возможно и заведется
        • +1
          DIR-620 еще замечательно шьется под Zyxel Keenetic. http://habrahabr.ru/blogs/DIY/123699/

          Мне самому интересно как раз попробовать залить в Keenetic прошивку от ZRouter.
          • 0
            я знаю именно благодаря єтому пособию я и решился прошить свою длинку
          • –9
            На втором абзаце от такого обилия орфографических, грамматических и пунктуационных ошибок желание читать умерло чуть менее, чем полностью. Для 320-го экспериментальные прошивки на freebsd уже были давно, но они мало на что способны. В целом, выглядит это все как желание ну хоть на что-то натянуть не успевающую за современными тенденциями ОСь. Ан нет, и тут провал.
            • +1
              Firefox у меня нашел только в 3-м абзаце ошибку но никак ни во втором
              а по поводу все остального поста — типичное начало холивара которое здесь будет неуместно.
              Я бы предбочел увидеть парочку небольших но важных патчей к проекту
              • 0
                Ну ладно уж, рассказали бы уж нам, что это за современные тенденции, за которыми Бздя не успевает… Жалко что ли? А то мы тут сидим и не в курсе вообще… ;-) Я не холивара ради (таковым является практически каждый Бздяшный топик на каком-нибудь ОпенНете — можно без проблем причаститься при желании), а действительно интересно — что считает современными тенденциями человек, у которого про Дебиан так откровенно в профиле написано. :-)

                PS: И да простит меня автор за офф-топик!
                • 0
                  наверное сейчас пойдут цитаты из блогов яндекса о тоб что бздя плохо виртуализируется и что ее порты это прошлый век.
                  • –2
                    нет, цитаты не пойдут. это мое мнение и я не собираюсь за него оправдываться.
                    тем более, что в данном случае мы говорим только о дешевом роутере.
                    впрочем, про виртуализацию и порты — чистая правда.
                    • +1
                      По поводу дешевого роутера. Ну тогда давайте посмотрим на Juniper. как вы думаете что там внутри крутится? Ну к примеру тута: www.opennet.ru/opennews/art.shtml?num=13466
                      По поводу виртуализации не так все и страшно как вы себе представляете: habrahabr.ru/blogs/bsdelniki/128420/
                      По поводу портов: есть тот же portupgrade для обновления и др.

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