2016-10-30 10 views
2

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

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

После завершения строительства, все добытых источников находятся в «< Buildroot-Src >/выход/построить». Но изменение их не даст мне ничего, потому что buildroot использует этот каталог только как промежуточное звено во время сборки.

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

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

+0

Не уверен в этой конкретной системе сборки, но, как правило, есть способ сказать, что нужно применить патч перед созданием исходного источника (и вам, разумеется, нужно доставить этот патч). – Torp

+0

Создайте один или несколько файлов патчей и сохраните их в каталоге этого пакета. Любые файлы с расширением .patch будут применены к источнику после его извлечения. В качестве альтернативы, как только источник будет извлечен и создан, вы можете изменить источник, а затем принудительно перекомпилировать, удалив соответствующие файлы **. Stamp _ *** (т. Е. Сохраните .stamp_downloaded, .stamp_extracted, .stamp_patched и .stamp_configured). Остерегайтесь того, что вы можете потерять все, когда делаете «make clean», и у вас нет патчей. – sawdust

ответ

4

the Buildroot manual о <pkg>_OVERRIDE_SRCDIR функциональность. Он делает именно то, что вы ищете.

+0

. Вы buildroot devs - мои герои.Почему вы использовали отдельный файл вместо обычных параметров типа BR2_PACKAGE_LINUX_OVERRIDE_SRCDIR? –

1

Minimal *_OVERRIDE_SRCDIR пример

Docs это объяснить, но вот быстрее разобрать версию.

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

  • buildroot/: мерзавец подмодуль с Buildroot 2017.02

  • linux/: мерзавец подмодуль с ядром 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 

Вот an example project using it.

 Смежные вопросы

  • Нет связанных вопросов^_^