如何使用 buildroot 进行包中的自定义更改

and*_*_xx 1 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'...
Run Code Online (Sandbox Code Playgroud)

如何更好地控制使用buildroot?

Tho*_*oni 8

两种选择:

  • 为了快速测试,请修改 中的源代码output/build/<pkg>-<version>/,然后运行make <pkg>-rebuild以强制重建该包。请注意,在 Buildroot 中output/build/<pkg>-<version>/执行 a 时,文件夹会丢失make clean,因此这仅适用于一些快速调试/调查。

  • 对于源代码的实际开发,我建议使用该<pkg>_OVERRIDE_SRCDIR机制。local.mk在 Buildroot 树的根部创建一个文件。在此文件中,放入FOO_OVERRIDE_SRCDIR = $(HOME)/foo. 从现在开始,Buildroot 将不再下载/提取/修补软件包foo,而是将源代码从 rsync$(HOME)/foo到软件包构建目录中。运行make foo-rebuild将重新运行 rsync 并重新启动此包的构建。这意味着您可以更改源代码,$(HOME)/foo并使用这些更改快速重建包。另请参阅幻灯片 269 以及https://bootlin.com/doc/training/buildroot/buildroot-slides.pdf中的后续内容。