如何将buildroot与包中的自定义更改一起使用

时间:2018-10-15 19:48:34

标签: buildroot

我有一个包含所有配置的buildroot目录 我正在使用一个软件包,对于某个特定的用例,我想检查该软件包在运行时失败的地方。

我正在尝试对软件包进行一些修改,但是我不知道如何在包含调试打印信息的情况下构建此软件包。

我尝试过这样

  1. 转到buildroot/dl/package/文件夹
  2. 提取包裹
  3. 更改来源
  4. gzip包
  5. 删除buildroot / output / build / package中的中间体
  6. 构建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?

1 个答案:

答案 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