我有一个包含所有配置的buildroot目录 我正在使用一个软件包,对于某个特定的用例,我想检查该软件包在运行时失败的地方。
我正在尝试对软件包进行一些修改,但是我不知道如何在包含调试打印信息的情况下构建此软件包。
我尝试过这样
buildroot/dl/package/
文件夹make
现在,构建根目录使用某种哈希值,并使用我的更改拒绝该软件包。它重新下载了软件包并替换了我的更改。
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?
答案 0 :(得分:3)
两个选项:
要进行快速测试,请修改output/build/<pkg>-<version>/
中的源代码,然后运行make <pkg>-rebuild
以强制重建该程序包。请注意,在Buildroot中执行output/build/<pkg>-<version>/
时,make clean
文件夹会丢失,因此这仅对某些快速调试/调查有用。
对于源代码的实际开发,我建议使用<pkg>_OVERRIDE_SRCDIR
机制。在Buildroot树的根目录下创建一个local.mk
文件。在此文件中,放入FOO_OVERRIDE_SRCDIR = $(HOME)/foo
。从现在开始,Buildroot将不再下载/提取/修补foo
软件包,而是将源代码从$(HOME)/foo
同步到软件包的构建目录中。运行make foo-rebuild
将重新运行rsync并重新开始此程序包的构建。这意味着您可以在$(HOME)/foo
中更改源代码,并通过这些更改非常快速地重建软件包。另请参见幻灯片269及其后的https://bootlin.com/doc/training/buildroot/buildroot-slides.pdf。