How to modify the source of Buildroot packages for

2019-01-15 21:01发布

I've been using buildroot in order to build a toolchain using uclibc. Now, buildroot downloads all the packages, extract them and build them all..

I want to change the toolchain's uclibc source and then recompile the toolchain with the new source and i just can't understand how it can be done in the pretty way..

After it finishes building, all of the extracted sources are found in the "<buildroot-src>/output/build". But changing them won't give me a thing because buildroot only uses this directory as an intermediate during build time.

So my thought was, maybe changing the .mk file in the uclibc package and make it use my modified source instead of downloading and extracting it (not yet sure if it can be done there) but that seems a bit ugly solution..

So my question is this: Is there any better way of telling buildroot to build a package using existing source?

2条回答
Lonely孤独者°
2楼-- · 2019-01-15 21:45

Please read the Buildroot manual about the <pkg>_OVERRIDE_SRCDIR functionality. It does exactly what you are looking for.

查看更多
SAY GOODBYE
3楼-- · 2019-01-15 22:03

Minimal *_OVERRIDE_SRCDIR example

Docs explain it, but here is a faster to parse version.

Directory structure:

  • buildroot/: git submodule with buildroot 2017.02

  • linux/: git submodule with Linux kernel pointing to your fork at https://github.com/you/linux

  • buildroot_override: contains:

    LINUX_OVERRIDE_SRCDIR = ../linux
    

Build and run:

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

Here is an example project using it.

查看更多
登录 后发表回答