如何将 buildroot 与包中的自定义更改一起使用
How to use buildroot with custom changes in packages
我有一个包含我所有配置的 buildroot 目录
我正在使用一个包,对于某个用例,我想检查包在运行时失败的地方。
我正在尝试稍微修改一下包,但我不知道如何构建包含调试打印的包。
我试着喜欢这个
- 转到
buildroot/dl/package/
文件夹
- 解压包
- 来源发生变化
- gzip 包
- 删除buildroot/output/build/package
中的中间值
- 建设
make
现在构建 root 使用某种哈希值并拒绝包含我的更改的包。它重新下载包并替换了我的更改。
ERROR: imx-kobs-a0e9adce2fb7fcd57e794d7f9a5deba0f94f521b.tar.gz has wrong sha256 hash:
ERROR: expected: 5855c8964f908ad30e5d4500180ee57c51af68186289ef1bdf8553ee60d3b1f5
ERROR: got : b5c22a971d9c9130b1b0f5ddd5b60b2eabd60607421c0f746ef0543b42960977
ERROR: Incomplete download, or man-in-the-middle (MITM) attack
dl-wrapper: Re-downloading 'imx-kobs-a0e9adce2fb7fcd57e794d7f9a5deba0f94f521b.tar.gz'...
如何使用具有更多控制权的 buildroot?
两个选项:
为了快速测试,修改 output/build/<pkg>-<version>/
中的源代码,运行 make <pkg>-rebuild
以强制重建该包。请注意,在 Buildroot 中执行 make clean
时,output/build/<pkg>-<version>/
文件夹会丢失,因此这仅适用于一些快速 debugging/investigation.
对于源代码的实际开发,我建议使用<pkg>_OVERRIDE_SRCDIR
机制。在 Buildroot 树的根目录下创建一个 local.mk
文件。在此文件中,放入 FOO_OVERRIDE_SRCDIR = $(HOME)/foo
。从现在开始,Buildroot 将不再 download/extract/patch foo
包,而是将源代码从 $(HOME)/foo
rsync 到包构建目录中。 运行 make foo-rebuild
将重新 运行 rsync 并重新启动此包的构建。这意味着您可以更改 $(HOME)/foo
中的源代码并使用这些更改快速重建包。另请参阅幻灯片 269 和 https://bootlin.com/doc/training/buildroot/buildroot-slides.pdf 中的后续内容。
我有一个包含我所有配置的 buildroot 目录 我正在使用一个包,对于某个用例,我想检查包在运行时失败的地方。
我正在尝试稍微修改一下包,但我不知道如何构建包含调试打印的包。
我试着喜欢这个
- 转到
buildroot/dl/package/
文件夹 - 解压包
- 来源发生变化
- gzip 包
- 删除buildroot/output/build/package 中的中间值
- 建设
make
现在构建 root 使用某种哈希值并拒绝包含我的更改的包。它重新下载包并替换了我的更改。
ERROR: imx-kobs-a0e9adce2fb7fcd57e794d7f9a5deba0f94f521b.tar.gz has wrong sha256 hash:
ERROR: expected: 5855c8964f908ad30e5d4500180ee57c51af68186289ef1bdf8553ee60d3b1f5
ERROR: got : b5c22a971d9c9130b1b0f5ddd5b60b2eabd60607421c0f746ef0543b42960977
ERROR: Incomplete download, or man-in-the-middle (MITM) attack
dl-wrapper: Re-downloading 'imx-kobs-a0e9adce2fb7fcd57e794d7f9a5deba0f94f521b.tar.gz'...
如何使用具有更多控制权的 buildroot?
两个选项:
为了快速测试,修改
output/build/<pkg>-<version>/
中的源代码,运行make <pkg>-rebuild
以强制重建该包。请注意,在 Buildroot 中执行make clean
时,output/build/<pkg>-<version>/
文件夹会丢失,因此这仅适用于一些快速 debugging/investigation.对于源代码的实际开发,我建议使用
<pkg>_OVERRIDE_SRCDIR
机制。在 Buildroot 树的根目录下创建一个local.mk
文件。在此文件中,放入FOO_OVERRIDE_SRCDIR = $(HOME)/foo
。从现在开始,Buildroot 将不再 download/extract/patchfoo
包,而是将源代码从$(HOME)/foo
rsync 到包构建目录中。 运行make foo-rebuild
将重新 运行 rsync 并重新启动此包的构建。这意味着您可以更改$(HOME)/foo
中的源代码并使用这些更改快速重建包。另请参阅幻灯片 269 和 https://bootlin.com/doc/training/buildroot/buildroot-slides.pdf 中的后续内容。