Как изменить исходный код пакетов Buildroot для разработки пакетов?

Я использовал buildroot для того, чтобы собрать цепочку инструментов, используя uclibc. Теперь buildroot загружает все пакеты, распаковывает их исобирает их все..

Я хочу изменить исходный код цепочки инструментов uclibc, а затем перекомпилировать цепочку инструментов с новым исходным кодом, и я просто не могу понять, как это можно сделать красивым способом...

После завершения сборки все извлеченные источники находятся в "/ output / build". Но их изменение не даст мне ничего, потому что buildroot использует этот каталог только как промежуточный во время сборки.

Поэтому я подумал, может быть, изменив файл.mk в пакете uclibc и заставив его использовать мой измененный исходный код вместо его загрузки и извлечения (пока не уверен, что это можно сделать там), но это кажется немного уродливым решением..

Поэтому мой вопрос заключается в следующем: есть ли лучший способ сообщить buildroot о создании пакета с использованием существующего исходного кода?

2 ответа

Пожалуйста, прочитайте руководство по Buildroot о <pkg>_OVERRIDE_SRCDIR функциональность. Это именно то, что вы ищете.

минимальная *_OVERRIDE_SRCDIR пример

Документы объясняют это, но здесь более быстрая версия для разбора.

Структура каталогов:

  • buildroot/: подмодуль git с buildroot 2017.02

  • linux/ Подмодуль git с ядром Linux, указывающий на ваш форк на https://github.com/you/linux

  • buildroot_override: содержит:

    LINUX_OVERRIDE_SRCDIR = ../linux
    

Сборка и запуск:

cd buildroot
make qemu_x86_64_defconfig
echo 'BR2_PACKAGE_OVERRIDE_FILE=../buildroot_override' >> .config
make
qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append root=/dev/vda -net nic,model=virtio -net user

Вот пример проекта, использующего его.

Другие вопросы по тегам