Продолжая развивать свой опыт по переделке мясорубок в комбайны роутеров в шаринг боксы, столкнулся с тем,что надо стало собрать и скомпилировать прошивку из чистых исходников. О том,что в последствии прошивка была найдена уже готовая и красивая,я скромно умалчиваю(гуглить лучше надо! - Прим. анонимуса).

В принципе все что я опишу далее,придумано не мной. Просто это перевод англоязычных статей и мануалов + аддон моего личного опыта и комментариев. Нашему человеку русский все таки ближе к телу)

Для сборки нам понадобиться машина с Linux (Debian,Ubuntu) - я буду рассказывать о сборке именно на этих ОС. Хотя на других почти так же).

Внимание! Все ниже перечисленные действия вы выполняете на свой страх и риск! Автор хоть и старался все подробнее описать для людей,но он человек,и может допустить ошибку или что то недописать! Претензии не принимаются.Только просьбы о помощи))

Итак,начинаем по инструкции http://wiki.openwrt.org/doc/howto/build

1) Устанавливаем сам компилятор и прочие примочки:

sudo apt-get install subversion build-essential

2) Качаем исходники с помощью svn

mkdir ~/openwrt

cd openwrt

svn co svn://svn.openwrt.org/openwrt/trunk/

cd trunk
Теперь у нас исходники лежат в папке /home/ваш_пользователь/openwrt/trunk/ и вы находитесь в папке trunk/
3)Докачиваем всякие там нужные(и не очень) скрипты

./scripts/feeds update -a

./scripts/feeds install -a
4) Теперь проверяем что у нас есть все нужные компоненты для успешной компиляции

make defconfig

make prereq

make menuconfig - после ввода это команды появляется само меню настройки всех опций компиляции - тут настраивается и тип процессора, и все модули,которые будут в сборке.
Пример меню. Картинка взята с http://wiki.openwrt.org/doc/howto/build

После выбора всех опций, выберите Exit и вам предложат сохранить все изменения. Соглашайтесь)

5)Потом для уверенности выпоните эту команду:

sudo apt-get install libncurses5-dev zlib1g-dev gawk flex

6) Теперь,когда все готово пишем всего одну команду:

make

Теперь ждем. Все зависит от мощности машины. У меня прошивка компилировалась около 50 минут.

7)После завершения компиляции, идем в папку ~/openwrt/trunk/bin/ramips/ Здесь вы найдете кучу файлов с прошивкой. Внимательно читаем название - там указано для какого роутера или процессора эта прошивка. В моем случае, я нашел openwrt-ramips-rt305x-dir-300-b1-squashfs-factory.bin То есть это как раз мой D-link Dir-300.

На заметку:

- файл с окончанием squashfs-factory.bin это прошивка для заливки ее через вебморду родной прошивки роутера. То есть заводская в openwrt.

- файл с окончанием squashfs-sysupgrade.bin это прошивка для обновления на уже установленной линуксовой прошивке(openwrt, dd-wrt, gargoyle).Обновляется загрузкой этого файла в папку /tmp/ через scp  и выполнением команды в консоли SSH

$> sysupgrade /tmp/имя_прошивки.bin

8) Для полной очистки после компиляции выполните команду

make dirclean - все файлы, созданные во время компиляции будут очищены,все настройки сброшены. Это нужно,например,если делаешь не одну сборку для разных платформ.

Ну,собственно, и все! Вы собрали и скомпилили собственную сборку прошивки) Это может стать удобным для тех, кто хочет поэкспериментировать со своим роутером;  кто хочет сделать прошивку с подогнанным под себя набором функций и программ; всем, кто просто хочет что то новое изучать)

Если у кого есть какой то свой опыт на этот счет, или комментарии - прошу,напишите мне! Буду очень рад)

Добавлено 26.10.2012: Вот ссылка на мою версию прошивки для DIR-300 B1 от Дантеса. Есть веб-морда,все функции + mpcs для шаринга.

http://rusua.org.ua/progs/dantes_dir300b1_19.09.zip

38 комментариев

  1. avatar garynych:

    а как бы при сборке прошивки,включить в неё свой файл? к примеру мне нужно что бы после прошивки роутера, в папке /usr/sbin лежал мой файл...




    2



    0
  2. Вопрос интересный) Ни разу не приходилось задумываться,так что сходу не подскажу. Скорее всего надо поискать в структуре исходников,можно ли там подкинуть свой файл в бинарнике или его исходниках.Ну и погуглить,мож чо то подробнее на эту тему будет)




    2



    0
  3. avatar Serg:

    Создайте папку files и все что туда положите попадет с прошивку. Папка files будет корнем прошивки, т.е. в ней уже создавайте /usr/sbin и ложите туда файлы




    2



    0
  4. Хм! Интересно) Спс! Теперь и я буду знать на всякий случай)




    2



    0
  5. Спасибо serg,уже сам допетрил 😉 очень удобно... 😉




    2



    0
  6. avatar Денис:

    Добрый день! А может ли кто-то выложить уже готовую прошивку OpenWRT для DIR-300 B1 и DIR-615 E4? Столкнулся с проблемой поиска таковой и не могу найти! Кроме того, на сайте OpenWRT исчезли исходники для компеляции прошивки под эти роутеры. Да и не могу разобраться как это все сделать...




    2



    0
  7. avatar Денис:

    Благодарю! Попробую!




    2



    0
  8. avatar Андрей:

    Добрый день!!!
    сталкнулся с проблемой и инет смотрю по форумам на "ушах"
    купил dir-620, все бы хорошо, но от куда я знал, что вместо А1 попадет ревизия D1, а на нее ни чего нету, с линухом не совсем
    дружу, если не сложно может ссылку и прошивку под сие чудо
    ---
    хотел его прошить под keenetic, что б потом подвязать dnla сервис и давать IPTV на LG ТВ - но думаю уже не судьба




    2



    0
    • Заинтересовался вашим вопросом. Сам вообще не сталкивался с подобной проблемой,но пошарил по инету по вашему поводу - нашел следы вот тут http://www.dd-wrt.com/phpBB2/viewtopic.php?p=717713 и вот тут https://sat-forum.info/index.php/topic,9318.1350.html Но в первом месте я так понял шьется прошивка от совместимого роутера,и при этом USB не будет работать, а во втором месте автор Дантес выкладывал прошивки,но их на данный момент удалили.Тобишь вариант связаться с ребятами,участвующими в диалоге,и у них если что попросить прошивку - раз они прошивали,знач должна имхо остаться.
      На данный момент я наверно больше ничего не посоветую ((




      2



      0
      • avatar Андрей:

        Спасибо,
        что откликнулись, видел эти ссылки уже 5-й день в инете по гуглям гуляю, по первой ссылке (http://www.dd-wrt.com/phpBB2/viewtopic.php?p=717713) - там я понял, что выпаивали флешь память, иногда сам пишу под МК и паяю, но с линухом не пересекался что б править, но в новую вещь с паяльником лезть как-то не очень охото - это крайняя мера та и то не совсем понятно будет ли жить по се этого...
        по второй ссылке не догадался, что надо быть залогиненным, что б что то увидеть, завтра попробую, надеюсь не убью мой D1-й




        2



        0
        • Надеюсь поделитесь результатами своих опытов) Мне и многим другим,думаю, будет интересно.Тем более раз сейчас как раз пошли роутеры D1 версии.




          2



          0
          • avatar garynych:

            дык,там же коменты есть,народ то шьётся...

            Все работает нормально косяк был в шифрование. Потоки видео по вафле отлично. Два потока в нd без тормозов.
            Нужна настройка по фаерволу скинте сылку! Спасибо за работу по прошивке!

            Интернет и wi-fi работают нормально, только лампочки на морде надо корректировать

            Работает прошивка нормально, прошивается легко вышеизложенным способом, CDMA модемы работают, клиенты не жалуются. Спасибо!




            2



            0
          • avatar Андрей:

            garynych:
            а вы пробовали dnla сервис понимать и через него IPTV на LG пускать?




            2



            0
          • avatar garynych:

            не я не пробовал...не к чему мне... так а в чём проблема то? благо мануалов в сети полно...




            2



            0
          • avatar Андрей:

            garynych:
            ---------
            Согласен с Вами, думаю разберусь, вопрос времени....
            Просто думал что вы это делали и хотел получить практический ответ, что б не пробовать разные вариации решений проблемы...
            Знаю по МК когда начинал, тоже много чего брал с форумов большой процент советов и примеров не жизнеспособные оказались, а времени убитого было очень много...




            2



            0
  9. avatar garynych:

    с чего Вы взяли,что что то по удаляли...
    вот для D1 https://sat-forum.info/index.php/topic,9318.msg211348.html#msg211348




    2



    0
    • Хм,да,действительно.Зашел на форум незалогиненным,потому не показывало вложения вообще.А удалялись предидущие версии,судя по надписям на месте вложений у Дантеса




      2



      0
  10. avatar Алексей:

    Возникла проблема: при установке модуля openl2tp не хватило памяти. Подскажите, пожалуйста, какие модули можно удалить из прошивки от Дантеса для dir300 b1, либо какое нибудь другое решение этой проблемы. Спасибо.




    2



    0
  11. avatar Grimermakov:

    Установил прошивку openwrt, сначала было все нормально, потом начал прописывать ip адреса для работы интерента, начал сохранять и завис. Теперь совсем не запускается веб-интерфейс. Несколько раз перезагружал роутер, сбрасывал его кнопкой на задней панели, ничего не получается. Как теперь можно сбросить его?




    2



    0
    • Сбросить можно двумя способами:
      1)Включенный роутер, жмем и держим кнопку сброса.В идеале индикаторы должны погаснуть и включится.То есть перезагрузка.
      2)Работает чаще. При выключенном питании,зажимаем кнопку сброса,и не отпуская,включаем питание.Держим.Через время отпускаем.В идеале погаснут индикаторы и загорятся снова,показывая перезагрузку.
      После этого все равно ждем какое то время,что бы дать роутеру загрузиться и уже пробуем опять заходить на него.




      2



      0
  12. avatar kordonsv:

    Здравствуйте. У меня DIR-645 rev.A1 - по Вашей инструкции попробовал собрать прошивку, все этапы настройки проходят норм., но после команды 'make' - получаю следующее:

    *** End of OpenWrt configuration.
    *** Execute 'make' to build the OpenWrt or try 'make help'.

    diegrenze@ubuntu:~/openwrt/attitude_adjustment$ sudo apt-get install libncurses5-dev zlib1g-dev gawk flex
    Чтение списков пакетов… Готово
    Построение дерева зависимостей
    Чтение информации о состоянии… Готово
    Уже установлена самая новая версия flex.
    Уже установлена самая новая версия gawk.
    Уже установлена самая новая версия libncurses5-dev.
    Уже установлена самая новая версия zlib1g-dev.
    обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
    diegrenze@ubuntu:~/openwrt/attitude_adjustment$ make
    Checking 'openssl'... ok.
    Checking 'rsync'... ok.
    Checking 'xgettext'... ok.
    Checking '/usr/include/openssl/ssl.h'... failed.

    squid: squid requires the openssl development (named like libssl-dev, depending of your package manager) package be installed on the host-system.

    make[3]: *** [prereq] Error 1
    Checking 'xsltproc'... failed.

    telepathy-python: telepathy-python requires xsltproc installed on the host-system.

    make[3]: *** [prereq] Error 1
    Package prerequisite check failed.
    make[2]: *** [tmp/.prereq_packages] Error 1
    make[1]: *** [prereq] Error 2
    make: *** [world] Ошибка 2

    помогите пожалуйста, подскажите в чем моя ошибка.




    2



    0
    • Насколько я вижу,ошибка в зависимостях. Не хватает ему компонентов.

      Checking ‘/usr/include/openssl/ssl.h’… failed.

      squid: squid requires the openssl development (named like libssl-dev, depending of your package manager) package be installed on the host-system.




      2



      0
  13. avatar kordonsv:

    Спасибо, выполнил: sudo apt-get install libssl-dev
    и все пошло, но в итоге новая ошибка:

    Download failed.
    No more mirrors to try - giving up.
    make[3]: *** [/home/diegrenze/openwrt/attitude_adjustment/dl/openssl-1.0.1e.tar.gz] Error 2
    make[3]: Leaving directory `/home/diegrenze/openwrt/attitude_adjustment/package/openssl'
    make[2]: *** [package/openssl/compile] Error 2
    make[2]: Leaving directory `/home/diegrenze/openwrt/attitude_adjustment'
    make[1]: *** [/home/diegrenze/openwrt/attitude_adjustment/staging_dir/target-mipsel_r2_uClibc-0.9.33.2/stamp/.package_compile] Error 2
    make[1]: Leaving directory `/home/diegrenze/openwrt/attitude_adjustment'
    make: *** [world] Ошибка 2
    diegrenze@ubuntu:~/openwrt/attitude_adjustment$




    2



    0
  14. Сама суть в этом:
    Download failed.
    No more mirrors to try – giving up.
    Он пытается что-то откуда-то скачать,но не получается. И потому он выбивает ошибку. Что то конкретно не могу подсказать,так как тут сильно мало информации что б понять,а лично я с таким тоже не сталкивался




    2



    0
  15. avatar Stanislav:

    Может кто нибудь собрать прошивку для DIR-645 а то нет возможности в данный момент поставить Unix. а под win не получается собрать




    2



    0
  16. avatar Valery:

    А в чем может быть дело? Создаю своё простенькую програмку для openwrt типа Hello world. Через make menuconfig собрал ipk для роутера, залил, установил - работает.Исходник решил усложнить добавив код. Перестал собираться, ругается на операторы new и delete. Причем, если компилировать локально(на ubuntu), через Makefile:
    all:
    g++ main.c -o simple
    прога simple запускается и работает - то есть ошибки в синтаксисе быть не может.




    2



    0
    • Даже не знаю что тут конкретного сказать...Скорее всего разница в компиляторах,или библиотеках которые они юзают - компилятор на убунте явное имеет больше возможностей,чем в роутере.




      2



      0
  17. avatar Максим:

    у меня такой роутер с такой прошивкой http://ftp.dlink.ru/pub/Router/DIR-300_NRU/Source/DIR-300_B1_GPL/2.05/ как понимаю ваша прошивка должна подойти к нему? и ещё главный вопрос работает ли то при этой прошивке http://habrahabr.ru/post/183314/ ну например то
    192.168.0.1/model/__show_info.php?REQUIRE_FILE=/var/etc/httpasswd , а то на моей проишивке работает но прошиться не на что потому что она и так последняя 🙁




    2



    0
    • Насчет дыр в той прошивке я не знаю. Если честно тогда когда ее юзал еще даже не знал про эти баги. Насчет подойти - должна,у вас ведь В1 версия. Но как вариант - попробуйте поискать более новые версии этих прошивок,ибо я их заливал еще оч давно.




      2



      0
  18. avatar Лилипутен:

    Привет! Как собрать из исходников, например, znc версии 1.6, а не 1.4 которая предлагается..

    ПС. уберите эту мерзкую каптчу. Все права защищены Google ? - это ещё что?! вы работаете на гуглберг?




    2



    0

Добавить комментарий

%d такие блоггеры, как: