Добавляем свой пакет в Buildroot

Как-то давно я писал о том как сделать ПО под autotools. Штука весьма интересная и широко применяемая.
Так вот дело пришло к сборке при помощи buildroot окружения для моего Raspberry Pi B+.
Я не выдумывал велосипеды и слил уже приспособленный для малины buildroot с github: https://github.com/gamaral/rpi-buildroot
В buildroot куча пакетов, но не всегда там есть нужный да и все таки мы можем собрать собственный.

Как оказалось добавить пакет в Buildroot проще простого. Нужно создать папку и три файла.
Итак. Будем считать, что пакет с ПО создан при помощи autotools, а архив лежит по адресу http://blablacode.ru/blablacode_auto_helloworld-0.01.tar.gz
В слитом дистрибутиве buildroot заходим в каталог package и создаем каталог для файлов конфигурации для нашего ПО.
Поскольку у меня helloworld я обозвал его blablacode_helloworld.
В этом каталоге создаем файл Config.in и добавляем описание.

config BR2_PACKAGE_BLABLACODE_HELLOWORLD
        bool "blablacode_helloworld"
        help
          This is a comment that explains what blablacode_helloworld is.

          http://blablacode.ru/blablacode_auto_helloworld-0.01.tar.gz

Тут все очень похоже на систему конфигурации ядра. Собвственно это она и есть. Если есть вопросы гуглим Kconfig.
При конфигурации в меню Target packages появится наша пошина.

Отлично. Теперь создадим инструкции о сборке пакета.
Для этого создаем в том же каталоге файл blablacode_auto_helloworld.mk

BLABLACODE_HELLOWORLD_VERSION = 0.01
BLABLACODE_HELLOWORLD_SOURCE = blablacode_auto_helloworld-$(BLABLACODE_HELLOWORLD_VERSION).tar.gz
BLABLACODE_HELLOWORLD_SITE = http://blablacode.ru/
BLABLACODE_HELLOWORLD_INSTALL_STAGING = YES
BLABLACODE_HELLOWORLD_INSTALL_TARGET = YES
BLABLACODE_HELLOWORLD_DEPENDENCIES = host-pkgconf

$(eval $(autotools-package))

Тут мы указываем версию, имя архива с исходником, имя хоста где он расположен и систему сборки (autotools). Buildroot поддерживает еще сырые make файлы и cmake.

Для первой проверки осталось только поправить файл package/Config.in
Я добавил наш пакет в самое начало файла, в меню Target packeges

menu "Target packages"

	source "package/busybox/Config.in"
	source "package/blablacode_helloworld/Config.in"

Тут все точно также как и в ядре linux.
Можно пробовать собирать. Выполняем из корневого каталога buildroot.

make menuconfig
make

В меню конфигурации не забываем включить наш пакет.
После компиляции заливаем полученный архив файловой системы в наш raspberry pi.

Зарабооотало ;)

Просмотров:   2960

Комментарии

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

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
Введи эти символы. Ато роботы одолели!