понедельник, 15 февраля 2016 г.

Подготовка окружения для сборки пакетов под OpenWRT

Подготовка окружения для сборки пакетов под OpenWRT



В рамках одного из проектов пришлось столкнуться с разработкой под OpenWRT. Теперь я просто нинздя по кастомизации прошивки на базе OpenWRT для DIR-320 version A1. Вероятно те, кто занимаются этим постоянно, не найдут тут ничего нового. Так что, заметка скорее для себя. Итак, по шагам.

  •  Для начала надо подготовить OS для сборки окружения. Устанавливаем необходимые пакеты:
apt-get install gcc g++ make zlib1g-dev libncurses5-dev gawk flex git-core subversion

  • Скачиваем последний релиз OpenWRT. На данный момент это Chaos Calmer 15.0.5

git clone https://git.openwrt.org/openwrt.git

  • Скачиваем дополнительные патчи:
./scripts/feeds update -a && ./scripts/feeds install -a

  • Запускаем проверку зависимостей и инициализацию конфигурации.
make defconfig

  • А теперь конфигурируем окружение - make menuconfig. Обязательные пункты:
            - "Target system"
            - "Build the OpenWRT SDK"
            - "Build the OpenWRT based Toolchain"
            - "Build the OpenWRT image builder" -> "Include package repositories"

  • Сохраняем конфигурацию и собираем прошивку и toolchain.
make -jN
          , где N - кол-во ядер CPU + 1. Сборка будет проходить параллельно. Разумеется, если вы включили это в конфигурации.
  • Если все завершилось успешно, то можно приступать подготовке Makefile для вашего кастомного пакета. Как это сделать, описано тут:
  • Теперь складываем свои исходники в package/<section>/<package_name>, где section - имя секции в репозиториях OpenWRT, package_name - имя вашего пакета.
  • Снова запускаем make menuconfig  и выбираем сборку нужно нам пакета. Все зависимости выберутся автоматически, если вы правильно их прописали в Makefile.
  • Ну и собственно сборка:
make package/<section>/<package>/compile && make package/<section>/<package>/install && make package/index

Собранный пакет будет где-то тут:
openwrt/bin/<arch>/
, где arch - target system, чтобы была выбрана при сборке.
Мануал по сборке пакетов тут:

Комментариев нет:

Отправить комментарий