- 问题:
打patch时爆出如下问题:
patching file linux-4.14.55-fmxx/scripts/dtc/include-prefixes/arm/xxxx-psoc.dtsi
Reversed (or previously applied) patch detected! Assume -R? [n]
敲n # 提示此处已打过补丁,和patch文件中的不一致
- y表示退回到没有打补丁前(下一条Apply anyway? [n]不会出现,直接还原到补丁前)
- n表示不退回 保持现状
Apply anyway? [n]
# 是否继续apply patch
- y 会出现 Hunk #1 FAILED at 142. 的提示 3 out of 3 hunks FAILED saving rejects to file xxx.rej
- n Skipping patch. 4 out of 4 hunks ignored saving rejects to file xxx.rej
- 前情提要:
release SDK版本时 需要制作上一版本的 patch,以便使用户直接apply patch就可以更新到最新版本。
制作patch --> diff -uprN old-file-dir new-file-dir > xxx.patch
打补丁 --> cd ./old-file-dir
patch -p1 < ../xxx.patch
- 原因:
那么究竟是在哪里已经更改过这个dtsi文件呢??
翻看patch文件,来来回回check,终于发现些端倪
xxxx-psoc.dtsi在以下两处出现过
- linux-4.14.55-fmxx/arch/arm/boot/dts/xxxx-psoc.dtsi
- linux-4.14.55-fmxx/scripts/dtc/include-prefixes/arm/xxxx-psoc.dtsi
ls -l linux-4.14.55-fmxx/scripts/dtc/include-prefixes/
arm -> ../../../arch/arm/boot/dts
是一个链接,指向1 所以显然已经更改过了。
- 解决方案:
基于上述分析,需要更改patch文件,将文件中link部分重复修改的部分删除。
以上。