Warning: include(templates/header.php) [function.include]: failed to open stream: No such file or directory in /home/safarov/public_html/wp-content/themes/inove/header.php on line 62

Warning: include(templates/header.php) [function.include]: failed to open stream: No such file or directory in /home/safarov/public_html/wp-content/themes/inove/header.php on line 62

Warning: include() [function.include]: Failed opening 'templates/header.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/safarov/public_html/wp-content/themes/inove/header.php on line 62
Главная > DD-WRT > Компиляция DD-WRT из исходного кода

Компиляция DD-WRT из исходного кода

Цель

Оказание помощи при компиляции DD-WRT

Область применения

Создание собственной модификации прошивки.
Изменение состава опций и модулей включенных в прошивку.
Расширение функционала DD-WRT модулями подготовленными сторонними разработчиками.
Устранение ошибок в исходном коде посредством применения патчей.

Общая информация

Компиляции DD-WRT будем производить на примере версии для маршрутизатора Asus RT-N16.

Требования

Рабочая станция под управлением операционной системы Linux 64bit.
Свободное дисковое пространство размером 30 Gb.
Установленные пакеты svn, make, gcc.
Инструментарий кроскомпиляции.
Папка bin инструментария кроскомпиляции должна быть включена в переменную PATH.

Получение исходного кода

Для выполнения компиляции необходимо выполнить получение копии исходного кода DD-WRT. Учитывая что существует много редакций DD-WRT, рекомендую скачивать редакцию рекомендуемую на сайте DD-WRT. Для маршрутизатора Asus RT-N16 на 17 сентября 2010 года рекомендуется версия 14896. Команда на получение копии исходного кода будет выглядеть следующим образом:

svn checkout svn://svn.dd-wrt.com/DD-WRT --revision 14896 trunk-rn16
cd trunk-rn16

Следует обратить внимание что размер исходного кода составляет более 20Gb.

Создание конфигурационных файлов

Конфигурационный файл ядра Linux

cp src/linux/brcm/linux-2.6.23/.config_std src/linux/brcm/linux-2.6.23/.config

Конфигурационный файл системных утилит Linux (busybox)

cp src/router/busybox/.config_micro src/router/busybox/.config

Конфигурационный файл программного обеспечения включаемого в прошивку

cp src/router/configs/broadcom_K26/.config_mini.v24-K26 src/router/.config

Изменение конфигурационных файлов

В конфигурационном файле «src/router/rules/bird.mk» раскоментируем строку «bird-configure» и удаляем опции «—build» и «—no-create». Пример приведен ниже

bird-configure:
        cd bird && ./configure --host=$(ARCH)-linux --prefix=/usr --disable-client --with-sysconfig=sysdep/cf/linux-22.h --localstatedir=/tmp/bird --sysconfdir=/tmp/bird --no-recursion CC=$(ARCH)-linux-uclibc-gcc bird_cv_c_endian=big-endian

В файле «src/router/Makefile.brcm26″ после сроки «$(MAKE) -C $(LINUXDIR) oldconfig» добавляем строку «rm $(LINUXDIR)/include/linux/config.h». Обратите внимание что в начале строки должен стоять символ TAB.

        $(MAKE) -C $(LINUXDIR) oldconfig
        rm $(LINUXDIR)/include/linux/config.h
        $(MAKE) -j 4 -C $(LINUXDIR) vmlinux
        $(MAKE) -j 4 -C $(LINUXDIR) modules

В конфигурационном файле «src/router/.config» комментируем строку CONFIG_SPUTNIK_APD. Пример ниже

#
# Base Features
#
# CONFIG_SPUTNIK_APD=y
CONFIG_EOP_TUNNEL=y

В конце конфигурационного файла «src/linux/brcm/linux-2.6.23/drivers/net/wireless/Kconfig» комментируем четыре строки «source». Пример ниже

          Netgear WG111v2

          Thanks to Realtek for their support!

# source "drivers/net/wireless/hostap/Kconfig"
# source "drivers/net/wireless/bcm43xx/Kconfig"
# source "drivers/net/wireless/zd1211rw/Kconfig"
# source "drivers/net/wireless/madwifi/Kconfig"

endmenu

Компиляция вспомогательных утилит

В процессе подготовки прошивки потребуется утилита trx. Скомпилировать утилиту следует следующей командой:

gcc opt/tools/trx.c -o opt/tools/trx

Компиляция и сборка прошивки

Переходим в рабочую папку

cd src/router/

Выполнение скриптов configure

make -f Makefile.brcm26 configure

Очистка каталогов от предыдущей компиляции кода

make -f Makefile.brcm26 clean

Компиляция кода

make -f Makefile.brcm26 all

Сборка прошивки

ln -s ../../opt/sstrip sstrip
make -f Makefile.brcm26 install

Собраная прошивка лежит в папке «src/router/mipsel-uclibc»

Дополнительно

Желающие выполнить компиляцию прошивки для ядра 2.4 могут это сделать если в командах «make» не буду казывать имя Makefile. Например, вместо «make -f Makefile.brcm26 configure» следует дать команду «make configure» . Исключение составляет команда «install». В обычном Makefile этот раздел не до конца описан и рекомендую использовать «make -f Makefile.brcm26 install».

В процессе компиляции ядра 2.4 подребуются «toolchain-mipsel_gcc3.4.6″. Данный тулчейн я брал тот что генерируется в процессе компиляции OpenWRT.

Ссылки

Пост послуживший отправной точкой для написания статьи
Текущая версия инструментария кроскомпиляции
Создание мода прошивки DD-WRT средствами firmware_modkit под Yota

make -f Makefile.brcm26 configure
Categories: DD-WRT Tags: ,
  1. Саня
    9 Январь 2011 в 03:08 | #1

    Цитата:
    — Следует обратить внимание что размер исходного кода составляет более 20Gb.

    Вопрос: Это столько будет слито или ОНО на столько распахнется? Если первое, то где можно забрать одним манюсеньким файликом?

  2. 9 Январь 2011 в 14:28 | #2

    Ответ: «Это будет слито».
    Мне не известно способа забрать исходный код одним файлом.

  3. Фёдор
    2 Февраль 2011 в 11:15 | #3

    а собрать прошивку под неподдерживаемый девайс возможно?
    модем dsl-2500U официально не поддерживается.
    но есть все исходники стандартной прошивки на фтп длинка, соответсно тулчейн.

  4. 2 Февраль 2011 в 14:34 | #4

    Да, собрать можно. Тулчейн нужно использовать с сайта DD-WRT или тот что собирается из исходного кода OpenWRT (я его предпочитаю).
    Потребуется правильно указать под какую аппартную платформу требуется компилить. Тока одно «но», то что оно собется не дает гарантии что оно там заработает.

  5. Дмитрий
    22 Февраль 2011 в 05:59 | #5

    Попробовал собрать по этому руководству прошивку. 26 собралась в конце концов без больших проблем. 24 отказывается собираться совершенно.
    Есть какое то руководство более подробное для 24? Нужно собрать прошивку для для dir-320.

  6. buriy
    19 Март 2011 в 05:00 | #7

    А на 32 битной системе возможно?

  7. 19 Март 2011 в 11:22 | #8

    @buriy, можно, но потребуется дополнительно решить несколько вопрсоов со сборкой вспомогательных пакетов.

  8. avb
    28 Март 2011 в 02:11 | #9

    Не подскажешь как это дело для dir 615 (Atheros ar7240 — mips) модифицировать?

    В прямой аналогии не катит…

    • 29 Март 2011 в 23:43 | #10

      @avb , попробуйте для начала собрать прошивку OpenWrt для dir 615 (Atheros ar7240 – mips). Это на порядок легче. После того как это Вам участься, то будете в шаге от успешной сборки DD-WRT для dir 615.

  1. 17 Сентябрь 2010 в 14:38 | #1