gpt4 book ai didi

linux - Linux 补丁 : directory paths not enforced 的问题

转载 作者:太空宇宙 更新时间:2023-11-04 12:58:29 24 4
gpt4 key购买 nike

我遇到了补丁(2.6 版)的问题,想知道是否还有其他人遇到过这个问题:
系统 A:带有 FC21 的虚拟机 (VBOX)。差异 == 3.3,补丁 == 2.7.5
为 ixgbe 驱动程序生成 Linux 内核补丁(更新驱动程序以支持新硬件)
原目录:linux/drivers/net/ethernet/intel/ixgbe
更新目录:/home/patches/ixgbe-4.0.3
通过 diff -Naur <orig> <update> > file.patch 生成的补丁文件
文件看起来不错。有更改的文件以及添加到 Orig 的"new"文件。
使用 BuildRoot (2015.08.01) 和他们的补丁设置,补丁执行,工作正常,驱动程序构建和图像引导。
系统 B:带有 RHEL6 的公司服务器。差异 == 2.8.1,补丁 == 2.6
将整个 Buildroot 设置复制到这台机器。修改目录路径,构建运行正常,直到补丁。输出显示已更改的文件已正常更新,但任何"new"文件最终都会出现在“更新目录”路径中,该路径在此环境中不存在。验证/home/xx/yy/zz 目录确实存在,该补丁是根据补丁文件中的文件名创建的。为什么????
系统 A 工作得很好,它将"new"文件放在正确的内核目录中。

有人以前见过这种奇怪的行为吗?我怎样才能:

  1. 告诉 diff 使用 orig 目录?
  2. 告诉补丁使用原始目录? (构建根通过脚本处理补丁)

如有任何帮助,我们将不胜感激。 . .斯蒂芬

最佳答案

TL;DR:要生成补丁,请确保原始目录和修改后的目录并排放置。

补丁将与 -p1 一起应用,即路径的第一个组件将被剥离。所以在原来的一面,你会有drivers/net/ethernet/intel/ixgbe/<filename> ,但在打补丁的一面,你会得到 home/patches/igbe/<filename> .现在看起来补丁 2.6 将采用补丁侧的路径,这显然不存在。我真的很惊讶它确实适用于后来的补丁版本。

生成补丁的规范方法是复制完整的原始源目录,即整个 linux 目录,并将其与补丁目录并排放置。然后你做diff -Naur linux-orig linux-patched从上面的目录。或者,更好的是,从 git 控制的 linux 目录开始,进行修改,提交更改,然后执行 git format-patch -1 -o <path-to-buildroot-patches>。 .

关于linux - Linux 补丁 : directory paths not enforced 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34929443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com