如何修改Buildroot包源进行包开发?
How to modify the source of Buildroot packages for package development?
我一直在使用 buildroot 以便使用 uclibc 构建工具链。现在,buildroot 下载所有包,解压并构建它们..
我想更改工具链的 uclibc 源代码,然后用新源代码重新编译工具链,我只是不明白如何以漂亮的方式完成它。
构建完成后,所有提取的源都在“/output/build ”中找到。但是更改它们不会给我带来任何影响,因为 buildroot 在构建期间仅将此目录用作中间目录。
所以我的想法是,也许可以更改 uclibc 包中的 .mk 文件并使其使用我修改后的源代码,而不是下载并解压缩它(尚不确定是否可以在那里完成)但这似乎有点丑陋的解决方案..
所以我的问题是:有没有更好的方法告诉 buildroot 使用现有源构建包?
请阅读 the Buildroot manual 关于 <pkg>_OVERRIDE_SRCDIR
功能的信息。它完全符合您的要求。
最小 git 子模块 + *_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
我一直在使用 buildroot 以便使用 uclibc 构建工具链。现在,buildroot 下载所有包,解压并构建它们..
我想更改工具链的 uclibc 源代码,然后用新源代码重新编译工具链,我只是不明白如何以漂亮的方式完成它。
构建完成后,所有提取的源都在“
所以我的想法是,也许可以更改 uclibc 包中的 .mk 文件并使其使用我修改后的源代码,而不是下载并解压缩它(尚不确定是否可以在那里完成)但这似乎有点丑陋的解决方案..
所以我的问题是:有没有更好的方法告诉 buildroot 使用现有源构建包?
请阅读 the Buildroot manual 关于 <pkg>_OVERRIDE_SRCDIR
功能的信息。它完全符合您的要求。
最小 git 子模块 + *_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