代码之家  ›  专栏  ›  技术社区  ›  dtmland

找不到Buildroot修补程序?

  •  0
  • dtmland  · 技术社区  · 9 年前

    我的问题是 this one 事实上 this one 他实际上比我走得更远。据我所知,我无法让buildroot找到并应用我的任何补丁。

    我关注了 formatting instructions 创建我的补丁文件,它现在位于此处:

    ./buildroot/board/mycompany/myboard/patches/myprogram/myversion/myprogram-0-fix.patch
    

    据我所知,我已正确设置了以下路径和文件名 these instructions 。我还设置了 BR2_GLOBAL_PATCH_DIR 至:

    "board/mycompany/myboard/patches"
    

    我假设在完成所有这些之后,加载我的配置文件(指向“myboard”文件夹并设置了全局补丁目录的文件),然后运行 make 我的补丁将在过程中自动应用。然而,它似乎根本没有修复补丁。

    我认为我缺少一些步骤来应用补丁。 This section 文档的描述了如何应用修补程序,但我很难理解它。我应该如何运行 <packagename>_PRE_PATCH_HOOKS 命令当我运行 制作 ?

    作为参考, myprogram dl/ 文件夹-稍后提取并编译。我希望不必修改这个tarball的内容,并且能够在提取内容之后但在构建包之前使用buildroot补丁机制来应用补丁。这甚至是在buildroot中应用补丁的有效方式吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Arnout    9 年前

    您描述的步骤是正确的,因此可能有一个步骤您没有正确应用。

    您必须已设置 BR2_GLOBAL_PATCH_DIR 正确,因为如果buildroot不存在,就会出错。作为健全性检查,将其更改为某个不存在的目录,并观察是否出现错误。

    所以很可能你的目录名有问题。

    作为第一步,我将省略路径的版本部分-只有当您希望支持多个版本的 myprogram 所以把你的补丁 board/mycompany/myboard/patches/myprogram/0-fix.patch .

    此外,检查 我的程序 .

    否则,运行:

    make myprogram-dirclean
    make myprogram-patch V=1
    

    这将显示buildroot执行的确切步骤。您应该首先看到一个什么都不做的下载步骤,然后是一个提取tarball的提取步骤,然后一个带有长而复杂的shell命令的补丁步骤,该命令在多个地方查找补丁。将此shell命令复制并粘贴到您的shell中,然后开始剥离它,以找到错误的地方。

    关于 MYPROGRAM_PRE_PATCH_HOOKS ,这是你会放在你的 myprogram.mk 文件例如,当要应用的补丁是tarball本身的一部分时,可以使用它。